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