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