[PATCH 6/7] wined3d: Move valid_rt_mask to wined3d_d3d_info
Stefan Dösinger
stefan at codeweavers.com
Thu Apr 25 08:20:29 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 6a4f766..54e9e80 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -2282,7 +2282,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->d3d_info->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 2dae6ab..61b2f2a 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1111,7 +1111,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);
@@ -1120,9 +1119,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 e462680..dd3b9a3 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2632,6 +2632,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);
@@ -2935,6 +2936,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->d3d_info.valid_rt_mask = 0;
+ for (i = 0; i < gl_info->limits.buffers; ++i)
+ adapter->d3d_info.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 d5f479b..550dc63 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1599,6 +1599,7 @@ struct wined3d_d3d_info
{
struct wined3d_d3d_limits limits;
BOOL vs_clipping;
+ DWORD valid_rt_mask;
};
/* The adapter structure */
@@ -1771,7 +1772,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