[D3D] Fixed D3DOP_STATELIGHT opcode

Christian Costa titan.costa at wanadoo.fr
Mon Aug 2 11:34:31 CDT 2004


Hi,

This patch prevents X Beyond the frontier from crashing.
Nothing is displayed though... Maybe because the game uses ProcessVertices.

Bye,

Changelog:
Fixed D3DOP_STATELIGHT opcode.
Implemented _dump_D3DEXECUTEBUFFERDESC.

Christian Costa   titan.costa at wanadoo.fr

-------------- next part --------------
Index: d3dexecutebuffer.c
===================================================================
RCS file: /home/wine/wine/dlls/ddraw/d3dexecutebuffer.c,v
retrieving revision 1.36
diff -u -r1.36 d3dexecutebuffer.c
--- d3dexecutebuffer.c	23 Mar 2004 23:02:37 -0000	1.36
+++ d3dexecutebuffer.c	2 Aug 2004 15:23:39 -0000
@@ -1,5 +1,6 @@
 /* Direct3D ExecuteBuffer
- * Copyright (c) 1998 Lionel ULMER
+ * Copyright (c) 1998-2004 Lionel ULMER
+ * Copyright (c) 2002-2004 Christian Costa
  *
  * This file contains the implementation of Direct3DExecuteBuffer.
  *
@@ -53,7 +54,11 @@
 }
 
 static void _dump_D3DEXECUTEBUFFERDESC(LPD3DEXECUTEBUFFERDESC lpDesc) {
-
+    DPRINTF("dwSize       : %ld\n", lpDesc->dwSize);
+    DPRINTF("dwFlags      : %lx\n", lpDesc->dwFlags);
+    DPRINTF("dwCaps       : %lx\n", lpDesc->dwCaps);
+    DPRINTF("dwBufferSize : %ld\n", lpDesc->dwBufferSize);
+    DPRINTF("lpData       : %p\n", lpDesc->lpData);
 }
 
 static void execute(IDirect3DExecuteBufferImpl *This,
@@ -241,8 +246,8 @@
 	                                		rs,ci->u2.dwArg[0]);
 		   }
 
+		   instr += size;
 		}
-		instr += size;
 	    } break;
 
 	    case D3DOP_STATERENDER: {
@@ -709,8 +714,8 @@
     object->nb_indices = 0;
 
     *obj = object;
-    
+
     TRACE(" creating implementation at %p.\n", *obj);
-    
+
     return DD_OK;
 }


More information about the wine-patches mailing list