--- dlls/wined3d/device.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 12ec046..9bba6e0 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -6182,7 +6182,7 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurface *surface, CONS TRACE("Surface %p is onscreen\n", surface); - ActivateContext(This, surface, CTXUSAGE_CLEAR); + ActivateContext(This, surface, CTXUSAGE_RESOURCELOAD); ENTER_GL(); GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0)); buffer = surface_get_gl_buffer(surface, swapchain); @@ -6191,7 +6191,7 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurface *surface, CONS } else { TRACE("Surface %p is offscreen\n", surface); - ActivateContext(This, This->lastActiveRenderTarget, CTXUSAGE_CLEAR); + ActivateContext(This, This->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); ENTER_GL(); bind_fbo(iface, GL_FRAMEBUFFER_EXT, &This->dst_fbo); attach_surface_fbo(This, GL_FRAMEBUFFER_EXT, 0, surface); @@ -6211,6 +6211,10 @@ static void color_fill_fbo(IWineD3DDevice *iface, IWineD3DSurface *surface, CONS } else { glDisable(GL_SCISSOR_TEST); } + IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_SCISSORTESTENABLE)); + + glDisable(GL_BLEND); + IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_ALPHABLENDENABLE)); glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); IWineD3DDeviceImpl_MarkStateDirty(This, STATE_RENDER(WINED3DRS_COLORWRITEENABLE));