ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

d3dhal.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.