H. Verbeet : wined3d: Move storing the render target from ActiveRender to SetRenderTarget.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Dec 20 08:54:55 CST 2006


Module: wine
Branch: master
Commit: 577dbb578bb1a6f4ebd80b14e6ba21bcb27099d0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=577dbb578bb1a6f4ebd80b14e6ba21bcb27099d0

Author: H. Verbeet <hverbeet at 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);




More information about the wine-cvs mailing list