wined3d: Depth stencil tracking depends on the value of This->render_offscreen.

Henri Verbeet hverbeet at codeweavers.com
Wed Sep 3 09:25:44 CDT 2008


---
 dlls/wined3d/drawprim.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 3be34d3..24c7d1a 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -928,20 +928,21 @@ void drawPrimitive(IWineD3DDevice *iface,
         }
     }
 
+    /* Signals other modules that a drawing is in progress and the stateblock finalized */
+    This->isInDraw = TRUE;
+
+    ActivateContext(This, This->render_targets[0], CTXUSAGE_DRAWPRIM);
+
     if (This->stencilBufferTarget) {
+        /* Note that this depends on the ActivateContext call above to set
+         * This->render_offscreen properly */
         DWORD location = This->render_offscreen ? SFLAG_DS_OFFSCREEN : SFLAG_DS_ONSCREEN;
         surface_load_ds_location(This->stencilBufferTarget, location);
         surface_modify_ds_location(This->stencilBufferTarget, location);
     }
 
-    /* Signals other modules that a drawing is in progress and the stateblock finalized */
-    This->isInDraw = TRUE;
-
     /* Ok, we will be updating the screen from here onwards so grab the lock */
-
-    ActivateContext(This, This->render_targets[0], CTXUSAGE_DRAWPRIM);
     ENTER_GL();
-
     {
         GLenum glPrimType;
         BOOL emulation = FALSE;
-- 
1.5.6.4



--------------070005070806070602080103--



More information about the wine-patches mailing list