D3D8 / WineD3D private header changes

Roderick Colenbrander thunderbird2k at gmx.net
Sat Feb 18 10:02:06 CST 2006


Hi,

During the d3d8 -> wined3d I need to access various wined3d structures from 
d3d8 in order to keep old code working. In case of the surface patch I had to 
move over wined3d surface code. For new work I ended copying more and more 
structures which I don't find a good idea. The wined3d structures are stored 
in the wined3d_private.h header which couldn't be included from d3d8 because 
of duplicate definitions of datatypes, functions and more. I have adjusted 
the header to allow inclusion from d3d8 by adding d3d8_private checks to it. 
Second I moved some d3d8 code over to updated datatypes in wined3d.

Regards,
Roderick Colenbrander
-------------- next part --------------
Index: dlls/d3d8/d3d8_private.h
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/d3d8_private.h,v
retrieving revision 1.70
diff -u -r1.70 d3d8_private.h
--- dlls/d3d8/d3d8_private.h	14 Feb 2006 17:05:35 -0000	1.70
+++ dlls/d3d8/d3d8_private.h	18 Feb 2006 15:32:39 -0000
@@ -73,6 +73,7 @@
 #include "wine/debug.h"
 #include "d3d8.h"
 #include "wine/wined3d_interface.h"
+#include "../wined3d/wined3d_private.h"
 
 extern int vs_mode;
 #define VS_NONE 0
@@ -251,28 +252,6 @@
   D3DSHADERVECTOR oDepth;
 } PSHADEROUTPUTDATA8;
 
-/* 
- * Private definitions for internal use only
- */
-typedef struct PLIGHTINFOEL PLIGHTINFOEL;
-struct PLIGHTINFOEL {
-    D3DLIGHT8 OriginalParms;
-    DWORD     OriginalIndex;
-    LONG      glIndex;
-    BOOL      lightEnabled;
-    BOOL      changed;
-    BOOL      enabledChanged;
-
-    /* Converted parms to speed up swapping lights */
-    float                         lightPosn[4];
-    float                         lightDirn[4];
-    float                         exponent;
-    float                         cutoff;
-
-    PLIGHTINFOEL *next;
-    PLIGHTINFOEL *prev;
-};
-
 /*
  * Macros
  */
@@ -679,93 +658,6 @@
 extern HRESULT WINAPI IDirect3DSwapChain8Impl_Present(LPDIRECT3DSWAPCHAIN8 iface, CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion);
 extern HRESULT WINAPI IDirect3DSwapChain8Impl_GetBackBuffer(LPDIRECT3DSWAPCHAIN8 iface, UINT BackBuffer, D3DBACKBUFFER_TYPE Type,IDirect3DSurface8** ppBackBuffer);
 
-/* Below follow the definitions of some WineD3D structures which are needed during the D3D8->WineD3D transition. */
-typedef struct IWineD3DSurfaceImpl    IWineD3DSurfaceImpl;
-typedef struct PrivateData
-{
-    struct PrivateData* next;
-
-    GUID tag;
-    DWORD flags; /* DDSPD_* */
-    DWORD uniqueness_value;
-
-    union
-    {
-        LPVOID data;
-        LPUNKNOWN object;
-    } ptr;
-
-    DWORD size;
-} PrivateData;
-
-typedef struct IWineD3DResourceClass
-{
-    /* IUnknown fields */
-    LONG                    ref;     /* Note: Ref counting not required */
-
-    /* WineD3DResource Information */
-    IUnknown               *parent;
-    D3DRESOURCETYPE         resourceType;
-    void                   *wineD3DDevice;
-    D3DPOOL                 pool;
-    UINT                    size;
-    DWORD                   usage;
-    WINED3DFORMAT           format;
-    BYTE                   *allocatedMemory;
-    PrivateData            *privateData;
-
-} IWineD3DResourceClass;
-
-typedef struct _WINED3DSURFACET_DESC
-{
-    D3DMULTISAMPLE_TYPE MultiSampleType;
-    DWORD               MultiSampleQuality;
-    UINT                Width;
-    UINT                Height;
-} WINED3DSURFACET_DESC;
-
-struct IWineD3DSurfaceImpl
-{
-    /* IUnknown & IWineD3DResource Information     */
-    const IWineD3DSurfaceVtbl *lpVtbl;
-    IWineD3DResourceClass     resource;
-
-    /* IWineD3DSurface fields */
-    IUnknown                 *container;
-    WINED3DSURFACET_DESC      currentDesc;
-
-    UINT                      textureName;
-    UINT                      bytesPerPixel;
-
-    /* TODO: move this off into a management class(maybe!) */
-    BOOL                      nonpow2;
-
-    UINT                      pow2Width;
-    UINT                      pow2Height;
-    UINT                      pow2Size;
-
-#if 0
-    /* precalculated x and y scalings for texture coords */
-    float                     pow2scalingFactorX; /* =  (Width  / pow2Width ) */
-    float                     pow2scalingFactorY; /* =  (Height / pow2Height) */
-#endif
-
-    BOOL                      lockable;
-    BOOL                      discard;
-    BOOL                      locked;
-    BOOL                      activeLock;
-    
-    RECT                      lockedRect;
-    RECT                      dirtyRect;
-    BOOL                      Dirty;
-    
-    BOOL                      inTexture;
-    BOOL                      inPBuffer;
-
-    glDescriptor              glDescription;
-};
-
-
 /* ----------------- */
 /* IDirect3DSurface8 */
 /* ----------------- */
