52
52
* device info structures
54
54
typedef struct _D3DDeviceDesc_V1 {
57
D3DCOLORMODEL dcmColorModel;
59
D3DTRANSFORMCAPS dtcTransformCaps;
61
D3DLIGHTINGCAPS dlcLightingCaps;
62
D3DPRIMCAPS dpcLineCaps;
63
D3DPRIMCAPS dpcTriCaps;
64
DWORD dwDeviceRenderBitDepth;
65
DWORD dwDeviceZBufferBitDepth;
66
DWORD dwMaxBufferSize;
67
DWORD dwMaxVertexCount;
68
} D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
57
D3DCOLORMODEL dcmColorModel;
59
D3DTRANSFORMCAPS dtcTransformCaps;
61
D3DLIGHTINGCAPS dlcLightingCaps;
62
D3DPRIMCAPS dpcLineCaps;
63
D3DPRIMCAPS dpcTriCaps;
64
DWORD dwDeviceRenderBitDepth;
65
DWORD dwDeviceZBufferBitDepth;
66
DWORD dwMaxBufferSize;
67
DWORD dwMaxVertexCount;
68
} D3DDEVICEDESC_V1, *LPD3DDEVICEDESC_V1;
70
70
/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
71
71
#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
73
73
typedef struct _D3DHAL_GLOBALDRIVERDATA {
75
D3DDEVICEDESC_V1 hwCaps;
77
DWORD dwNumClipVertices;
78
DWORD dwNumTextureFormats;
79
LPDDSURFACEDESC lpTextureFormats;
75
D3DDEVICEDESC_V1 hwCaps;
77
DWORD dwNumClipVertices;
78
DWORD dwNumTextureFormats;
79
LPDDSURFACEDESC lpTextureFormats;
80
80
} D3DHAL_GLOBALDRIVERDATA;
82
82
#ifndef D3DHAL_GLOBALDRIVERDATA_DEFINED
87
87
typedef struct _D3DHAL_D3DEXTENDEDCAPS {
90
DWORD dwMinTextureWidth, dwMaxTextureWidth;
91
DWORD dwMinTextureHeight, dwMaxTextureHeight;
92
DWORD dwMinStippleWidth, dwMaxStippleWidth;
93
DWORD dwMinStippleHeight, dwMaxStippleHeight;
90
DWORD dwMinTextureWidth, dwMaxTextureWidth;
91
DWORD dwMinTextureHeight, dwMaxTextureHeight;
92
DWORD dwMinStippleWidth, dwMaxStippleWidth;
93
DWORD dwMinStippleHeight, dwMaxStippleHeight;
95
DWORD dwMaxTextureRepeat;
96
DWORD dwMaxTextureAspectRatio;
97
DWORD dwMaxAnisotropy;
98
D3DVALUE dvGuardBandLeft;
99
D3DVALUE dvGuardBandTop;
100
D3DVALUE dvGuardBandRight;
101
D3DVALUE dvGuardBandBottom;
102
D3DVALUE dvExtentsAdjust;
105
DWORD dwTextureOpCaps;
106
WORD wMaxTextureBlendStages;
107
WORD wMaxSimultaneousTextures;
95
DWORD dwMaxTextureRepeat;
96
DWORD dwMaxTextureAspectRatio;
97
DWORD dwMaxAnisotropy;
98
D3DVALUE dvGuardBandLeft;
99
D3DVALUE dvGuardBandTop;
100
D3DVALUE dvGuardBandRight;
101
D3DVALUE dvGuardBandBottom;
102
D3DVALUE dvExtentsAdjust;
105
DWORD dwTextureOpCaps;
106
WORD wMaxTextureBlendStages;
107
WORD wMaxSimultaneousTextures;
109
DWORD dwMaxActiveLights;
110
D3DVALUE dvMaxVertexW;
111
WORD wMaxUserClipPlanes;
112
WORD wMaxVertexBlendMatrices;
113
DWORD dwVertexProcessingCaps;
118
} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
109
DWORD dwMaxActiveLights;
110
D3DVALUE dvMaxVertexW;
111
WORD wMaxUserClipPlanes;
112
WORD wMaxVertexBlendMatrices;
113
DWORD dwVertexProcessingCaps;
118
} D3DHAL_D3DEXTENDEDCAPS, *LPD3DHAL_D3DEXTENDEDCAPS;
120
120
/*****************************************************************************
121
121
* d3d->driver callbacks
123
typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
124
typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
125
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
126
typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
127
typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
128
typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
129
typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
130
typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
131
typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
132
typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
133
typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
123
typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
124
typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
125
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
126
typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
127
typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
128
typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
129
typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
130
typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
131
typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
132
typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
133
typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
135
135
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
136
136
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
137
137
typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
138
typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
139
typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
138
typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
139
typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
140
140
typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
141
141
typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
142
142
typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
143
typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
143
typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
144
144
typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
145
typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
145
typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
147
147
typedef struct _D3DHAL_CALLBACKS {
149
LPD3DHAL_CONTEXTCREATECB ContextCreate;
150
LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
151
LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
152
LPD3DHAL_SCENECAPTURECB SceneCapture;
155
LPD3DHAL_RENDERSTATECB RenderState;
156
LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
158
LPD3DHAL_TEXTURECREATECB TextureCreate;
159
LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
160
LPD3DHAL_TEXTURESWAPCB TextureSwap;
161
LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
149
LPD3DHAL_CONTEXTCREATECB ContextCreate;
150
LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
151
LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
152
LPD3DHAL_SCENECAPTURECB SceneCapture;
155
LPD3DHAL_RENDERSTATECB RenderState;
156
LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
158
LPD3DHAL_TEXTURECREATECB TextureCreate;
159
LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
160
LPD3DHAL_TEXTURESWAPCB TextureSwap;
161
LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
162
162
/* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
163
163
* all these reserved fields were available? we may never know */
174
LPD3DHAL_GETSTATECB GetState;
174
LPD3DHAL_GETSTATECB GetState;
185
185
} D3DHAL_CALLBACKS;
187
187
#ifndef D3DHAL_CALLBACKS_DEFINED
189
189
#define D3DHAL_CALLBACKS_DEFINED
192
typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
193
typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
194
typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
195
typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
196
typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
192
typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
193
typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
194
typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
195
typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
196
typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
198
typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
199
typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
200
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
198
typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
199
typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
200
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
201
201
typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
202
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
202
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
204
204
typedef struct _D3DHAL_CALLBACKS2 {
207
LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
208
LPD3DHAL_CLEARCB Clear;
209
LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
210
LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
211
LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
212
} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
214
typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
215
typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
216
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
218
typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
219
typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
220
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
207
LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
208
LPD3DHAL_CLEARCB Clear;
209
LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
210
LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
211
LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
212
} D3DHAL_CALLBACKS2, *LPD3DHAL_CALLBACKS2;
214
typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
215
typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
216
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
218
typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
219
typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB) (LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
220
typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
222
222
typedef struct _D3DHAL_CALLBACKS3 {
225
LPD3DHAL_CLEAR2CB Clear2;
227
LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
228
LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
229
} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
225
LPD3DHAL_CLEAR2CB Clear2;
227
LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
228
LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
229
} D3DHAL_CALLBACKS3, *LPD3DHAL_CALLBACKS3;
231
231
/*****************************************************************************
232
232
* parameter structures
234
234
typedef struct _D3DHAL_CONTEXTCREATEDATA {
236
LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
237
LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
235
_ANONYMOUS_UNION union {
236
LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
237
LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
238
238
} DUMMYUNIONNAME1;
240
LPDIRECTDRAWSURFACE lpDDS;
241
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
239
_ANONYMOUS_UNION union {
240
LPDIRECTDRAWSURFACE lpDDS;
241
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
242
242
} DUMMYUNIONNAME2;
244
LPDIRECTDRAWSURFACE lpDDSZ;
245
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
243
_ANONYMOUS_UNION union {
244
LPDIRECTDRAWSURFACE lpDDSZ;
245
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
246
246
} DUMMYUNIONNAME3;
247
_ANONYMOUS_UNION union {
250
250
} DUMMYUNIONNAME4;
251
ULONG_PTR dwhContext;
251
ULONG_PTR dwhContext;
253
253
} D3DHAL_CONTEXTCREATEDATA;
255
255
typedef struct _D3DHAL_CONTEXTDESTROYDATA {
256
ULONG_PTR dwhContext;
256
ULONG_PTR dwhContext;
258
258
} D3DHAL_CONTEXTDESTROYDATA;
260
260
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
263
263
} D3DHAL_CONTEXTDESTROYALLDATA;
265
265
typedef struct _D3DHAL_SCENECAPTUREDATA {
266
ULONG_PTR dwhContext;
266
ULONG_PTR dwhContext;
269
269
} D3DHAL_SCENECAPTUREDATA;
271
#define D3DHAL_SCENE_CAPTURE_START 0x00000000
272
#define D3DHAL_SCENE_CAPTURE_END 0x00000001
271
#define D3DHAL_SCENE_CAPTURE_START 0x00000000
272
#define D3DHAL_SCENE_CAPTURE_END 0x00000001
274
274
typedef struct _D3DHAL_SETRENDERTARGETDATA {
275
ULONG_PTR dwhContext;
277
LPDIRECTDRAWSURFACE lpDDS;
278
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
275
ULONG_PTR dwhContext;
276
_ANONYMOUS_UNION union {
277
LPDIRECTDRAWSURFACE lpDDS;
278
LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
279
279
} DUMMYUNIONNAME1;
281
LPDIRECTDRAWSURFACE lpDDSZ;
282
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
280
_ANONYMOUS_UNION union {
281
LPDIRECTDRAWSURFACE lpDDSZ;
282
LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
283
283
} DUMMYUNIONNAME2;
285
285
} D3DHAL_SETRENDERTARGETDATA;
287
287
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
288
ULONG_PTR dwhContext;
291
LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
292
DWORD dwCommandOffset;
293
DWORD dwCommandLength;
295
LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
288
ULONG_PTR dwhContext;
291
LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
292
DWORD dwCommandOffset;
293
DWORD dwCommandLength;
294
_ANONYMOUS_UNION union {
295
LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
297
297
} DUMMYUNIONNAME1;
298
DWORD dwVertexOffset;
299
DWORD dwVertexLength;
300
DWORD dwReqVertexBufSize;
301
DWORD dwReqCommandBufSize;
298
DWORD dwVertexOffset;
299
DWORD dwVertexLength;
300
DWORD dwReqVertexBufSize;
301
DWORD dwReqCommandBufSize;
303
_ANONYMOUS_UNION union {
306
306
} DUMMYUNIONNAME2;
308
308
} D3DHAL_DRAWPRIMITIVES2DATA;
310
#define D3DHALDP2_USERMEMVERTICES 0x00000001
311
#define D3DHALDP2_EXECUTEBUFFER 0x00000002
312
#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
313
#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
314
#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
315
#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
316
#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
317
#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
310
#define D3DHALDP2_USERMEMVERTICES 0x00000001
311
#define D3DHALDP2_EXECUTEBUFFER 0x00000002
312
#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
313
#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
314
#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
315
#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
316
#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
317
#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
319
319
/*****************************************************************************
320
320
* DrawPrimitives2 command structures
322
322
typedef struct _D3DHAL_DP2COMMAND {
325
_ANONYMOUS_UNION union {
326
326
WORD wPrimitiveCount;
327
327
WORD wStateCount;
328
328
} DUMMYUNIONNAME;
329
} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
329
} D3DHAL_DP2COMMAND, *LPD3DHAL_DP2COMMAND;
331
331
typedef enum _D3DHAL_DP2OPERATION {
333
D3DDP2OP_INDEXEDLINELIST = 2,
334
D3DDP2OP_INDEXEDTRIANGLELIST = 3,
335
D3DDP2OP_RENDERSTATE = 8,
336
D3DDP2OP_LINELIST = 15,
337
D3DDP2OP_LINESTRIP = 16,
338
D3DDP2OP_INDEXEDLINESTRIP = 17,
339
D3DDP2OP_TRIANGLELIST = 18,
340
D3DDP2OP_TRIANGLESTRIP = 19,
341
D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
342
D3DDP2OP_TRIANGLEFAN = 21,
343
D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
344
D3DDP2OP_TRIANGLEFAN_IMM = 23,
345
D3DDP2OP_LINELIST_IMM = 24,
346
D3DDP2OP_TEXTURESTAGESTATE = 25,
347
D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
348
D3DDP2OP_INDEXEDLINELIST2 = 27,
349
D3DDP2OP_VIEWPORTINFO = 28,
333
D3DDP2OP_INDEXEDLINELIST = 2,
334
D3DDP2OP_INDEXEDTRIANGLELIST = 3,
335
D3DDP2OP_RENDERSTATE = 8,
336
D3DDP2OP_LINELIST = 15,
337
D3DDP2OP_LINESTRIP = 16,
338
D3DDP2OP_INDEXEDLINESTRIP = 17,
339
D3DDP2OP_TRIANGLELIST = 18,
340
D3DDP2OP_TRIANGLESTRIP = 19,
341
D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
342
D3DDP2OP_TRIANGLEFAN = 21,
343
D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
344
D3DDP2OP_TRIANGLEFAN_IMM = 23,
345
D3DDP2OP_LINELIST_IMM = 24,
346
D3DDP2OP_TEXTURESTAGESTATE = 25,
347
D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
348
D3DDP2OP_INDEXEDLINELIST2 = 27,
349
D3DDP2OP_VIEWPORTINFO = 28,
351
351
/* pre-DirectX 7 interfaces */
352
D3DDP2OP_SETPALETTE = 30,
353
D3DDP2OP_UPDATEPALETTE = 31,
352
D3DDP2OP_SETPALETTE = 30,
353
D3DDP2OP_UPDATEPALETTE = 31,
354
354
/* DirectX 7 interfaces */
355
D3DDP2OP_ZRANGE = 32,
356
D3DDP2OP_SETMATERIAL = 33,
357
D3DDP2OP_SETLIGHT = 34,
358
D3DDP2OP_CREATELIGHT = 35,
359
D3DDP2OP_SETTRANSFORM = 36,
360
D3DDP2OP_TEXBLT = 38,
361
D3DDP2OP_STATESET = 39,
362
D3DDP2OP_SETPRIORITY = 40,
355
D3DDP2OP_ZRANGE = 32,
356
D3DDP2OP_SETMATERIAL = 33,
357
D3DDP2OP_SETLIGHT = 34,
358
D3DDP2OP_CREATELIGHT = 35,
359
D3DDP2OP_SETTRANSFORM = 36,
360
D3DDP2OP_TEXBLT = 38,
361
D3DDP2OP_STATESET = 39,
362
D3DDP2OP_SETPRIORITY = 40,
363
363
/* all interfaces */
364
D3DDP2OP_SETRENDERTARGET = 41,
364
D3DDP2OP_SETRENDERTARGET = 41,
366
366
/* DirectX 7 interfaces */
367
D3DDP2OP_SETTEXLOD = 43,
368
D3DPP2OP_SETCLIPPLANE = 44,
367
D3DDP2OP_SETTEXLOD = 43,
368
D3DPP2OP_SETCLIPPLANE = 44,
369
369
#if(DIRECT3D_VERSION >= 0x0800)
370
370
D3DDP2OP_CREATEVERTEXSHADER = 45,
371
371
D3DDP2OP_DELETEVERTEXSHADER = 46,
424
424
typedef struct _D3DHAL_POINTS {
427
} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
427
} D3DHAL_DP2POINTS, *LPD3DHAL_DP2POINTS;
429
429
/* line primitives */
431
431
typedef struct _D3DHAL_DP2STARTVERTEX {
433
} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
433
} D3DHAL_DP2STARTVERTEX, *LPD3DHAL_DP2STARTVERTEX;
435
435
typedef struct _D3DHAL_DP2LINELIST {
437
} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
437
} D3DHAL_DP2LINELIST, *LPD3DHAL_DP2LINELIST;
439
439
typedef struct _D3DHAL_DP2INDEXEDLINELIST {
442
} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
442
} D3DHAL_DP2INDEXEDLINELIST, *LPD3DHAL_DP2INDEXEDLINELIST;
444
444
typedef struct _D3DHAL_DP2LINESTRIP {
446
} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
446
} D3DHAL_DP2LINESTRIP, *LPD3DHAL_DP2LINESTRIP;
448
448
typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
450
} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
450
} D3DHAL_DP2INDEXEDLINESTRIP, *LPD3DHAL_DP2INDEXEDLINESTRIP;
452
452
/* triangle primitives */
454
454
typedef struct _D3DHAL_DP2TRIANGLELIST {
456
} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
456
} D3DHAL_DP2TRIANGLELIST, *LPD3DHAL_DP2TRIANGLELIST;
458
458
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
463
} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
463
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;
465
465
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
469
} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
469
} D3DHAL_DP2INDEXEDTRIANGLELIST2, *LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
471
471
typedef struct _D3DHAL_DP2TRIANGLESTRIP {
473
} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
473
} D3DHAL_DP2TRIANGLESTRIP, *LPD3DHAL_DP2TRIANGLESTRIP;
475
475
typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
477
} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
477
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
479
479
typedef struct _D3DHAL_DP2TRIANGLEFAN {
481
} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
481
} D3DHAL_DP2TRIANGLEFAN, *LPD3DHAL_DP2TRIANGLEFAN;
483
483
typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
485
} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
485
} D3DHAL_DP2INDEXEDTRIANGLEFAN, *LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
487
487
typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
488
488
DWORD dwEdgeFlags;
489
} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
489
} D3DHAL_DP2TRIANGLEFAN_IMM, *LPD3DHAL_DP2TRIANGLEFAN_IMM;
491
491
/* render states */
492
492
typedef struct _D3DHAL_DP2RENDERSTATE {
493
D3DRENDERSTATETYPE RenderState;
493
D3DRENDERSTATETYPE RenderState;
494
_ANONYMOUS_UNION union {
495
495
D3DVALUE dvState;
497
497
} DUMMYUNIONNAME;
498
} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
498
} D3DHAL_DP2RENDERSTATE, *LPD3DHAL_DP2RENDERSTATE;
500
500
typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
504
} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
504
} D3DHAL_DP2TEXTURESTAGESTATE, *LPD3DHAL_DP2TEXTURESTAGESTATE;
506
506
#define D3DTSS_TEXTUREMAP 0
513
} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
513
} D3DHAL_DP2VIEWPORTINFO, *LPD3DHAL_DP2VIEWPORTINFO;
515
515
typedef struct _D3DHAL_DP2WINFO {
516
516
D3DVALUE dwWNear;
518
} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
518
} D3DHAL_DP2WINFO, *LPD3DHAL_DP2WINFO;
520
520
typedef struct _D3DHAL_DP2SETPALETTE {
521
521
DWORD dwPaletteHandle;
522
522
DWORD dwPaletteFlags;
523
523
DWORD dwSurfaceHandle;
524
} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
524
} D3DHAL_DP2SETPALETTE, *LPD3DHAL_DP2SETPALETTE;
526
526
typedef struct _D3DHAL_DP2UPDATEPALETTE {
527
527
DWORD dwPaletteHandle;
530
} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
530
} D3DHAL_DP2UPDATEPALETTE, *LPD3DHAL_DP2UPDATEPALETTE;
532
532
typedef struct _D3DHAL_DP2ZRANGE {
535
} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
535
} D3DHAL_DP2ZRANGE, *LPD3DHAL_DP2ZRANGE;
537
537
typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
539
539
typedef struct _D3DHAL_DP2SETLIGHT {
541
541
DWORD dwDataType;
542
} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
542
} D3DHAL_DP2SETLIGHT, *LPD3DHAL_DP2SETLIGHT;
544
#define D3DHAL_SETLIGHT_ENABLE 0
545
#define D3DHAL_SETLIGHT_DISABLE 1
546
#define D3DHAL_SETLIGHT_DATA 2
544
#define D3DHAL_SETLIGHT_ENABLE 0
545
#define D3DHAL_SETLIGHT_DISABLE 1
546
#define D3DHAL_SETLIGHT_DATA 2
548
548
typedef struct _D3DHAL_DP2CREATELIGHT {
550
} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
550
} D3DHAL_DP2CREATELIGHT, *LPD3DHAL_DP2CREATELIGHT;
552
552
typedef struct _D3DHAL_DP2SETTRANSFORM {
553
D3DTRANSFORMSTATETYPE xfrmType;
555
} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
553
D3DTRANSFORMSTATETYPE xfrmType;
555
} D3DHAL_DP2SETTRANSFORM, *LPD3DHAL_DP2SETTRANSFORM;
557
557
typedef struct _D3DHAL_DP2TEXBLT {
558
558
DWORD dwDDDestSurface;
563
} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
563
} D3DHAL_DP2TEXBLT, *LPD3DHAL_DP2TEXBLT;
565
565
typedef struct _D3DHAL_DP2STATESET {
568
D3DSTATEBLOCKTYPE sbType;
569
} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
568
D3DSTATEBLOCKTYPE sbType;
569
} D3DHAL_DP2STATESET, *LPD3DHAL_DP2STATESET;
571
#define D3DHAL_STATESETBEGIN 0
572
#define D3DHAL_STATESETEND 1
573
#define D3DHAL_STATESETDELETE 2
574
#define D3DHAL_STATESETEXECUTE 3
575
#define D3DHAL_STATESETCAPTURE 4
571
#define D3DHAL_STATESETBEGIN 0
572
#define D3DHAL_STATESETEND 1
573
#define D3DHAL_STATESETDELETE 2
574
#define D3DHAL_STATESETEXECUTE 3
575
#define D3DHAL_STATESETCAPTURE 4
577
577
typedef struct _D3DHAL_DP2SETPRIORITY {
578
578
DWORD dwDDSurface;
579
579
DWORD dwPriority;
580
} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
580
} D3DHAL_DP2SETPRIORITY, *LPD3DHAL_DP2SETPRIORITY;
582
582
typedef struct _D3DHAL_DP2SETRENDERTARGET {
583
583
DWORD hRenderTarget;
585
} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
585
} D3DHAL_DP2SETRENDERTARGET, *LPD3DHAL_DP2SETRENDERTARGET;
587
587
typedef struct _D3DHAL_DP2CLEAR {
590
D3DVALUE dvFillDepth;
593
} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
590
D3DVALUE dvFillDepth;
593
} D3DHAL_DP2CLEAR, *LPD3DHAL_DP2CLEAR;
595
595
typedef struct _D3DHAL_DP2SETTEXLOD {
596
596
DWORD dwDDSurface;
598
} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
598
} D3DHAL_DP2SETTEXLOD, *LPD3DHAL_DP2SETTEXLOD;
601
600
#if (DIRECT3D_VERSION >= 0x0900)
603
#define DX9_DDI_VERSION 4
602
#define DX9_DDI_VERSION 4
605
604
#ifndef D3DVTXPCAPS_NO_VSDT_UBYTE4
606
#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080
609
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
611
#define D3DDEVCAPS_HWVERTEXBUFFER 0x02000000
612
#define D3DDEVCAPS_HWINDEXBUFFER 0x04000000
613
#define D3DDEVCAPS_SUBVOLUMELOCK 0x08000000
605
#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080
608
#ifndef D3DPMISCCAPS_LINEPATTERNREP
609
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004
612
#define D3DDEVCAPS_HWVERTEXBUFFER 0x02000000
613
#define D3DDEVCAPS_HWINDEXBUFFER 0x04000000
614
#define D3DDEVCAPS_SUBVOLUMELOCK 0x08000000
615
616
#ifndef D3DPMISCCAPS_FOGINFVF
616
#define D3DPMISCCAPS_FOGINFVF 0x00002000
617
#define D3DPMISCCAPS_FOGINFVF 0x00002000
619
620
#ifndef D3DFVF_FOG
620
#define D3DFVF_FOG 0x00002000
621
#define D3DFVF_FOG 0x00002000
623
typedef struct _DD_GETDRIVERINFO2DATA
628
DWORD dwExpectedSize;
624
typedef struct _DD_GETDRIVERINFO2DATA {
628
DWORD dwExpectedSize;
629
629
} DD_GETDRIVERINFO2DATA;
715
714
float MaxPixelShaderValue;
718
typedef struct _DD_GETFORMATCOUNTDATA
720
DD_GETDRIVERINFO2DATA gdi2;
717
typedef struct _DD_GETFORMATCOUNTDATA {
718
DD_GETDRIVERINFO2DATA gdi2;
723
721
} DD_GETFORMATCOUNTDATA;
725
typedef struct _DD_GETFORMATDATA
727
DD_GETDRIVERINFO2DATA gdi2;
729
DDPIXELFORMAT format;
723
typedef struct _DD_GETFORMATDATA {
724
DD_GETDRIVERINFO2DATA gdi2;
726
DDPIXELFORMAT format;
730
727
} DD_GETFORMATDATA;
732
typedef struct _DD_DXVERSION
734
DD_GETDRIVERINFO2DATA gdi2;
729
typedef struct _DD_DXVERSION {
730
DD_GETDRIVERINFO2DATA gdi2;
739
typedef struct _DD_DEFERRED_AGP_AWARE_DATA
741
DD_GETDRIVERINFO2DATA gdi2;
735
typedef struct _DD_DEFERRED_AGP_AWARE_DATA {
736
DD_GETDRIVERINFO2DATA gdi2;
742
737
} DD_DEFERRED_AGP_AWARE_DATA;
744
typedef struct _DD_FREE_DEFERRED_AGP_DATA
746
DD_GETDRIVERINFO2DATA gdi2;
739
typedef struct _DD_FREE_DEFERRED_AGP_DATA {
740
DD_GETDRIVERINFO2DATA gdi2;
748
742
} DD_FREE_DEFERRED_AGP_DATA;
750
typedef struct _DD_GETEXTENDEDMODECOUNTDATA
752
DD_GETDRIVERINFO2DATA gdi2;
744
typedef struct _DD_GETEXTENDEDMODECOUNTDATA {
745
DD_GETDRIVERINFO2DATA gdi2;
755
748
} DD_GETEXTENDEDMODECOUNTDATA;
757
typedef struct _DD_GETEXTENDEDMODEDATA
759
DD_GETDRIVERINFO2DATA gdi2;
750
typedef struct _DD_GETEXTENDEDMODEDATA {
751
DD_GETDRIVERINFO2DATA gdi2;
762
754
} DD_GETEXTENDEDMODEDATA;
764
typedef struct _DD_GETADAPTERGROUPDATA
766
DD_GETDRIVERINFO2DATA gdi2;
767
ULONG_PTR ulUniqueAdapterGroupId;
756
typedef struct _DD_GETADAPTERGROUPDATA {
757
DD_GETDRIVERINFO2DATA gdi2;
758
ULONG_PTR ulUniqueAdapterGroupId;
770
761
} DD_GETADAPTERGROUPDATA;
772
typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA
774
DD_GETDRIVERINFO2DATA gdi2;
777
D3DMULTISAMPLE_TYPE MSType : 31;
763
typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA {
764
DD_GETDRIVERINFO2DATA gdi2;
767
D3DMULTISAMPLE_TYPE MSType : 31;
779
769
} DD_MULTISAMPLEQUALITYLEVELSDATA;
781
typedef struct _DD_GETD3DQUERYCOUNTDATA
783
DD_GETDRIVERINFO2DATA gdi2;
771
typedef struct _DD_GETD3DQUERYCOUNTDATA {
772
DD_GETDRIVERINFO2DATA gdi2;
785
774
} DD_GETD3DQUERYCOUNTDATA;
787
typedef struct _DD_GETD3DQUERYDATA
789
DD_GETDRIVERINFO2DATA gdi2;
793
D3DQUERYTYPE QueryType;
776
typedef struct _DD_GETD3DQUERYDATA {
777
DD_GETDRIVERINFO2DATA gdi2;
778
__GNU_EXTENSION union {
780
D3DQUERYTYPE QueryType;
795
782
} DD_GETD3DQUERYDATA;
797
typedef struct _DD_GETDDIVERSIONDATA
799
DD_GETDRIVERINFO2DATA gdi2;
784
typedef struct _DD_GETDDIVERSIONDATA {
785
DD_GETDRIVERINFO2DATA gdi2;
802
788
} DD_GETDDIVERSIONDATA;
804
790
#endif /* (DIRECT3D_VERSION >= 0x0900) */