[PATCH 7/7] wined3d: Move valid_rt_mask into the adapter
Stefan Dösinger
stefan at codeweavers.com
Fri Apr 19 04:20:57 CDT 2013
---
dlls/wined3d/context.c | 2 +-
dlls/wined3d/device.c | 4 ----
dlls/wined3d/directx.c | 5 +++++
dlls/wined3d/wined3d_private.h | 2 +-
4 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 58827e2..21d6630 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -2203,7 +2203,7 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const
else if (!context->render_offscreen) return context_generate_rt_mask_from_surface(rts[0]);
rt_mask = ps ? ps->reg_maps.rt_mask : 1;
- rt_mask &= device->valid_rt_mask;
+ rt_mask &= context->adapter->valid_rt_mask;
rt_mask_bits = rt_mask;
i = 0;
while (rt_mask_bits)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 448881c..2d4114b 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1122,7 +1122,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
struct wined3d_context *context;
HRESULT hr;
DWORD state;
- unsigned int i;
TRACE("device %p, swapchain_desc %p.\n", device, swapchain_desc);
@@ -1131,9 +1130,6 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
if (device->wined3d->flags & WINED3D_NO3D)
return WINED3DERR_INVALIDCALL;
- device->valid_rt_mask = 0;
- for (i = 0; i < gl_info->limits.buffers; ++i)
- device->valid_rt_mask |= (1 << i);
device->fb.render_targets = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(*device->fb.render_targets) * gl_info->limits.buffers);
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 75f14fc..a395e46 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2601,6 +2601,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter)
enum wined3d_pci_device device;
DWORD gl_version;
HDC hdc;
+ unsigned int i;
TRACE("adapter %p.\n", adapter);
@@ -2894,6 +2895,10 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter)
gl_info->wrap_lookup[WINED3D_TADDRESS_MIRROR_ONCE - WINED3D_TADDRESS_WRAP] =
gl_info->supported[ATI_TEXTURE_MIRROR_ONCE] ? GL_MIRROR_CLAMP_TO_EDGE_ATI : GL_REPEAT;
+ adapter->valid_rt_mask = 0;
+ for (i = 0; i < gl_info->limits.buffers; ++i)
+ adapter->valid_rt_mask |= (1 << i);
+
fixup_extensions(gl_info, gl_renderer_str, gl_vendor, card_vendor, device);
init_driver_info(driver_info, card_vendor, device);
add_gl_compat_wrappers(gl_info);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index e7f033b..78f4cb8 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1595,6 +1595,7 @@ struct wined3d_adapter
UINT vs_version, gs_version, ps_version;
DWORD d3d_vshader_constantF, d3d_pshader_constantF; /* Advertised d3d caps, not GL ones */
unsigned int max_ffp_textures;
+ DWORD valid_rt_mask;
};
BOOL wined3d_adapter_init_format_info(struct wined3d_adapter *adapter) DECLSPEC_HIDDEN;
@@ -1743,7 +1744,6 @@ struct wined3d_device
struct list shaders; /* a linked list to track shaders (pixel and vertex) */
/* Render Target Support */
- DWORD valid_rt_mask;
struct wined3d_fb_state fb;
struct wined3d_surface *onscreen_depth_stencil;
struct wined3d_surface *auto_depth_stencil;
--
1.8.1.5
More information about the wine-patches
mailing list