@@ -957,7 +849,6 @@
 extern HRESULT  WINAPI        IDirect3DIndexBuffer8Impl_Unlock(LPDIRECT3DINDEXBUFFER8 iface);
 extern HRESULT  WINAPI        IDirect3DIndexBuffer8Impl_GetDesc(LPDIRECT3DINDEXBUFFER8 iface, D3DINDEXBUFFER_DESC *pDesc);
 
-
 /* --------------------- */
 /* IDirect3DBaseTexture8 */
 /* --------------------- */
@@ -1071,7 +962,6 @@
 extern HRESULT  WINAPI        IDirect3DCubeTexture8Impl_UnlockRect(LPDIRECT3DCUBETEXTURE8 iface, D3DCUBEMAP_FACES FaceType, UINT Level);
 extern HRESULT  WINAPI        IDirect3DCubeTexture8Impl_AddDirtyRect(LPDIRECT3DCUBETEXTURE8 iface, D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect);
 
-
 /* ----------------- */
 /* IDirect3DTexture8 */
 /* ----------------- */
@@ -1203,27 +1093,6 @@
     Private interfactes: beginning of cleaning/splitting for HAL and d3d9 support
    ============================================================================== */
 
-/* State Block for Begin/End/Capture/Create/Apply State Block   */
-/*   Note: Very long winded but I do not believe gl Lists will  */
-/*   resolve everything we need, so doing it manually for now   */
-typedef struct SAVEDSTATES {
-        BOOL                      Indices;
-        BOOL                      material;
-        BOOL                      stream_source[MAX_STREAMS];
-        BOOL                      textures[8];
-        BOOL                      transform[HIGHEST_TRANSFORMSTATE];
-        BOOL                      viewport;
-        BOOL                      vertexShader;
-        BOOL                      vertexShaderConstant;
-        BOOL                      vertexShaderDecl;
-        BOOL                      pixelShader;
-        BOOL                      pixelShaderConstant;
-        BOOL                      renderstate[HIGHEST_RENDER_STATE];
-        BOOL                      texture_state[8][HIGHEST_TEXTURE_STATE];
-        BOOL                      clipplane[MAX_CLIPPLANES];
-} SAVEDSTATES;
-
-
 /* ----------------------- */
 /* IDirect3DStateBlockImpl */
 /* ----------------------- */
@@ -1470,9 +1339,9 @@
 /**
  * Internals debug functions
  */
+const char* debug_d3dformat(D3DFORMAT fmt);
 const char* debug_d3ddevicetype(D3DDEVTYPE devtype);
 const char* debug_d3dusage(DWORD usage);
-const char* debug_d3dformat(D3DFORMAT fmt);
 const char* debug_d3dressourcetype(D3DRESOURCETYPE res);
 const char* debug_d3dprimitivetype(D3DPRIMITIVETYPE PrimitiveType);
 const char* debug_d3dpool(D3DPOOL Pool);
