[dx88] Cull fix

Jason Edmeades us at the-edmeades.demon.co.uk
Wed Oct 29 16:10:57 CST 2003


Michael - See if this helps with your map / figure problems...

Changelog
Culling to different viewports failed as clearing the whole viewport 
cleared the screen
Jason
-------------- next part --------------
diff -u3 dlls/d3d8/dx87/device.c dlls/d3d8/device.c
--- dlls/d3d8/dx87/device.c	2003-10-28 21:30:08.000000000 +0000
+++ dlls/d3d8/device.c	2003-10-28 22:03:07.000000000 +0000
@@ -1349,6 +1349,8 @@
           Count, pRects, Flags, Z, Stencil);
 
     ENTER_GL();
+    glEnable(GL_SCISSOR_TEST);
+    checkGLcall("glEnable GL_SCISSOR_TEST");
     if (Count > 0 && pRects) {
         glEnable(GL_SCISSOR_TEST);
         checkGLcall("glEnable GL_SCISSOR_TEST");
@@ -1397,6 +1399,12 @@
             glScissor(curRect->x1, (This->PresentParms.BackBufferHeight - curRect->y2), 
                       curRect->x2 - curRect->x1, curRect->y2 - curRect->y1);
             checkGLcall("glScissor");
+        } else {
+            glScissor(This->StateBlock->viewport.X, 
+                      (This->PresentParms.BackBufferHeight - (This->StateBlock->viewport.Y + This->StateBlock->viewport.Height)), 
+                      This->StateBlock->viewport.Width, 
+                      This->StateBlock->viewport.Height);
+            checkGLcall("glScissor");
         }
 
         /* Clear the selected rectangle (or full screen) */



More information about the wine-patches mailing list