Module: wine Branch: master Commit: 577dbb578bb1a6f4ebd80b14e6ba21bcb27099d0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=577dbb578bb1a6f4ebd80b14e6...
Author: H. Verbeet hverbeet@gmail.com Date: Tue Dec 19 19:25:29 2006 +0100
wined3d: Move storing the render target from ActiveRender to SetRenderTarget.
Use the render target index rather than hardcoding 0.
---
dlls/wined3d/device.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index ecebe7f..a12781e 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5871,6 +5871,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl implementations that use separate pbuffers for different swapchains or rendertargets will have to duplicate the stencil buffer and incure an extra memory overhead */ hr = IWineD3DDeviceImpl_ActiveRender(iface, pRenderTarget); + + /* Replace the render target */ + if (This->render_targets[RenderTargetIndex]) IWineD3DSurface_Release(This->render_targets[RenderTargetIndex]); + This->render_targets[RenderTargetIndex] = pRenderTarget; + if (pRenderTarget) IWineD3DSurface_AddRef(pRenderTarget); + if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) { set_render_target_fbo(iface, pRenderTarget); } @@ -6352,13 +6358,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl device_render_to_texture(This, TRUE); }
- /* Replace the render target */ - if (This->render_targets[0] != RenderSurface) { - IWineD3DSurface_Release(This->render_targets[0]); - This->render_targets[0] = RenderSurface; - IWineD3DSurface_AddRef(RenderSurface); - } - if (cfgs != NULL) XFree(cfgs); if (implicitSwapchain != NULL) IWineD3DSwapChain_Release(implicitSwapchain); if (currentSwapchain != NULL) IWineD3DSwapChain_Release(currentSwapchain);