@@ -1519,13 +1388,4 @@
 #define TRACE_VECTOR(name) TRACE( #name "=(%f, %f, %f, %f)\n", name.x, name.y, name.z, name.w);
 #define TRACE_STRIDED(sd,name) TRACE( #name "=(data:%p, stride:%ld, type:%ld)\n", sd->u.s.name.lpData, sd->u.s.name.dwStride, sd->u.s.name.dwType);
 
-#define DUMP_LIGHT_CHAIN()                    \
-{                                             \
-  PLIGHTINFOEL *el = This->StateBlock->lights;\
-  while (el) {                                \
-    TRACE("Light %p (glIndex %ld, d3dIndex %ld, enabled %d)\n", el, el->glIndex, el->OriginalIndex, el->lightEnabled);\
-    el = el->next;                            \
-  }                                           \
-}
-
 #endif /* __WINE_D3DX8_PRIVATE_H */
Index: dlls/d3d8/d3dcore_gl.h
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/d3dcore_gl.h,v
retrieving revision 1.23
diff -u -r1.23 d3dcore_gl.h
--- dlls/d3d8/d3dcore_gl.h	5 Feb 2006 12:54:36 -0000	1.23
+++ dlls/d3d8/d3dcore_gl.h	18 Feb 2006 15:32:40 -0000
@@ -833,12 +833,6 @@
  * Structures required to draw primitives 
  */
 
-typedef struct Direct3DStridedData {
-    BYTE     *lpData;        /* Pointer to start of data               */
-    DWORD     dwStride;      /* Stride between occurances of this data */
-    DWORD     dwType;        /* Type (as in D3DVSDT_TYPE)              */
-} Direct3DStridedData;
-
 typedef struct Direct3DVertexStridedData {
     union {
         struct {
Index: dlls/d3d8/device.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/device.c,v
retrieving revision 1.141
diff -u -r1.141 device.c
--- dlls/d3d8/device.c	14 Feb 2006 17:05:35 -0000	1.141
+++ dlls/d3d8/device.c	18 Feb 2006 15:32:45 -0000
@@ -2099,8 +2099,8 @@
     DWORD OldValue = This->StateBlock->renderstate[State];
         
     TRACE("(%p)->state = %s(%d), value = %ld\n", This, debug_d3drenderstate(State), State, Value);
-    This->UpdateStateBlock->Changed.renderstate[State] = TRUE;
-    This->UpdateStateBlock->Set.renderstate[State] = TRUE;
+    This->UpdateStateBlock->Changed.renderState[State] = TRUE;
+    This->UpdateStateBlock->Set.renderState[State] = TRUE;
     This->UpdateStateBlock->renderstate[State] = Value;
 
     /* Handle recording of state blocks */
@@ -3291,8 +3291,8 @@
         return D3DERR_INVALIDCALL;
     }
 
-    This->UpdateStateBlock->Changed.texture_state[Stage][Type] = TRUE;
-    This->UpdateStateBlock->Set.texture_state[Stage][Type] = TRUE;
+    This->UpdateStateBlock->Changed.textureState[Stage][Type] = TRUE;
+    This->UpdateStateBlock->Set.textureState[Stage][Type] = TRUE;
     This->UpdateStateBlock->texture_state[Stage][Type] = Value;
 
     /* Handle recording of state blocks */
@@ -3987,13 +3987,13 @@
     if (Handle > VS_HIGHESTFIXEDFXF) { /* only valid with non FVF shaders */
       TRACE_(d3d_shader)("(%p) : Created shader, Handle=%lx\n", This, Handle);
       This->UpdateStateBlock->vertexShaderDecl = VERTEX_SHADER_DECL(Handle);
-      This->UpdateStateBlock->Changed.vertexShaderDecl = TRUE;
-      This->UpdateStateBlock->Set.vertexShaderDecl = TRUE;
+      This->UpdateStateBlock->Changed.vertexDecl = TRUE;
+      This->UpdateStateBlock->Set.vertexDecl = TRUE;
     } else { /* use a fvf, so desactivate the vshader decl */
       TRACE("(%p) : FVF Shader, Handle=%lx\n", This, Handle);
       This->UpdateStateBlock->vertexShaderDecl = NULL;
-      This->UpdateStateBlock->Changed.vertexShaderDecl = TRUE;
-      This->UpdateStateBlock->Set.vertexShaderDecl = TRUE;
+      This->UpdateStateBlock->Changed.vertexDecl = TRUE;
+      This->UpdateStateBlock->Set.vertexDecl = TRUE;
     }
     /* Handle recording of state blocks */
     if (This->isRecordingState) {
@@ -4076,7 +4076,7 @@
     const FLOAT* f = (const FLOAT*) pConstantData;
     TRACE_(d3d_shader)("(%p) : SetVertexShaderConstant, C[%lu]={%f, %f, %f, %f}\n", This, Register, f[0], f[1], f[2], f[3]);
   }
-  This->UpdateStateBlock->Changed.vertexShaderConstant = TRUE;
+  This->UpdateStateBlock->Changed.vertexShaderConstants[0] = TRUE;
   memcpy(&This->UpdateStateBlock->vertexShaderConstant[Register], pConstantData, ConstantCount * 4 * sizeof(FLOAT));
   return D3D_OK;
 }
@@ -4121,8 +4121,8 @@
     TRACE("(%p) : Setting to %p, base %d\n", This, pIndexData, BaseVertexIndex);
     oldIdxs = This->StateBlock->pIndexData;
 
-    This->UpdateStateBlock->Changed.Indices = TRUE;
-    This->UpdateStateBlock->Set.Indices = TRUE;
+    This->UpdateStateBlock->Changed.indices = TRUE;
+    This->UpdateStateBlock->Set.indices = TRUE;
     This->UpdateStateBlock->pIndexData = pIndexData;
     This->UpdateStateBlock->baseVertexIndex = BaseVertexIndex;
 
@@ -4248,7 +4248,7 @@
     const FLOAT* f = (const FLOAT*) pConstantData;
     TRACE_(d3d_shader)("(%p) : SetPixelShaderConstant, C[%lu]={%f, %f, %f, %f}\n", This, Register, f[0], f[1], f[2], f[3]);
   }
