Henri Verbeet : wined3d: Never set the first render target to the front buffer in wined3d_device_init_3d ().
Alexandre Julliard
julliard at winehq.org
Fri Sep 13 10:15:50 CDT 2013
Module: wine
Branch: master
Commit: fc85f4f7d6b051a0ba72ffe7791d120318ac6ccf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fc85f4f7d6b051a0ba72ffe7791d120318ac6ccf
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Fri Sep 13 10:18:11 2013 +0200
wined3d: Never set the first render target to the front buffer in wined3d_device_init_3d().
---
dlls/wined3d/device.c | 16 +++++++---------
1 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 561525b..627f0eb 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -878,6 +878,7 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
const struct wined3d_gl_info *gl_info = &device->adapter->gl_info;
struct wined3d_swapchain *swapchain = NULL;
struct wined3d_context *context;
+ DWORD clear_flags = 0;
HRESULT hr;
DWORD state;
@@ -941,13 +942,9 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
{
TRACE("Setting rendertarget to %p.\n", swapchain->back_buffers);
device->fb.render_targets[0] = swapchain->back_buffers[0];
+ wined3d_surface_incref(device->fb.render_targets[0]);
+ clear_flags |= WINED3DCLEAR_TARGET;
}
- else
- {
- TRACE("Setting rendertarget to %p.\n", swapchain->front_buffer);
- device->fb.render_targets[0] = swapchain->front_buffer;
- }
- wined3d_surface_incref(device->fb.render_targets[0]);
/* Depth Stencil support */
device->fb.depth_stencil = device->auto_depth_stencil;
@@ -991,9 +988,10 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
context_release(context);
/* Clear the screen */
- wined3d_device_clear(device, 0, NULL, WINED3DCLEAR_TARGET
- | (swapchain_desc->enable_auto_depth_stencil ? WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL : 0),
- &black, 1.0f, 0);
+ if (swapchain_desc->enable_auto_depth_stencil)
+ clear_flags |= WINED3DCLEAR_ZBUFFER | WINED3DCLEAR_STENCIL;
+ if (clear_flags)
+ wined3d_device_clear(device, 0, NULL, clear_flags, &black, 1.0f, 0);
device->d3d_initialized = TRUE;
More information about the wine-cvs
mailing list