Module: wine Branch: master Commit: fc85f4f7d6b051a0ba72ffe7791d120318ac6ccf URL: http://source.winehq.org/git/wine.git/?a=commit;h=fc85f4f7d6b051a0ba72ffe779...
Author: Henri Verbeet hverbeet@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;