-  This->UpdateStateBlock->Changed.pixelShaderConstant = TRUE;
+  This->UpdateStateBlock->Changed.pixelShaderConstants[0] = TRUE;
   memcpy(&This->UpdateStateBlock->pixelShaderConstant[Register], pConstantData, ConstantCount * 4 * sizeof(FLOAT));
   return D3D_OK;
 }
@@ -4294,8 +4294,8 @@
     oldSrc = This->StateBlock->stream_source[StreamNumber];
     TRACE("(%p) : StreamNo: %d, OldStream (%p), NewStream (%p), NewStride %d\n", This, StreamNumber, oldSrc, pStreamData, Stride);
 
-    This->UpdateStateBlock->Changed.stream_source[StreamNumber] = TRUE;
-    This->UpdateStateBlock->Set.stream_source[StreamNumber] = TRUE;
+    This->UpdateStateBlock->Changed.streamSource[StreamNumber] = TRUE;
+    This->UpdateStateBlock->Set.streamSource[StreamNumber] = TRUE;
     This->UpdateStateBlock->stream_stride[StreamNumber] = Stride;
     This->UpdateStateBlock->stream_source[StreamNumber] = pStreamData;
 
Index: dlls/d3d8/drawprim.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/drawprim.c,v
retrieving revision 1.30
diff -u -r1.30 drawprim.c
--- dlls/d3d8/drawprim.c	3 Nov 2005 09:54:31 -0000	1.30
+++ dlls/d3d8/drawprim.c	18 Feb 2006 15:32:47 -0000
@@ -1485,7 +1485,7 @@
 		 vertex_shader->usage != D3DUSAGE_SOFTWAREPROCESSING);
 
         /** init Constants */
