[dx99] Mafia Demo patch for bug #1670

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry - been too busy for wine recently, but have just started to get those urges again... Started with a reported d3d8 bug, #1670 which occurs when you crash into a lamp post. The application did a draw with a vertex shader followed by a call to the odd drawprimitiveUP, and I forgot to check a flag which meant we tried to use multiple streams which were not set up and hence trapped.

Changelog

Fix the draw*primitiveUP calls so they work directly after a draw which uses vertex shaders.

Jason
cvs server: Diffing dlls/d3d8
Index: dlls/d3d8/drawprim.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/drawprim.c,v
retrieving revision 1.14
diff -u -r1.14 drawprim.c
--- dlls/d3d8/drawprim.c	17 Nov 2003 20:04:44 -0000	1.14
+++ dlls/d3d8/drawprim.c	5 Jan 2004 21:22:54 -0000
@@ -354,7 +354,7 @@
        For the non-created vertex shaders, the VertexShader var holds the real 
           FVF and only stream 0 matters
        For the created vertex shaders, there is an FVF per stream              */
-    if (This->UpdateStateBlock->VertexShader > VS_HIGHESTFIXEDFXF) {
+    if (!This->StateBlock->streamIsUP && (This->UpdateStateBlock->VertexShader > VS_HIGHESTFIXEDFXF)) {
         LoopThroughTo = MAX_STREAMS;
     } else {
         LoopThroughTo = 1;

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux