Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygend3dhal.h
Go to the documentation of this file.
00001 /* 00002 * Direct3D driver interface 00003 * (DirectX 7 version) 00004 * 00005 * Copyright (C) 2001 Ove Kaaven 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 */ 00021 00022 #ifndef _D3DHAL_H_ 00023 #define _D3DHAL_H_ 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 #include <ddraw.h> 00030 #include <d3dtypes.h> 00031 #include <d3dcaps.h> 00032 #include <d3d.h> 00033 00034 #if (DIRECT3D_VERSION >= 0x0900) 00035 #include <d3d9.h> 00036 #endif 00037 00038 #ifndef DDRAWI_DIRECTDRAW_DEFINED 00039 typedef struct _DDRAWI_DIRECTDRAW_GBL FAR *LPDDRAWI_DIRECTDRAW_GBL; 00040 typedef struct _DDRAWI_DIRECTDRAW_LCL FAR *LPDDRAWI_DIRECTDRAW_LCL; 00041 #define DDRAWI_DIRECTDRAW_DEFINED 00042 #endif 00043 00044 #ifndef DDRAWI_DDRAWSURFACE_DEFINED 00045 typedef struct _DDRAWI_DDRAWSURFACE_LCL FAR *LPDDRAWI_DDRAWSURFACE_LCL; 00046 #define DDRAWI_DDRAWSURFACE_DEFINED 00047 #endif 00048 00049 #define D3DERR_COMMAND_UNPARSED 0x88760BB8; 00050 00051 /***************************************************************************** 00052 * device info structures 00053 */ 00054 typedef struct _D3DDeviceDesc_V1 { 00055 DWORD dwSize; 00056 DWORD dwFlags; 00057 D3DCOLORMODEL dcmColorModel; 00058 DWORD dwDevCaps; 00059 D3DTRANSFORMCAPS dtcTransformCaps; 00060 BOOL bClipping; 00061 D3DLIGHTINGCAPS dlcLightingCaps; 00062 D3DPRIMCAPS dpcLineCaps; 00063 D3DPRIMCAPS dpcTriCaps; 00064 DWORD dwDeviceRenderBitDepth; 00065 DWORD dwDeviceZBufferBitDepth; 00066 DWORD dwMaxBufferSize; 00067 DWORD dwMaxVertexCount; 00068 } D3DDEVICEDESC_V1, *LPD3DDEVICEDESC_V1; 00069 00070 /* this is to allow keeping the bulk of our OpenGL code out of x11drv */ 00071 #define D3DDD_WINE_OPENGL_DEVICE 0x00008000 00072 00073 typedef struct _D3DHAL_GLOBALDRIVERDATA { 00074 DWORD dwSize; 00075 D3DDEVICEDESC_V1 hwCaps; 00076 DWORD dwNumVertices; 00077 DWORD dwNumClipVertices; 00078 DWORD dwNumTextureFormats; 00079 LPDDSURFACEDESC lpTextureFormats; 00080 } D3DHAL_GLOBALDRIVERDATA; 00081 00082 #ifndef D3DHAL_GLOBALDRIVERDATA_DEFINED 00083 typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA; 00084 #define D3DHAL_GLOBALDRIVERDATA_DEFINED 00085 #endif 00086 00087 typedef struct _D3DHAL_D3DEXTENDEDCAPS { 00088 DWORD dwSize; 00089 /* DirectX 5 */ 00090 DWORD dwMinTextureWidth, dwMaxTextureWidth; 00091 DWORD dwMinTextureHeight, dwMaxTextureHeight; 00092 DWORD dwMinStippleWidth, dwMaxStippleWidth; 00093 DWORD dwMinStippleHeight, dwMaxStippleHeight; 00094 /* DirectX 6 */ 00095 DWORD dwMaxTextureRepeat; 00096 DWORD dwMaxTextureAspectRatio; 00097 DWORD dwMaxAnisotropy; 00098 D3DVALUE dvGuardBandLeft; 00099 D3DVALUE dvGuardBandTop; 00100 D3DVALUE dvGuardBandRight; 00101 D3DVALUE dvGuardBandBottom; 00102 D3DVALUE dvExtentsAdjust; 00103 DWORD dwStencilCaps; 00104 DWORD dwFVFCaps; 00105 DWORD dwTextureOpCaps; 00106 WORD wMaxTextureBlendStages; 00107 WORD wMaxSimultaneousTextures; 00108 /* DirectX 7 */ 00109 DWORD dwMaxActiveLights; 00110 D3DVALUE dvMaxVertexW; 00111 WORD wMaxUserClipPlanes; 00112 WORD wMaxVertexBlendMatrices; 00113 DWORD dwVertexProcessingCaps; 00114 DWORD dwReserved1; 00115 DWORD dwReserved2; 00116 DWORD dwReserved3; 00117 DWORD dwReserved4; 00118 } D3DHAL_D3DEXTENDEDCAPS, *LPD3DHAL_D3DEXTENDEDCAPS; 00119 00120 /***************************************************************************** 00121 * d3d->driver callbacks 00122 */ 00123 typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA; 00124 typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA; 00125 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA; 00126 typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA; 00127 typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA; 00128 typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA; 00129 typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA; 00130 typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA; 00131 typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA; 00132 typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA; 00133 typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA; 00134 00135 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA); 00136 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA); 00137 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA); 00138 typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA); 00139 typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA); 00140 typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA); 00141 typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA); 00142 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA); 00143 typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA); 00144 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA); 00145 typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA); 00146 00147 typedef struct _D3DHAL_CALLBACKS { 00148 DWORD dwSize; 00149 LPD3DHAL_CONTEXTCREATECB ContextCreate; 00150 LPD3DHAL_CONTEXTDESTROYCB ContextDestroy; 00151 LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll; 00152 LPD3DHAL_SCENECAPTURECB SceneCapture; 00153 LPVOID lpReserved10; 00154 LPVOID lpReserved11; 00155 LPD3DHAL_RENDERSTATECB RenderState; 00156 LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive; 00157 DWORD dwReserved; 00158 LPD3DHAL_TEXTURECREATECB TextureCreate; 00159 LPD3DHAL_TEXTUREDESTROYCB TextureDestroy; 00160 LPD3DHAL_TEXTURESWAPCB TextureSwap; 00161 LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf; 00162 /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if 00163 * all these reserved fields were available? we may never know */ 00164 LPVOID lpReserved12; 00165 LPVOID lpReserved13; 00166 LPVOID lpReserved14; 00167 LPVOID lpReserved15; 00168 LPVOID lpReserved16; 00169 LPVOID lpReserved17; 00170 LPVOID lpReserved18; 00171 LPVOID lpReserved19; 00172 LPVOID lpReserved20; 00173 LPVOID lpReserved21; 00174 LPD3DHAL_GETSTATECB GetState; 00175 DWORD dwReserved0; 00176 DWORD dwReserved1; 00177 DWORD dwReserved2; 00178 DWORD dwReserved3; 00179 DWORD dwReserved4; 00180 DWORD dwReserved5; 00181 DWORD dwReserved6; 00182 DWORD dwReserved7; 00183 DWORD dwReserved8; 00184 DWORD dwReserved9; 00185 } D3DHAL_CALLBACKS; 00186 00187 #ifndef D3DHAL_CALLBACKS_DEFINED 00188 typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS; 00189 #define D3DHAL_CALLBACKS_DEFINED 00190 #endif 00191 00192 typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA; 00193 typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA; 00194 typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA; 00195 typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA; 00196 typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA; 00197 00198 typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA); 00199 typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA); 00200 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA); 00201 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA); 00202 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA); 00203 00204 typedef struct _D3DHAL_CALLBACKS2 { 00205 DWORD dwSize; 00206 DWORD dwFlags; 00207 LPD3DHAL_SETRENDERTARGETCB SetRenderTarget; 00208 LPD3DHAL_CLEARCB Clear; 00209 LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive; 00210 LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive; 00211 LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives; 00212 } D3DHAL_CALLBACKS2, *LPD3DHAL_CALLBACKS2; 00213 00214 typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA; 00215 typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA; 00216 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA; 00217 00218 typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA); 00219 typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB) (LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA); 00220 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA); 00221 00222 typedef struct _D3DHAL_CALLBACKS3 { 00223 DWORD dwSize; 00224 DWORD dwFlags; 00225 LPD3DHAL_CLEAR2CB Clear2; 00226 LPVOID lpvReserved; 00227 LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState; 00228 LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2; 00229 } D3DHAL_CALLBACKS3, *LPD3DHAL_CALLBACKS3; 00230 00231 /***************************************************************************** 00232 * parameter structures 00233 */ 00234 typedef struct _D3DHAL_CONTEXTCREATEDATA { 00235 _ANONYMOUS_UNION union { 00236 LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */ 00237 LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */ 00238 } DUMMYUNIONNAME1; 00239 _ANONYMOUS_UNION union { 00240 LPDIRECTDRAWSURFACE lpDDS; 00241 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */ 00242 } DUMMYUNIONNAME2; 00243 _ANONYMOUS_UNION union { 00244 LPDIRECTDRAWSURFACE lpDDSZ; 00245 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */ 00246 } DUMMYUNIONNAME3; 00247 _ANONYMOUS_UNION union { 00248 DWORD dwPID; 00249 ULONG_PTR dwrstates; 00250 } DUMMYUNIONNAME4; 00251 ULONG_PTR dwhContext; 00252 HRESULT ddrval; 00253 } D3DHAL_CONTEXTCREATEDATA; 00254 00255 typedef struct _D3DHAL_CONTEXTDESTROYDATA { 00256 ULONG_PTR dwhContext; 00257 HRESULT ddrval; 00258 } D3DHAL_CONTEXTDESTROYDATA; 00259 00260 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA { 00261 DWORD dwPID; 00262 HRESULT ddrval; 00263 } D3DHAL_CONTEXTDESTROYALLDATA; 00264 00265 typedef struct _D3DHAL_SCENECAPTUREDATA { 00266 ULONG_PTR dwhContext; 00267 DWORD dwFlag; 00268 HRESULT ddrval; 00269 } D3DHAL_SCENECAPTUREDATA; 00270 00271 #define D3DHAL_SCENE_CAPTURE_START 0x00000000 00272 #define D3DHAL_SCENE_CAPTURE_END 0x00000001 00273 00274 typedef struct _D3DHAL_SETRENDERTARGETDATA { 00275 ULONG_PTR dwhContext; 00276 _ANONYMOUS_UNION union { 00277 LPDIRECTDRAWSURFACE lpDDS; 00278 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; 00279 } DUMMYUNIONNAME1; 00280 _ANONYMOUS_UNION union { 00281 LPDIRECTDRAWSURFACE lpDDSZ; 00282 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; 00283 } DUMMYUNIONNAME2; 00284 HRESULT ddrval; 00285 } D3DHAL_SETRENDERTARGETDATA; 00286 00287 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA { 00288 ULONG_PTR dwhContext; 00289 DWORD dwFlags; 00290 DWORD dwVertexType; 00291 LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands; 00292 DWORD dwCommandOffset; 00293 DWORD dwCommandLength; 00294 _ANONYMOUS_UNION union { 00295 LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex; 00296 LPVOID lpVertices; 00297 } DUMMYUNIONNAME1; 00298 DWORD dwVertexOffset; 00299 DWORD dwVertexLength; 00300 DWORD dwReqVertexBufSize; 00301 DWORD dwReqCommandBufSize; 00302 LPDWORD lpdwRStates; 00303 _ANONYMOUS_UNION union { 00304 DWORD dwVertexSize; 00305 HRESULT ddrval; 00306 } DUMMYUNIONNAME2; 00307 DWORD dwErrorOffset; 00308 } D3DHAL_DRAWPRIMITIVES2DATA; 00309 00310 #define D3DHALDP2_USERMEMVERTICES 0x00000001 00311 #define D3DHALDP2_EXECUTEBUFFER 0x00000002 00312 #define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004 00313 #define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008 00314 #define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010 00315 #define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020 00316 #define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040 00317 #define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080 00318 00319 /***************************************************************************** 00320 * DrawPrimitives2 command structures 00321 */ 00322 typedef struct _D3DHAL_DP2COMMAND { 00323 BYTE bCommand; 00324 BYTE bReserved; 00325 _ANONYMOUS_UNION union { 00326 WORD wPrimitiveCount; 00327 WORD wStateCount; 00328 } DUMMYUNIONNAME; 00329 } D3DHAL_DP2COMMAND, *LPD3DHAL_DP2COMMAND; 00330 00331 typedef enum _D3DHAL_DP2OPERATION { 00332 D3DDP2OP_POINTS = 1, 00333 D3DDP2OP_INDEXEDLINELIST = 2, 00334 D3DDP2OP_INDEXEDTRIANGLELIST = 3, 00335 D3DDP2OP_RENDERSTATE = 8, 00336 D3DDP2OP_LINELIST = 15, 00337 D3DDP2OP_LINESTRIP = 16, 00338 D3DDP2OP_INDEXEDLINESTRIP = 17, 00339 D3DDP2OP_TRIANGLELIST = 18, 00340 D3DDP2OP_TRIANGLESTRIP = 19, 00341 D3DDP2OP_INDEXEDTRIANGLESTRIP = 20, 00342 D3DDP2OP_TRIANGLEFAN = 21, 00343 D3DDP2OP_INDEXEDTRIANGLEFAN = 22, 00344 D3DDP2OP_TRIANGLEFAN_IMM = 23, 00345 D3DDP2OP_LINELIST_IMM = 24, 00346 D3DDP2OP_TEXTURESTAGESTATE = 25, 00347 D3DDP2OP_INDEXEDTRIANGLELIST2 = 26, 00348 D3DDP2OP_INDEXEDLINELIST2 = 27, 00349 D3DDP2OP_VIEWPORTINFO = 28, 00350 D3DDP2OP_WINFO = 29, 00351 /* pre-DirectX 7 interfaces */ 00352 D3DDP2OP_SETPALETTE = 30, 00353 D3DDP2OP_UPDATEPALETTE = 31, 00354 /* DirectX 7 interfaces */ 00355 D3DDP2OP_ZRANGE = 32, 00356 D3DDP2OP_SETMATERIAL = 33, 00357 D3DDP2OP_SETLIGHT = 34, 00358 D3DDP2OP_CREATELIGHT = 35, 00359 D3DDP2OP_SETTRANSFORM = 36, 00360 D3DDP2OP_TEXBLT = 38, 00361 D3DDP2OP_STATESET = 39, 00362 D3DDP2OP_SETPRIORITY = 40, 00363 /* all interfaces */ 00364 D3DDP2OP_SETRENDERTARGET = 41, 00365 D3DDP2OP_CLEAR = 42, 00366 /* DirectX 7 interfaces */ 00367 D3DDP2OP_SETTEXLOD = 43, 00368 D3DPP2OP_SETCLIPPLANE = 44, 00369 #if(DIRECT3D_VERSION >= 0x0800) 00370 D3DDP2OP_CREATEVERTEXSHADER = 45, 00371 D3DDP2OP_DELETEVERTEXSHADER = 46, 00372 D3DDP2OP_SETVERTEXSHADER = 47, 00373 D3DDP2OP_SETVERTEXSHADERCONST = 48, 00374 D3DDP2OP_SETSTREAMSOURCE = 49, 00375 D3DDP2OP_SETSTREAMSOURCEUM = 50, 00376 D3DDP2OP_SETINDICES = 51, 00377 D3DDP2OP_DRAWPRIMITIVE = 52, 00378 D3DDP2OP_DRAWINDEXEDPRIMITIVE = 53, 00379 D3DDP2OP_CREATEPIXELSHADER = 54, 00380 D3DDP2OP_DELETEPIXELSHADER = 55, 00381 D3DDP2OP_SETPIXELSHADER = 56, 00382 D3DDP2OP_SETPIXELSHADERCONST = 57, 00383 D3DDP2OP_CLIPPEDTRIANGLEFAN = 58, 00384 D3DDP2OP_DRAWPRIMITIVE2 = 59, 00385 D3DDP2OP_DRAWINDEXEDPRIMITIVE2= 60, 00386 D3DDP2OP_DRAWRECTPATCH = 61, 00387 D3DDP2OP_DRAWTRIPATCH = 62, 00388 D3DDP2OP_VOLUMEBLT = 63, 00389 D3DDP2OP_BUFFERBLT = 64, 00390 D3DDP2OP_MULTIPLYTRANSFORM = 65, 00391 D3DDP2OP_ADDDIRTYRECT = 66, 00392 D3DDP2OP_ADDDIRTYBOX = 67, 00393 #endif 00394 #if(DIRECT3D_VERSION >= 0x0900) 00395 D3DDP2OP_CREATEVERTEXSHADERDECL = 71, 00396 D3DDP2OP_DELETEVERTEXSHADERDECL = 72, 00397 D3DDP2OP_SETVERTEXSHADERDECL = 73, 00398 D3DDP2OP_CREATEVERTEXSHADERFUNC = 74, 00399 D3DDP2OP_DELETEVERTEXSHADERFUNC = 75, 00400 D3DDP2OP_SETVERTEXSHADERFUNC = 76, 00401 D3DDP2OP_SETVERTEXSHADERCONSTI = 77, 00402 D3DDP2OP_SETSCISSORRECT = 79, 00403 D3DDP2OP_SETSTREAMSOURCE2 = 80, 00404 D3DDP2OP_BLT = 81, 00405 D3DDP2OP_COLORFILL = 82, 00406 D3DDP2OP_SETVERTEXSHADERCONSTB = 83, 00407 D3DDP2OP_CREATEQUERY = 84, 00408 D3DDP2OP_SETRENDERTARGET2 = 85, 00409 D3DDP2OP_SETDEPTHSTENCIL = 86, 00410 D3DDP2OP_RESPONSECONTINUE = 87, 00411 D3DDP2OP_RESPONSEQUERY = 88, 00412 D3DDP2OP_GENERATEMIPSUBLEVELS = 89, 00413 D3DDP2OP_DELETEQUERY = 90, 00414 D3DDP2OP_ISSUEQUERY = 91, 00415 D3DDP2OP_SETPIXELSHADERCONSTI = 93, 00416 D3DDP2OP_SETPIXELSHADERCONSTB = 94, 00417 D3DDP2OP_SETSTREAMSOURCEFREQ = 95, 00418 D3DDP2OP_SURFACEBLT = 96 00419 #endif 00420 } D3DHAL_DP2OPERATION; 00421 00422 /* point primitives */ 00423 00424 typedef struct _D3DHAL_POINTS { 00425 WORD wCount; 00426 WORD wVStart; 00427 } D3DHAL_DP2POINTS, *LPD3DHAL_DP2POINTS; 00428 00429 /* line primitives */ 00430 00431 typedef struct _D3DHAL_DP2STARTVERTEX { 00432 WORD wVStart; 00433 } D3DHAL_DP2STARTVERTEX, *LPD3DHAL_DP2STARTVERTEX; 00434 00435 typedef struct _D3DHAL_DP2LINELIST { 00436 WORD wVStart; 00437 } D3DHAL_DP2LINELIST, *LPD3DHAL_DP2LINELIST; 00438 00439 typedef struct _D3DHAL_DP2INDEXEDLINELIST { 00440 WORD wV1; 00441 WORD wV2; 00442 } D3DHAL_DP2INDEXEDLINELIST, *LPD3DHAL_DP2INDEXEDLINELIST; 00443 00444 typedef struct _D3DHAL_DP2LINESTRIP { 00445 WORD wVStart; 00446 } D3DHAL_DP2LINESTRIP, *LPD3DHAL_DP2LINESTRIP; 00447 00448 typedef struct _D3DHAL_DP2INDEXEDLINESTRIP { 00449 WORD wV[2]; 00450 } D3DHAL_DP2INDEXEDLINESTRIP, *LPD3DHAL_DP2INDEXEDLINESTRIP; 00451 00452 /* triangle primitives */ 00453 00454 typedef struct _D3DHAL_DP2TRIANGLELIST { 00455 WORD wVStart; 00456 } D3DHAL_DP2TRIANGLELIST, *LPD3DHAL_DP2TRIANGLELIST; 00457 00458 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST { 00459 WORD wV1; 00460 WORD wV2; 00461 WORD wV3; 00462 WORD wFlags; 00463 } D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST; 00464 00465 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 { 00466 WORD wV1; 00467 WORD wV2; 00468 WORD wV3; 00469 } D3DHAL_DP2INDEXEDTRIANGLELIST2, *LPD3DHAL_DP2INDEXEDTRIANGLELIST2; 00470 00471 typedef struct _D3DHAL_DP2TRIANGLESTRIP { 00472 WORD wVStart; 00473 } D3DHAL_DP2TRIANGLESTRIP, *LPD3DHAL_DP2TRIANGLESTRIP; 00474 00475 typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP { 00476 WORD wV[3]; 00477 } D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP; 00478 00479 typedef struct _D3DHAL_DP2TRIANGLEFAN { 00480 WORD wVStart; 00481 } D3DHAL_DP2TRIANGLEFAN, *LPD3DHAL_DP2TRIANGLEFAN; 00482 00483 typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN { 00484 WORD wV[3]; 00485 } D3DHAL_DP2INDEXEDTRIANGLEFAN, *LPD3DHAL_DP2INDEXEDTRIANGLEFAN; 00486 00487 typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM { 00488 DWORD dwEdgeFlags; 00489 } D3DHAL_DP2TRIANGLEFAN_IMM, *LPD3DHAL_DP2TRIANGLEFAN_IMM; 00490 00491 /* render states */ 00492 typedef struct _D3DHAL_DP2RENDERSTATE { 00493 D3DRENDERSTATETYPE RenderState; 00494 _ANONYMOUS_UNION union { 00495 D3DVALUE dvState; 00496 DWORD dwState; 00497 } DUMMYUNIONNAME; 00498 } D3DHAL_DP2RENDERSTATE, *LPD3DHAL_DP2RENDERSTATE; 00499 00500 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE { 00501 WORD wStage; 00502 WORD TSState; 00503 DWORD dwValue; 00504 } D3DHAL_DP2TEXTURESTAGESTATE, *LPD3DHAL_DP2TEXTURESTAGESTATE; 00505 00506 #define D3DTSS_TEXTUREMAP 0 00507 00508 typedef struct _D3DHAL_DP2VIEWPORTINFO { 00509 DWORD dwX; 00510 DWORD dwY; 00511 DWORD dwWidth; 00512 DWORD dwHeight; 00513 } D3DHAL_DP2VIEWPORTINFO, *LPD3DHAL_DP2VIEWPORTINFO; 00514 00515 typedef struct _D3DHAL_DP2WINFO { 00516 D3DVALUE dwWNear; 00517 D3DVALUE dwWFar; 00518 } D3DHAL_DP2WINFO, *LPD3DHAL_DP2WINFO; 00519 00520 typedef struct _D3DHAL_DP2SETPALETTE { 00521 DWORD dwPaletteHandle; 00522 DWORD dwPaletteFlags; 00523 DWORD dwSurfaceHandle; 00524 } D3DHAL_DP2SETPALETTE, *LPD3DHAL_DP2SETPALETTE; 00525 00526 typedef struct _D3DHAL_DP2UPDATEPALETTE { 00527 DWORD dwPaletteHandle; 00528 WORD wStartIndex; 00529 WORD wNumEntries; 00530 } D3DHAL_DP2UPDATEPALETTE, *LPD3DHAL_DP2UPDATEPALETTE; 00531 00532 typedef struct _D3DHAL_DP2ZRANGE { 00533 D3DVALUE dvMinZ; 00534 D3DVALUE dvMaxZ; 00535 } D3DHAL_DP2ZRANGE, *LPD3DHAL_DP2ZRANGE; 00536 00537 typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL; 00538 00539 typedef struct _D3DHAL_DP2SETLIGHT { 00540 DWORD dwIndex; 00541 DWORD dwDataType; 00542 } D3DHAL_DP2SETLIGHT, *LPD3DHAL_DP2SETLIGHT; 00543 00544 #define D3DHAL_SETLIGHT_ENABLE 0 00545 #define D3DHAL_SETLIGHT_DISABLE 1 00546 #define D3DHAL_SETLIGHT_DATA 2 00547 00548 typedef struct _D3DHAL_DP2CREATELIGHT { 00549 DWORD dwIndex; 00550 } D3DHAL_DP2CREATELIGHT, *LPD3DHAL_DP2CREATELIGHT; 00551 00552 typedef struct _D3DHAL_DP2SETTRANSFORM { 00553 D3DTRANSFORMSTATETYPE xfrmType; 00554 D3DMATRIX matrix; 00555 } D3DHAL_DP2SETTRANSFORM, *LPD3DHAL_DP2SETTRANSFORM; 00556 00557 typedef struct _D3DHAL_DP2TEXBLT { 00558 DWORD dwDDDestSurface; 00559 DWORD dwDDSrcSurface; 00560 POINT pDest; 00561 RECTL rSrc; 00562 DWORD dwFlags; 00563 } D3DHAL_DP2TEXBLT, *LPD3DHAL_DP2TEXBLT; 00564 00565 typedef struct _D3DHAL_DP2STATESET { 00566 DWORD dwOperation; 00567 DWORD dwParam; 00568 D3DSTATEBLOCKTYPE sbType; 00569 } D3DHAL_DP2STATESET, *LPD3DHAL_DP2STATESET; 00570 00571 #define D3DHAL_STATESETBEGIN 0 00572 #define D3DHAL_STATESETEND 1 00573 #define D3DHAL_STATESETDELETE 2 00574 #define D3DHAL_STATESETEXECUTE 3 00575 #define D3DHAL_STATESETCAPTURE 4 00576 00577 typedef struct _D3DHAL_DP2SETPRIORITY { 00578 DWORD dwDDSurface; 00579 DWORD dwPriority; 00580 } D3DHAL_DP2SETPRIORITY, *LPD3DHAL_DP2SETPRIORITY; 00581 00582 typedef struct _D3DHAL_DP2SETRENDERTARGET { 00583 DWORD hRenderTarget; 00584 DWORD hZBuffer; 00585 } D3DHAL_DP2SETRENDERTARGET, *LPD3DHAL_DP2SETRENDERTARGET; 00586 00587 typedef struct _D3DHAL_DP2CLEAR { 00588 DWORD dwFlags; 00589 DWORD dwFillColor; 00590 D3DVALUE dvFillDepth; 00591 DWORD dwFillStencil; 00592 RECT Rects[1]; 00593 } D3DHAL_DP2CLEAR, *LPD3DHAL_DP2CLEAR; 00594 00595 typedef struct _D3DHAL_DP2SETTEXLOD { 00596 DWORD dwDDSurface; 00597 DWORD dwLOD; 00598 } D3DHAL_DP2SETTEXLOD, *LPD3DHAL_DP2SETTEXLOD; 00599 00600 #if (DIRECT3D_VERSION >= 0x0900) 00601 00602 #define DX9_DDI_VERSION 4 00603 00604 #ifndef D3DVTXPCAPS_NO_VSDT_UBYTE4 00605 #define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080 00606 #endif 00607 00608 #ifndef D3DPMISCCAPS_LINEPATTERNREP 00609 #define D3DPMISCCAPS_LINEPATTERNREP 0x00000004 00610 #endif 00611 00612 #define D3DDEVCAPS_HWVERTEXBUFFER 0x02000000 00613 #define D3DDEVCAPS_HWINDEXBUFFER 0x04000000 00614 #define D3DDEVCAPS_SUBVOLUMELOCK 0x08000000 00615 00616 #ifndef D3DPMISCCAPS_FOGINFVF 00617 #define D3DPMISCCAPS_FOGINFVF 0x00002000 00618 #endif 00619 00620 #ifndef D3DFVF_FOG 00621 #define D3DFVF_FOG 0x00002000 00622 #endif 00623 00624 typedef struct _DD_GETDRIVERINFO2DATA { 00625 DWORD dwReserved; 00626 DWORD dwMagic; 00627 DWORD dwType; 00628 DWORD dwExpectedSize; 00629 } DD_GETDRIVERINFO2DATA; 00630 00636 #define GUID_GetDriverInfo2 GUID_DDStereoMode 00637 00643 #define D3DGDI2_MAGIC 0xFFFFFFFF 00644 00645 #define D3DGDI2_TYPE_GETD3DCAPS8 0x00000001 00646 #define D3DGDI2_TYPE_GETFORMATCOUNT 0x00000002 00647 #define D3DGDI2_TYPE_GETFORMAT 0x00000003 00648 #define D3DGDI2_TYPE_DXVERSION 0x00000004 /* Make driver aware of currently used DirectX version */ 00649 #define D3DGDI2_TYPE_GETD3DCAPS9 0x00000010 00650 #define D3DGDI2_TYPE_GETEXTENDEDMODECOUNT 0x00000011 00651 #define D3DGDI2_TYPE_GETEXTENDEDMODE 0x00000012 00652 #define D3DGDI2_TYPE_GETADAPTERGROUP 0x00000013 00653 #define D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS 0x00000016 00654 #define D3DGDI2_TYPE_DEFERRED_AGP_AWARE 0x00000018 00655 #define D3DGDI2_TYPE_FREE_DEFERRED_AGP 0x00000019 00656 #define D3DGDI2_TYPE_DEFER_AGP_FREES 0x00000020 00657 #define D3DGDI2_TYPE_GETD3DQUERYCOUNT 0x00000021 00658 #define D3DGDI2_TYPE_GETD3DQUERY 0x00000022 00659 #define D3DGDI2_TYPE_GETDDIVERSION 0x00000023 /* Returns DX9_DDI_VERSION, used to check which DDK version the driver is compiled against */ 00660 00661 typedef struct _D3DCAPS8 { 00662 D3DDEVTYPE DeviceType; 00663 UINT AdapterOrdinal; 00664 DWORD Caps; 00665 DWORD Caps2; 00666 DWORD Caps3; 00667 DWORD PresentationIntervals; 00668 DWORD CursorCaps; 00669 DWORD DevCaps; 00670 DWORD PrimitiveMiscCaps; 00671 DWORD RasterCaps; 00672 DWORD ZCmpCaps; 00673 DWORD SrcBlendCaps; 00674 DWORD DestBlendCaps; 00675 DWORD AlphaCmpCaps; 00676 DWORD ShadeCaps; 00677 DWORD TextureCaps; 00678 DWORD TextureFilterCaps; 00679 DWORD CubeTextureFilterCaps; 00680 DWORD VolumeTextureFilterCaps; 00681 DWORD TextureAddressCaps; 00682 DWORD VolumeTextureAddressCaps; 00683 DWORD LineCaps; 00684 DWORD MaxTextureWidth; 00685 DWORD MaxTextureHeight; 00686 DWORD MaxVolumeExtent; 00687 DWORD MaxTextureRepeat; 00688 DWORD MaxTextureAspectRatio; 00689 DWORD MaxAnisotropy; 00690 float MaxVertexW; 00691 float GuardBandLeft; 00692 float GuardBandTop; 00693 float GuardBandRight; 00694 float GuardBandBottom; 00695 float ExtentsAdjust; 00696 DWORD StencilCaps; 00697 DWORD FVFCaps; 00698 DWORD TextureOpCaps; 00699 DWORD MaxTextureBlendStages; 00700 DWORD MaxSimultaneousTextures; 00701 DWORD VertexProcessingCaps; 00702 DWORD MaxActiveLights; 00703 DWORD MaxUserClipPlanes; 00704 DWORD MaxVertexBlendMatrices; 00705 DWORD MaxVertexBlendMatrixIndex; 00706 float MaxPointSize; 00707 DWORD MaxPrimitiveCount; 00708 DWORD MaxVertexIndex; 00709 DWORD MaxStreams; 00710 DWORD MaxStreamStride; 00711 DWORD VertexShaderVersion; 00712 DWORD MaxVertexShaderConst; 00713 DWORD PixelShaderVersion; 00714 float MaxPixelShaderValue; 00715 } D3DCAPS8; 00716 00717 typedef struct _DD_GETFORMATCOUNTDATA { 00718 DD_GETDRIVERINFO2DATA gdi2; 00719 DWORD dwFormatCount; 00720 DWORD dwReserved; 00721 } DD_GETFORMATCOUNTDATA; 00722 00723 typedef struct _DD_GETFORMATDATA { 00724 DD_GETDRIVERINFO2DATA gdi2; 00725 DWORD dwFormatIndex; 00726 DDPIXELFORMAT format; 00727 } DD_GETFORMATDATA; 00728 00729 typedef struct _DD_DXVERSION { 00730 DD_GETDRIVERINFO2DATA gdi2; 00731 DWORD dwDXVersion; 00732 DWORD dwReserved; 00733 } DD_DXVERSION; 00734 00735 typedef struct _DD_DEFERRED_AGP_AWARE_DATA { 00736 DD_GETDRIVERINFO2DATA gdi2; 00737 } DD_DEFERRED_AGP_AWARE_DATA; 00738 00739 typedef struct _DD_FREE_DEFERRED_AGP_DATA { 00740 DD_GETDRIVERINFO2DATA gdi2; 00741 DWORD dwProcessId; 00742 } DD_FREE_DEFERRED_AGP_DATA; 00743 00744 typedef struct _DD_GETEXTENDEDMODECOUNTDATA { 00745 DD_GETDRIVERINFO2DATA gdi2; 00746 DWORD dwModeCount; 00747 DWORD dwReserved; 00748 } DD_GETEXTENDEDMODECOUNTDATA; 00749 00750 typedef struct _DD_GETEXTENDEDMODEDATA { 00751 DD_GETDRIVERINFO2DATA gdi2; 00752 DWORD dwModeIndex; 00753 D3DDISPLAYMODE mode; 00754 } DD_GETEXTENDEDMODEDATA; 00755 00756 typedef struct _DD_GETADAPTERGROUPDATA { 00757 DD_GETDRIVERINFO2DATA gdi2; 00758 ULONG_PTR ulUniqueAdapterGroupId; 00759 DWORD dwReserved1; 00760 DWORD dwReserved2; 00761 } DD_GETADAPTERGROUPDATA; 00762 00763 typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA { 00764 DD_GETDRIVERINFO2DATA gdi2; 00765 D3DFORMAT Format; 00766 WINBOOL bFlip : 1; 00767 D3DMULTISAMPLE_TYPE MSType : 31; 00768 DWORD QualityLevels; 00769 } DD_MULTISAMPLEQUALITYLEVELSDATA; 00770 00771 typedef struct _DD_GETD3DQUERYCOUNTDATA { 00772 DD_GETDRIVERINFO2DATA gdi2; 00773 DWORD dwNumQueries; 00774 } DD_GETD3DQUERYCOUNTDATA; 00775 00776 typedef struct _DD_GETD3DQUERYDATA { 00777 DD_GETDRIVERINFO2DATA gdi2; 00778 __GNU_EXTENSION union { 00779 DWORD dwQueryIndex; 00780 D3DQUERYTYPE QueryType; 00781 }; 00782 } DD_GETD3DQUERYDATA; 00783 00784 typedef struct _DD_GETDDIVERSIONDATA { 00785 DD_GETDRIVERINFO2DATA gdi2; 00786 DWORD dwDXVersion; 00787 DWORD dwDDIVersion; 00788 } DD_GETDDIVERSIONDATA; 00789 00790 #endif /* (DIRECT3D_VERSION >= 0x0900) */ 00791 00792 #ifdef __cplusplus 00793 } /* extern "C" */ 00794 #endif 00795 00796 #endif /* _D3DHAL_H_ */ Generated on Mon May 28 2012 04:29:47 for ReactOS by
1.7.6.1
|