-        if (This->UpdateStateBlock->Changed.vertexShaderConstant) {
+        if (This->UpdateStateBlock->Changed.vertexShaderConstants[0]) {
             TRACE_(d3d_shader)("vertex shader initializing constants\n");
             IDirect3DVertexShaderImpl_SetConstantF(vertex_shader, 0, (CONST FLOAT*) &This->UpdateStateBlock->vertexShaderConstant[0], 96);
         }
@@ -1505,7 +1505,7 @@
         checkGLcall("glEnable(GL_FRAGMENT_PROGRAM_ARB);");	
 
         /* init Constants */
-        if (This->UpdateStateBlock->Changed.pixelShaderConstant) {
+        if (This->UpdateStateBlock->Changed.pixelShaderConstants[0]) {
             TRACE_(d3d_shader)("pixel shader initializing constants %p\n",pixel_shader);
             IDirect3DPixelShaderImpl_SetConstantF(pixel_shader, 0, (CONST FLOAT*) &This->UpdateStateBlock->pixelShaderConstant[0], 8);
         }
Index: dlls/d3d8/stateblock.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/stateblock.c,v
retrieving revision 1.19
diff -u -r1.19 stateblock.c
--- dlls/d3d8/stateblock.c	10 Nov 2005 12:14:59 -0000	1.19
+++ dlls/d3d8/stateblock.c	18 Feb 2006 15:32:48 -0000
@@ -320,11 +320,11 @@
     /* TODO: Pixel Shader Constants */
     object->Changed.pixelShader = TRUE;
     for (i = 0; i < NUM_SAVEDPIXELSTATES_R; i++) {
-      object->Changed.renderstate[SavedPixelStates_R[i]] = TRUE;
+      object->Changed.renderState[SavedPixelStates_R[i]] = TRUE;
     }
     for (j = 0; j < GL_LIMITS(textures); i++) {
       for (i = 0; i < NUM_SAVEDPIXELSTATES_T; i++) {
-	object->Changed.texture_state[j][SavedPixelStates_T[i]] = TRUE;
+	object->Changed.textureState[j][SavedPixelStates_T[i]] = TRUE;
       }
     }
     
@@ -335,11 +335,11 @@
     /* TODO: Vertex Shader Constants */
     object->Changed.vertexShader = TRUE;
     for (i = 0; i < NUM_SAVEDVERTEXSTATES_R; i++) {
-      object->Changed.renderstate[SavedVertexStates_R[i]] = TRUE;
+      object->Changed.renderState[SavedVertexStates_R[i]] = TRUE;
     }
     for (j = 0; j < GL_LIMITS(textures); i++) {
       for (i = 0; i < NUM_SAVEDVERTEXSTATES_T; i++) {
-	object->Changed.texture_state[j][SavedVertexStates_T[i]] = TRUE;
+	object->Changed.textureState[j][SavedVertexStates_T[i]] = TRUE;
       }
     }
 
@@ -479,7 +479,7 @@
                 IDirect3DDevice8Impl_SetTransform(iface, i, &pSB->transforms[i]);
         }
 
-        if (pSB->Set.Indices && pSB->Changed.Indices)
+        if (pSB->Set.indices && pSB->Changed.indices)
             IDirect3DDevice8Impl_SetIndices(iface, pSB->pIndexData, pSB->baseVertexIndex);
 
         if (pSB->Set.material && pSB->Changed.material)
@@ -489,7 +489,7 @@
             IDirect3DDevice8Impl_SetViewport(iface, &pSB->viewport);
 
         for (i=0; i<MAX_STREAMS; i++) {
-            if (pSB->Set.stream_source[i] && pSB->Changed.stream_source[i])
+            if (pSB->Set.streamSource[i] && pSB->Changed.streamSource[i])
                 IDirect3DDevice8Impl_SetStreamSource(iface, i, pSB->stream_source[i], pSB->stream_stride[i]);
         }  
 
@@ -507,14 +507,14 @@
 
         /* Render */
         for (i = 0; i < HIGHEST_RENDER_STATE; i++) {
-            if (pSB->Set.renderstate[i] && pSB->Changed.renderstate[i])
+            if (pSB->Set.renderState[i] && pSB->Changed.renderState[i])
                 IDirect3DDevice8Impl_SetRenderState(iface, i, pSB->renderstate[i]);
         }
 
         /* Texture */
         for (j = 0; j < GL_LIMITS(textures); j++) {
 	  for (i = 0; i < HIGHEST_TEXTURE_STATE; i++) {
-	    if (pSB->Set.texture_state[j][i] && pSB->Changed.texture_state[j][i]) {
+	    if (pSB->Set.textureState[j][i] && pSB->Changed.textureState[j][i]) {
 	      IDirect3DDevice8Impl_SetTextureStageState(iface, j, i, pSB->texture_state[j][i]);
 	    }
 	  } 
@@ -527,15 +527,15 @@
     } else if (pSB->blockType == D3DSBT_PIXELSTATE) {
 
         for (i = 0; i < NUM_SAVEDPIXELSTATES_R; i++) {
-            if (pSB->Set.renderstate[SavedPixelStates_R[i]] && pSB->Changed.renderstate[SavedPixelStates_R[i]])
+            if (pSB->Set.renderState[SavedPixelStates_R[i]] && pSB->Changed.renderState[SavedPixelStates_R[i]])
                 IDirect3DDevice8Impl_SetRenderState(iface, SavedPixelStates_R[i], pSB->renderstate[SavedPixelStates_R[i]]);
 
         }
 
         for (j = 0; j < GL_LIMITS(textures); i++) {
             for (i = 0; i < NUM_SAVEDPIXELSTATES_T; i++) {
-                if (pSB->Set.texture_state[j][SavedPixelStates_T[i]] &&
-                    pSB->Changed.texture_state[j][SavedPixelStates_T[i]])
+                if (pSB->Set.textureState[j][SavedPixelStates_T[i]] &&
+                    pSB->Changed.textureState[j][SavedPixelStates_T[i]])
                     IDirect3DDevice8Impl_SetTextureStageState(iface, j, SavedPixelStates_T[i], pSB->texture_state[j][SavedPixelStates_T[i]]);
             }
         }
@@ -543,14 +543,14 @@
     } else if (pSB->blockType == D3DSBT_VERTEXSTATE) {
 
         for (i = 0; i < NUM_SAVEDVERTEXSTATES_R; i++) {
-            if (pSB->Set.renderstate[SavedVertexStates_R[i]] && pSB->Changed.renderstate[SavedVertexStates_R[i]])
+            if (pSB->Set.renderState[SavedVertexStates_R[i]] && pSB->Changed.renderState[SavedVertexStates_R[i]])
                 IDirect3DDevice8Impl_SetRenderState(iface, SavedVertexStates_R[i], pSB->renderstate[SavedVertexStates_R[i]]);
         }
 
         for (j = 0; j < GL_LIMITS(textures); i++) {
             for (i = 0; i < NUM_SAVEDVERTEXSTATES_T; i++) {
-                if (pSB->Set.texture_state[j][SavedVertexStates_T[i]] &&
-                    pSB->Changed.texture_state[j][SavedVertexStates_T[i]])
+                if (pSB->Set.textureState[j][SavedVertexStates_T[i]] &&
+                    pSB->Changed.textureState[j][SavedVertexStates_T[i]])
                     IDirect3DDevice8Impl_SetTextureStageState(iface, j, SavedVertexStates_T[i], pSB->texture_state[j][SavedVertexStates_T[i]]);
             }
         }
@@ -647,7 +647,7 @@
 	  }
 	}
 
-	if (updateBlock->Set.Indices && ((updateBlock->pIndexData != This->StateBlock->pIndexData)
+	if (updateBlock->Set.indices && ((updateBlock->pIndexData != This->StateBlock->pIndexData)
 					 || (updateBlock->baseVertexIndex != This->StateBlock->baseVertexIndex))) {
 	  TRACE("Updating pindexData to %p, baseVertexIndex to %d\n", 
 		This->StateBlock->pIndexData, This->StateBlock->baseVertexIndex);
@@ -670,7 +670,7 @@
        }
 
        for (i = 0; i < MAX_STREAMS; i++) {
-           if (updateBlock->Set.stream_source[i] && 
+           if (updateBlock->Set.streamSource[i] && 
                            ((updateBlock->stream_stride[i] != This->StateBlock->stream_stride[i]) ||
                            (updateBlock->stream_source[i] != This->StateBlock->stream_source[i]))) {
                TRACE("Updating stream source %d to %p, stride to %d\n", i, This->StateBlock->stream_source[i], 
@@ -694,7 +694,7 @@
        /* Render */
        for (i = 0; i < HIGHEST_RENDER_STATE; i++) {
 
-           if (updateBlock->Set.renderstate[i] && (updateBlock->renderstate[i] != 
+           if (updateBlock->Set.renderState[i] && (updateBlock->renderstate[i] != 
                                                        This->StateBlock->renderstate[i])) {
                TRACE("Updating renderstate %d to %ld\n", i, This->StateBlock->renderstate[i]);
                updateBlock->renderstate[i] = This->StateBlock->renderstate[i];
@@ -705,7 +705,7 @@
        for (j = 0; j < GL_LIMITS(textures); j++) {
            for (i = 0; i < HIGHEST_TEXTURE_STATE; i++) {
 
-               if (updateBlock->Set.texture_state[j][i] && (updateBlock->texture_state[j][i] != 
+               if (updateBlock->Set.textureState[j][i] && (updateBlock->texture_state[j][i] != 
                                                                 This->StateBlock->texture_state[j][i])) {
                    TRACE("Updating texturestagestate %d,%d to %ld (was %ld)\n", j,i, This->StateBlock->texture_state[j][i], 
                                updateBlock->texture_state[j][i]);
Index: dlls/wined3d/wined3d_private.h
===================================================================
RCS file: /home/wine/wine/dlls/wined3d/wined3d_private.h,v
retrieving revision 1.74
diff -u -r1.74 wined3d_private.h
--- dlls/wined3d/wined3d_private.h	13 Feb 2006 13:10:32 -0000	1.74
+++ dlls/wined3d/wined3d_private.h	18 Feb 2006 15:32:53 -0000
@@ -37,10 +37,17 @@
 #include "wine/debug.h"
 #include "wine/unicode.h"
 
+#if !defined(__WINE_D3D8_PRIVATE_H)
 #include "d3d9.h"
 #include "d3d9types.h"
-#include "wine/wined3d_interface.h"
 #include "wine/wined3d_gl.h"
+#else
+#include "d3d8.h"
+#include "d3d8types.h"
+#endif
+
+
+#include "wine/wined3d_interface.h"
 
 /* Device caps */
 #define MAX_PALETTES      256
@@ -54,6 +61,7 @@
 #define MAX_VSHADER_CONSTANTS 96
 #define MAX_PSHADER_CONSTANTS 32
 
+#if !defined(__WINE_D3D8_PRIVATE_H)
 /* Used for CreateStateBlock */
 #define NUM_SAVEDPIXELSTATES_R     35
 #define NUM_SAVEDPIXELSTATES_T     18
@@ -68,7 +76,7 @@
 extern const DWORD SavedVertexStates_R[NUM_SAVEDVERTEXSTATES_R];
 extern const DWORD SavedVertexStates_T[NUM_SAVEDVERTEXSTATES_T];
 extern const DWORD SavedVertexStates_S[NUM_SAVEDVERTEXSTATES_S];
-
+#endif
 typedef enum _WINELOOKUP {
     WINELOOKUP_WARPPARAM = 0,
     WINELOOKUP_MAGFILTER = 1,
@@ -81,6 +89,7 @@
 
 extern DWORD minMipLookup[D3DTEXF_ANISOTROPIC + 1][D3DTEXF_LINEAR + 1];
 
+#if !defined(__WINE_D3D8_PRIVATE_H)
 /* NOTE: Make sure these are in the correct numerical order. (see /include/d3d9types.h typedef enum _D3DDECLTYPE) */
 UINT static const glTypeLookup[D3DDECLTYPE_UNUSED][5] = {
                                   {D3DDECLTYPE_FLOAT1,    1, GL_FLOAT           , GL_FALSE ,sizeof(float)},
@@ -100,6 +109,7 @@
                                   {D3DDECLTYPE_DEC3N,     3, GL_SHORT           , GL_FALSE ,sizeof(short int)},
                                   {D3DDECLTYPE_FLOAT16_2, 2, GL_FLOAT           , GL_FALSE ,sizeof(short int)},
                                   {D3DDECLTYPE_FLOAT16_4, 4, GL_FLOAT           , GL_FALSE ,sizeof(short int)}};
+#endif
 
 #define WINED3D_ATR_TYPE(_attribute)          glTypeLookup[sd->u.s._attribute.dwType][0]
 #define WINED3D_ATR_SIZE(_attribute)          glTypeLookup[sd->u.s._attribute.dwType][1]
@@ -156,10 +166,13 @@
 
 /* GL related defines */
 /* ------------------ */
+
+#if !defined(__WINE_D3D8_PRIVATE_H)
 #define GL_SUPPORT(ExtName)           (GLINFO_LOCATION.supported[ExtName] != 0)
 #define GL_LIMITS(ExtName)            (GLINFO_LOCATION.max_##ExtName)
 #define GL_EXTCALL(FuncName)          (GLINFO_LOCATION.FuncName)
 #define GL_VEND(_VendName)            (GLINFO_LOCATION.gl_vendor == VENDOR_##_VendName ? TRUE : FALSE)
+#endif
 
 #define D3DCOLOR_B_R(dw) (((dw) >> 16) & 0xFF)
 #define D3DCOLOR_B_G(dw) (((dw) >>  8) & 0xFF)
@@ -349,6 +362,7 @@
  */
 
 /* Routine common to the draw primitive and draw indexed primitive routines */
+#if !defined(__WINE_D3D8_PRIVATE_H)
 void drawPrimitive(IWineD3DDevice *iface,
                     int PrimitiveType,
                     long NumPrimitives,
@@ -359,7 +373,7 @@
                     short idxBytes,
                     const void *idxData,
                     int   minIndex);
-
+#endif
 /*****************************************************************************
  * Structures required to draw primitives 
  */
@@ -370,6 +384,8 @@
     DWORD     dwType;        /* Type (as in D3DVSDT_TYPE)              */
 } Direct3DStridedData;
 
+
+#if !defined(__WINE_D3D8_PRIVATE_H)
 typedef struct Direct3DVertexStridedData {
     union {
         struct {
@@ -393,6 +409,7 @@
         Direct3DStridedData input[16];  /* Indexed by constants in D3DVSDE_REGISTER */
     } u;
 } Direct3DVertexStridedData;
+#endif
 
 /*****************************************************************************
  * Internal representation of a light
@@ -419,6 +436,8 @@
 /*****************************************************************************
  * IWineD3D implementation structure
  */
+
+#if !defined(__WINE_D3D8_PRIVATE_H)
 typedef struct IWineD3DImpl
 {
     /* IUnknown fields */
@@ -435,6 +454,7 @@
 } IWineD3DImpl;
 
 extern const IWineD3DVtbl IWineD3D_Vtbl;
+#endif
 
 typedef struct SwapChainList {
     IWineD3DSwapChain         *swapchain;
@@ -839,6 +859,8 @@
 /*****************************************************************************
  * IWineD3DVertexDeclaration implementation structure
  */
+
+#if !defined(__WINE_D3D8_PRIVATE_H)
 typedef struct IWineD3DVertexDeclarationImpl {
  /* IUnknown  Information     */
   const IWineD3DVertexDeclarationVtbl *lpVtbl;
@@ -866,6 +888,7 @@
 } IWineD3DVertexDeclarationImpl;
 
 extern const IWineD3DVertexDeclarationVtbl IWineD3DVertexDeclaration_Vtbl;
+#endif
 
 /*****************************************************************************
  * IWineD3DStateBlock implementation structure
@@ -989,6 +1012,7 @@
 /*****************************************************************************
  * IWineD3DQueryImpl implementation structure (extends IUnknown)
  */
+#if !defined(__WINE_D3D8_PRIVATE_H)
 typedef struct IWineD3DQueryImpl
 {
     const IWineD3DQueryVtbl  *lpVtbl;
@@ -1009,6 +1033,7 @@
     
   
 } IWineD3DQueryImpl;
+#endif
 
 extern const IWineD3DQueryVtbl IWineD3DQuery_Vtbl;
 
@@ -1059,6 +1084,7 @@
  * Utility function prototypes 
  */
 
+#if !defined(__WINE_D3D8_PRIVATE_H)
 /* Trace routines */
 const char* debug_d3dformat(WINED3DFORMAT fmt);
 const char* debug_d3ddevicetype(D3DDEVTYPE devtype);
@@ -1079,6 +1105,7 @@
 GLenum D3DFmt2GLFmt(IWineD3DDeviceImpl* This, D3DFORMAT fmt);
 GLenum D3DFmt2GLType(IWineD3DDeviceImpl *This, D3DFORMAT fmt);
 GLint  D3DFmt2GLIntFmt(IWineD3DDeviceImpl* This, D3DFORMAT fmt);
+#endif
 
 int D3DFmtMakeGlCfg(D3DFORMAT BackBufferFormat, D3DFORMAT StencilBufferFormat, int *attribs, int* nAttribs, BOOL alternate);
 


More information about the wine-patches mailing list