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

d3d9types.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2002-2003 Jason Edmeades
00003  * Copyright (C) 2002-2003 Raphael Junqueira
00004  * Copyright (C) 2005 Oliver Stieber
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifndef __WINE_D3D9TYPES_H
00022 #define __WINE_D3D9TYPES_H
00023 
00024 #if(DIRECT3D_VERSION >= 0x0900)
00025 
00026 #pragma pack(push, 4)
00027 
00028 /*****************************************************************************
00029  * Direct 3D v9 #defines
00030  */
00031 #define D3DCLEAR_TARGET   0x00000001L
00032 #define D3DCLEAR_ZBUFFER  0x00000002L
00033 #define D3DCLEAR_STENCIL  0x00000004L
00034 
00035 #define D3DCLIPPLANE0 (1 << 0)
00036 #define D3DCLIPPLANE1 (1 << 1)
00037 #define D3DCLIPPLANE2 (1 << 2)
00038 #define D3DCLIPPLANE3 (1 << 3)
00039 #define D3DCLIPPLANE4 (1 << 4)
00040 #define D3DCLIPPLANE5 (1 << 5)
00041 
00042 #define D3DCOLOR_ARGB(a,r,g,b)       ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
00043 #define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
00044 #define D3DCOLOR_RGBA(r,g,b,a)       D3DCOLOR_ARGB(a,r,g,b)
00045 #define D3DCOLOR_XRGB(r,g,b)         D3DCOLOR_ARGB(0xff,r,g,b)
00046 #define D3DCOLOR_XYUV(y,u,v)         D3DCOLOR_ARGB(0xFF,y,u,v)
00047 #define D3DCOLOR_AYUV(a,y,u,v)       D3DCOLOR_ARGB(a,y,u,v)
00048 
00049 #define D3DCS_LEFT                   0x001L
00050 #define D3DCS_RIGHT                  0x002L
00051 #define D3DCS_TOP                    0x004L
00052 #define D3DCS_BOTTOM                 0x008L
00053 #define D3DCS_FRONT                  0x010L
00054 #define D3DCS_BACK                   0x020L
00055 #define D3DCS_PLANE0                 0x040L
00056 #define D3DCS_PLANE1                 0x080L
00057 #define D3DCS_PLANE2                 0x100L
00058 #define D3DCS_PLANE3                 0x200L
00059 #define D3DCS_PLANE4                 0x400L
00060 #define D3DCS_PLANE5                 0x800L
00061 #define D3DCS_ALL                    0xFFFL
00062 
00063 #define D3DFVF_TEXTUREFORMAT1 3
00064 #define D3DFVF_TEXTUREFORMAT2 0
00065 #define D3DFVF_TEXTUREFORMAT3 1
00066 #define D3DFVF_TEXTUREFORMAT4 2
00067 #define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
00068 #define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
00069 #define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
00070 #define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
00071 
00072 #define D3DLOCK_READONLY           0x0010
00073 #define D3DLOCK_NOSYSLOCK          0x0800
00074 #define D3DLOCK_NOOVERWRITE        0x1000
00075 #define D3DLOCK_DISCARD            0x2000
00076 #define D3DLOCK_DONOTWAIT          0x4000
00077 #define D3DLOCK_NO_DIRTY_UPDATE    0x8000
00078 
00079 #define D3DMAXUSERCLIPPLANES       32
00080 #define D3DCLIPPLANE0              (1 << 0)
00081 #define D3DCLIPPLANE1              (1 << 1)
00082 #define D3DCLIPPLANE2              (1 << 2)
00083 #define D3DCLIPPLANE3              (1 << 3)
00084 #define D3DCLIPPLANE4              (1 << 4)
00085 #define D3DCLIPPLANE5              (1 << 5)
00086 
00087 
00088 #define D3DRENDERSTATE_WRAPBIAS    128UL
00089 
00090 /* MSDN has this in d3d9caps.h, but it should be here */
00091 #define D3DTSS_TCI_PASSTHRU                       0x00000
00092 #define D3DTSS_TCI_CAMERASPACENORMAL              0x10000
00093 #define D3DTSS_TCI_CAMERASPACEPOSITION            0x20000
00094 #define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
00095 #define D3DTSS_TCI_SPHEREMAP                      0x40000
00096 
00097 
00098 #define D3DTS_WORLD  D3DTS_WORLDMATRIX(0)
00099 #define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
00100 #define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
00101 #define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
00102 #define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
00103 
00104 #define D3DUSAGE_RENDERTARGET       0x00000001L
00105 #define D3DUSAGE_DEPTHSTENCIL       0x00000002L
00106 #define D3DUSAGE_WRITEONLY          0x00000008L
00107 #define D3DUSAGE_SOFTWAREPROCESSING 0x00000010L
00108 #define D3DUSAGE_DONOTCLIP          0x00000020L
00109 #define D3DUSAGE_POINTS             0x00000040L
00110 #define D3DUSAGE_RTPATCHES          0x00000080L
00111 #define D3DUSAGE_NPATCHES           0x00000100L
00112 #define D3DUSAGE_DYNAMIC            0x00000200L
00113 #define D3DUSAGE_AUTOGENMIPMAP      0x00000400L
00114 #define D3DUSAGE_DMAP               0x00004000L
00115 #ifndef D3D_DISABLE_9EX
00116 #define D3DUSAGE_TEXTAPI            0x10000000L
00117 #endif
00118 
00119 #define D3DUSAGE_QUERY_FILTER                   0x00020000L
00120 #define D3DUSAGE_QUERY_LEGACYBUMPMAP            0x00008000L
00121 #define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000L
00122 #define D3DUSAGE_QUERY_SRGBREAD                 0x00010000L
00123 #define D3DUSAGE_QUERY_SRGBWRITE                0x00040000L
00124 #define D3DUSAGE_QUERY_VERTEXTEXTURE            0x00100000L
00125 #define D3DUSAGE_QUERY_WRAPANDMIP               0x00200000L
00126 
00127 #define D3DWRAP_U        1
00128 #define D3DWRAP_V        2
00129 #define D3DWRAP_W        4
00130 #define D3DWRAPCOORD_0   1
00131 #define D3DWRAPCOORD_1   2
00132 #define D3DWRAPCOORD_2   4
00133 #define D3DWRAPCOORD_3   8
00134 
00135 #define MAX_DEVICE_IDENTIFIER_STRING        512
00136 
00137 #define D3DFVF_RESERVED0           0x0001
00138 #define D3DFVF_POSITION_MASK       0x000E
00139 #define D3DFVF_XYZ                 0x0002
00140 #define D3DFVF_XYZRHW              0x0004
00141 #define D3DFVF_XYZB1               0x0006
00142 #define D3DFVF_XYZB2               0x0008
00143 #define D3DFVF_XYZB3               0x000a
00144 #define D3DFVF_XYZB4               0x000c
00145 #define D3DFVF_XYZB5               0x000e
00146 #define D3DFVF_XYZW                0x4002
00147 #define D3DFVF_NORMAL              0x0010
00148 #define D3DFVF_PSIZE               0x0020
00149 #define D3DFVF_DIFFUSE             0x0040
00150 #define D3DFVF_SPECULAR            0x0080
00151 #define D3DFVF_TEXCOUNT_MASK       0x0f00
00152 #define D3DFVF_TEXCOUNT_SHIFT           8
00153 #define D3DFVF_TEX0                0x0000
00154 #define D3DFVF_TEX1                0x0100
00155 #define D3DFVF_TEX2                0x0200
00156 #define D3DFVF_TEX3                0x0300
00157 #define D3DFVF_TEX4                0x0400
00158 #define D3DFVF_TEX5                0x0500
00159 #define D3DFVF_TEX6                0x0600
00160 #define D3DFVF_TEX7                0x0700
00161 #define D3DFVF_TEX8                0x0800
00162 #define D3DFVF_LASTBETA_UBYTE4     0x1000
00163 #define D3DFVF_LASTBETA_D3DCOLOR   0x8000
00164 #define D3DFVF_RESERVED2           0x6000
00165 
00166 #define D3DTA_SELECTMASK        0x0000000f
00167 #define D3DTA_DIFFUSE           0x00000000
00168 #define D3DTA_CURRENT           0x00000001
00169 #define D3DTA_TEXTURE           0x00000002
00170 #define D3DTA_TFACTOR           0x00000003
00171 #define D3DTA_SPECULAR          0x00000004
00172 #define D3DTA_TEMP              0x00000005
00173 #define D3DTA_CONSTANT          0x00000006
00174 #define D3DTA_COMPLEMENT        0x00000010
00175 #define D3DTA_ALPHAREPLICATE    0x00000020
00176 
00177 #define D3DCOLORWRITEENABLE_RED   (1L<<0)
00178 #define D3DCOLORWRITEENABLE_GREEN (1L<<1)
00179 #define D3DCOLORWRITEENABLE_BLUE  (1L<<2)
00180 #define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
00181 
00182 #define D3DPV_DONOTCOPYDATA         (1 << 0)
00183 
00184 #define D3DSTREAMSOURCE_INDEXEDDATA  (1 << 30)
00185 #define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
00186 
00187 #define D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
00188 
00189 #define MAXD3DDECLLENGTH         64 /* +end marker */
00190 #define MAXD3DDECLMETHOD         D3DDECLMETHOD_LOOKUPPRESAMPLED
00191 #define MAXD3DDECLTYPE           D3DDECLTYPE_UNUSED
00192 #define MAXD3DDECLUSAGE          D3DDECLUSAGE_SAMPLE
00193 #define MAXD3DDECLUSAGEINDEX     15
00194 
00195 #define D3DDMAPSAMPLER 256
00196 #define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
00197 #define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
00198 #define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
00199 #define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
00200 
00201 #ifndef MAKEFOURCC
00202 #define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
00203     ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
00204     ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
00205 #endif
00206 
00207 /* Constants used by D3DPRESENT_PARAMETERS. when creating a device or swapchain */
00208 
00209 #define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER  0x00000001 /* Create a lockable backbuffer */
00210 #define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 /* Discard Z buffer */
00211 #define D3DPRESENTFLAG_DEVICECLIP           0x00000004 /* Clip the window blited into the client area 2k + xp only */
00212 #define D3DPRESENTFLAG_VIDEO                0x00000010 /* backbuffer 'may' contain video data */
00213 
00214 #define D3DPRESENT_BACK_BUFFERS_MAX         3L
00215 #define D3DPRESENT_RATE_DEFAULT             0x00000000
00216 
00217 /****************************
00218  * Vertex Shaders Declaration
00219  */
00220 
00221 typedef enum _D3DDECLUSAGE {
00222   D3DDECLUSAGE_POSITION     = 0,
00223   D3DDECLUSAGE_BLENDWEIGHT  = 1,
00224   D3DDECLUSAGE_BLENDINDICES = 2,
00225   D3DDECLUSAGE_NORMAL       = 3,
00226   D3DDECLUSAGE_PSIZE        = 4,
00227   D3DDECLUSAGE_TEXCOORD     = 5,
00228   D3DDECLUSAGE_TANGENT      = 6,
00229   D3DDECLUSAGE_BINORMAL     = 7,
00230   D3DDECLUSAGE_TESSFACTOR   = 8,
00231   D3DDECLUSAGE_POSITIONT    = 9,
00232   D3DDECLUSAGE_COLOR        = 10,
00233   D3DDECLUSAGE_FOG          = 11,
00234   D3DDECLUSAGE_DEPTH        = 12,
00235   D3DDECLUSAGE_SAMPLE       = 13
00236 } D3DDECLUSAGE;
00237 
00238 /* MSDN is quite confussing at this point...
00239 http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/d3d/constants/OTHER_D3D.asp
00240 says D3DMAX, and D3DMAXDECLUSAGE = D3DDECLUSAGE_DEPTH
00241 http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/directx9_c_summer_03/directx/graphics/reference/d3d/constants/other_d3d.asp
00242 says MAXD3D, and D3DDECLUSAGE_SAMPLE
00243 
00244 So both are defined
00245 */
00246 
00247 #define D3DMAXDECLUSAGE         D3DDECLUSAGE_SAMPLE
00248 #define D3DMAXDECLUSAGEINDEX    15
00249 #define D3DMAXDECLLENGTH        18
00250 #define D3DMAXDECLUSAGE_DX8     D3DDECLUSAGE_TEXCOORD
00251 
00252 typedef enum _D3DDECLMETHOD {
00253   D3DDECLMETHOD_DEFAULT          = 0,
00254   D3DDECLMETHOD_PARTIALU         = 1,
00255   D3DDECLMETHOD_PARTIALV         = 2,
00256   D3DDECLMETHOD_CROSSUV          = 3,
00257   D3DDECLMETHOD_UV               = 4,
00258   D3DDECLMETHOD_LOOKUP           = 5,
00259   D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
00260 } D3DDECLMETHOD;
00261 
00262 
00263 #define D3DMAXDECLMETHOD        D3DDECLMETHOD_LOOKUPPRESAMPLED
00264 
00265 typedef enum _D3DDECLTYPE {
00266   D3DDECLTYPE_FLOAT1    =  0,
00267   D3DDECLTYPE_FLOAT2    =  1,
00268   D3DDECLTYPE_FLOAT3    =  2,
00269   D3DDECLTYPE_FLOAT4    =  3,
00270   D3DDECLTYPE_D3DCOLOR  =  4,
00271   D3DDECLTYPE_UBYTE4    =  5,
00272   D3DDECLTYPE_SHORT2    =  6,
00273   D3DDECLTYPE_SHORT4    =  7,
00274   /* VS 2.0 */
00275   D3DDECLTYPE_UBYTE4N   =  8,
00276   D3DDECLTYPE_SHORT2N   =  9,
00277   D3DDECLTYPE_SHORT4N   = 10,
00278   D3DDECLTYPE_USHORT2N  = 11,
00279   D3DDECLTYPE_USHORT4N  = 12,
00280   D3DDECLTYPE_UDEC3     = 13,
00281   D3DDECLTYPE_DEC3N     = 14,
00282   D3DDECLTYPE_FLOAT16_2 = 15,
00283   D3DDECLTYPE_FLOAT16_4 = 16,
00284   D3DDECLTYPE_UNUSED    = 17,
00285 } D3DDECLTYPE;
00286 
00287 #define D3DMAXDECLTYPE          D3DDECLTYPE_UNUSED
00288 
00289 typedef struct _D3DVERTEXELEMENT9 {
00290   WORD    Stream;
00291   WORD    Offset;
00292   BYTE    Type;
00293   BYTE    Method;
00294   BYTE    Usage;
00295   BYTE    UsageIndex;
00296 } D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
00297 
00298 
00299 typedef enum _D3DQUERYTYPE {
00300     D3DQUERYTYPE_VCACHE = 4,
00301     D3DQUERYTYPE_RESOURCEMANAGER = 5,
00302     D3DQUERYTYPE_VERTEXSTATS = 6,
00303     D3DQUERYTYPE_EVENT = 8,
00304     D3DQUERYTYPE_OCCLUSION = 9,
00305     D3DQUERYTYPE_TIMESTAMP = 10,
00306     D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
00307     D3DQUERYTYPE_TIMESTAMPFREQ = 12,
00308     D3DQUERYTYPE_PIPELINETIMINGS = 13,
00309     D3DQUERYTYPE_INTERFACETIMINGS = 14,
00310     D3DQUERYTYPE_VERTEXTIMINGS = 15,
00311     D3DQUERYTYPE_PIXELTIMINGS = 16,
00312     D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
00313     D3DQUERYTYPE_CACHEUTILIZATION = 18
00314 } D3DQUERYTYPE;
00315 
00316 #define D3DISSUE_BEGIN   (1 << 1)
00317 #define D3DISSUE_END     (1 << 0)
00318 #define D3DGETDATA_FLUSH (1 << 0)
00319 
00320 
00321 #define D3DDECL_END() {0xFF,0,D3DDECLTYPE_UNUSED,0,0,0}
00322 #define D3DDP_MAXTEXCOORD   8
00323 
00324 
00325 #define D3DVSD_MAKETOKENTYPE(TokenType) \
00326   ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
00327 
00328 #define D3DVSD_CONST(ConstantAddress, Count) \
00329   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
00330 
00331 #define D3DVSD_END() 0xFFFFFFFF
00332 
00333 #define D3DVSD_NOP() 0x00000000
00334 
00335 #define D3DVSD_REG(VertexRegister, Type) \
00336   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
00337 
00338 #define D3DVSD_SKIP(Count) \
00339   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
00340 
00341 #define D3DVSD_STREAM(StreamNumber) \
00342   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
00343 
00344 #define D3DVSD_STREAM_TESS() \
00345   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
00346 
00347 #define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
00348   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
00349 
00350 #define D3DVSD_TESSUV(Register) \
00351   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
00352 
00353 
00354 /********************************
00355  * Pixel/Vertex Shaders Functions
00356  */
00357 
00359 #define D3DDP_MAXTEXCOORD   8
00360 
00362 #define D3DSI_OPCODE_MASK       0x0000FFFF
00363 #define D3DSI_INSTLENGTH_MASK   0x0F000000
00364 #define D3DSI_INSTLENGTH_SHIFT  24
00365 
00367 typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
00368   D3DSIO_NOP          =  0,
00369   D3DSIO_MOV          =  1,
00370   D3DSIO_ADD          =  2,
00371   D3DSIO_SUB          =  3,
00372   D3DSIO_MAD          =  4,
00373   D3DSIO_MUL          =  5,
00374   D3DSIO_RCP          =  6,
00375   D3DSIO_RSQ          =  7,
00376   D3DSIO_DP3          =  8,
00377   D3DSIO_DP4          =  9,
00378   D3DSIO_MIN          = 10,
00379   D3DSIO_MAX          = 11,
00380   D3DSIO_SLT          = 12,
00381   D3DSIO_SGE          = 13,
00382   D3DSIO_EXP          = 14,
00383   D3DSIO_LOG          = 15,
00384   D3DSIO_LIT          = 16,
00385   D3DSIO_DST          = 17,
00386   D3DSIO_LRP          = 18,
00387   D3DSIO_FRC          = 19,
00388   D3DSIO_M4x4         = 20,
00389   D3DSIO_M4x3         = 21,
00390   D3DSIO_M3x4         = 22,
00391   D3DSIO_M3x3         = 23,
00392   D3DSIO_M3x2         = 24,
00393   D3DSIO_CALL         = 25,
00394   D3DSIO_CALLNZ       = 26,
00395   D3DSIO_LOOP         = 27,
00396   D3DSIO_RET          = 28,
00397   D3DSIO_ENDLOOP      = 29,
00398   D3DSIO_LABEL        = 30,
00399   D3DSIO_DCL          = 31,
00400   D3DSIO_POW          = 32,
00401   D3DSIO_CRS          = 33,
00402   D3DSIO_SGN          = 34,
00403   D3DSIO_ABS          = 35,
00404   D3DSIO_NRM          = 36,
00405   D3DSIO_SINCOS       = 37,
00406   D3DSIO_REP          = 38,
00407   D3DSIO_ENDREP       = 39,
00408   D3DSIO_IF           = 40,
00409   D3DSIO_IFC          = 41,
00410   D3DSIO_ELSE         = 42,
00411   D3DSIO_ENDIF        = 43,
00412   D3DSIO_BREAK        = 44,
00413   D3DSIO_BREAKC       = 45,
00414   D3DSIO_MOVA         = 46,
00415   D3DSIO_DEFB         = 47,
00416   D3DSIO_DEFI         = 48,
00417 
00418   D3DSIO_TEXCOORD     = 64,
00419   D3DSIO_TEXKILL      = 65,
00420   D3DSIO_TEX          = 66,
00421   D3DSIO_TEXBEM       = 67,
00422   D3DSIO_TEXBEML      = 68,
00423   D3DSIO_TEXREG2AR    = 69,
00424   D3DSIO_TEXREG2GB    = 70,
00425   D3DSIO_TEXM3x2PAD   = 71,
00426   D3DSIO_TEXM3x2TEX   = 72,
00427   D3DSIO_TEXM3x3PAD   = 73,
00428   D3DSIO_TEXM3x3TEX   = 74,
00429   D3DSIO_TEXM3x3DIFF  = 75,
00430   D3DSIO_TEXM3x3SPEC  = 76,
00431   D3DSIO_TEXM3x3VSPEC = 77,
00432   D3DSIO_EXPP         = 78,
00433   D3DSIO_LOGP         = 79,
00434   D3DSIO_CND          = 80,
00435   D3DSIO_DEF          = 81,
00436   D3DSIO_TEXREG2RGB   = 82,
00437   D3DSIO_TEXDP3TEX    = 83,
00438   D3DSIO_TEXM3x2DEPTH = 84,
00439   D3DSIO_TEXDP3       = 85,
00440   D3DSIO_TEXM3x3      = 86,
00441   D3DSIO_TEXDEPTH     = 87,
00442   D3DSIO_CMP          = 88,
00443   D3DSIO_BEM          = 89,
00444   D3DSIO_DP2ADD       = 90,
00445   D3DSIO_DSX          = 91,
00446   D3DSIO_DSY          = 92,
00447   D3DSIO_TEXLDD       = 93,
00448   D3DSIO_SETP         = 94,
00449   D3DSIO_TEXLDL       = 95,
00450   D3DSIO_BREAKP       = 96,
00451 
00452   D3DSIO_PHASE        = 0xFFFD,
00453   D3DSIO_COMMENT      = 0xFFFE,
00454   D3DSIO_END          = 0XFFFF,
00455 
00456   D3DSIO_FORCE_DWORD  = 0X7FFFFFFF 
00457 } D3DSHADER_INSTRUCTION_OPCODE_TYPE;
00458 
00459 #define D3DSINCOSCONST1   -1.5500992e-006f, -2.1701389e-005f,  0.0026041667f, 0.00026041668f
00460 #define D3DSINCOSCONST2   -0.020833334f,    -0.12500000f,      1.0f,          0.50000000f
00461 
00462 #define D3DSHADER_INSTRUCTION_PREDICATED    (1 << 28)
00463 
00465 #define D3DSI_COISSUE 0x40000000
00466 
00467 #define D3DSP_DCL_USAGE_SHIFT 0
00468 #define D3DSP_DCL_USAGE_MASK  0x0000000f
00469 
00470 #define D3DSP_DCL_USAGEINDEX_SHIFT 16
00471 #define D3DSP_DCL_USAGEINDEX_MASK  0x000f0000
00472 
00473 #define D3DSP_TEXTURETYPE_SHIFT 27
00474 #define D3DSP_TEXTURETYPE_MASK  0x78000000
00475 
00476 typedef enum _D3DSAMPLER_TEXTURE_TYPE {
00477   D3DSTT_UNKNOWN      = 0 << D3DSP_TEXTURETYPE_SHIFT,
00478   D3DSTT_1D           = 1 << D3DSP_TEXTURETYPE_SHIFT,
00479   D3DSTT_2D           = 2 << D3DSP_TEXTURETYPE_SHIFT,
00480   D3DSTT_CUBE         = 3 << D3DSP_TEXTURETYPE_SHIFT,
00481   D3DSTT_VOLUME       = 4 << D3DSP_TEXTURETYPE_SHIFT,
00482 
00483   D3DSTT_FORCE_DWORD  = 0x7FFFFFFF
00484 } D3DSAMPLER_TEXTURE_TYPE;
00485 
00486 #define D3DSP_REGNUM_MASK       0x000007FF
00487 
00489 #define D3DSP_WRITEMASK_0       0x00010000 /* .x r */
00490 #define D3DSP_WRITEMASK_1       0x00020000 /* .y g */
00491 #define D3DSP_WRITEMASK_2       0x00040000 /* .z b */
00492 #define D3DSP_WRITEMASK_3       0x00080000 /* .w a */
00493 #define D3DSP_WRITEMASK_ALL     0x000F0000 /* all */
00494 
00495 #define D3DSP_DSTMOD_SHIFT      20
00496 #define D3DSP_DSTMOD_MASK       (0xF << D3DSP_DSTMOD_SHIFT)
00497 
00498 typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
00499   D3DSPDM_NONE             = 0 << D3DSP_DSTMOD_SHIFT,
00500   D3DSPDM_SATURATE         = 1 << D3DSP_DSTMOD_SHIFT,
00501   D3DSPDM_PARTIALPRECISION = 2 << D3DSP_DSTMOD_SHIFT,
00502   D3DSPDM_MSAMPCENTROID    = 4 << D3DSP_DSTMOD_SHIFT,
00503 
00504   D3DSPDM_FORCE_DWORD  = 0x7FFFFFFF
00505 } D3DSHADER_PARAM_DSTMOD_TYPE;
00506 
00508 #define D3DSP_DSTSHIFT_SHIFT     24
00509 #define D3DSP_DSTSHIFT_MASK      (0xF << D3DSP_DSTSHIFT_SHIFT)
00510 
00512 #define D3DSP_REGTYPE_SHIFT      28
00513 #define D3DSP_REGTYPE_SHIFT2     8
00514 #define D3DSP_REGTYPE_MASK       (0x7 << D3DSP_REGTYPE_SHIFT)
00515 #define D3DSP_REGTYPE_MASK2      0x00001800
00516 
00517 typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
00518   D3DSPR_TEMP         =  0,
00519   D3DSPR_INPUT        =  1,
00520   D3DSPR_CONST        =  2,
00521   D3DSPR_ADDR         =  3,
00522   D3DSPR_TEXTURE      =  3,
00523   D3DSPR_RASTOUT      =  4,
00524   D3DSPR_ATTROUT      =  5,
00525   D3DSPR_TEXCRDOUT    =  6,
00526   D3DSPR_OUTPUT       =  6,
00527   D3DSPR_CONSTINT     =  7,
00528   D3DSPR_COLOROUT     =  8,
00529   D3DSPR_DEPTHOUT     =  9,
00530   D3DSPR_SAMPLER      = 10,
00531   D3DSPR_CONST2       = 11,
00532   D3DSPR_CONST3       = 12,
00533   D3DSPR_CONST4       = 13,
00534   D3DSPR_CONSTBOOL    = 14,
00535   D3DSPR_LOOP         = 15,
00536   D3DSPR_TEMPFLOAT16  = 16,
00537   D3DSPR_MISCTYPE     = 17,
00538   D3DSPR_LABEL        = 18,
00539   D3DSPR_PREDICATE    = 19,
00540 
00541   D3DSPR_FORCE_DWORD  = 0x7FFFFFFF
00542 } D3DSHADER_PARAM_REGISTER_TYPE;
00543 
00544 typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
00545     D3DSMO_POSITION  = 0,
00546     D3DSMO_FACE      = 1
00547 } D3DSHADER_MISCTYPE_OFFSETS;
00548 
00549 typedef enum _D3DVS_RASTOUT_OFFSETS {
00550   D3DSRO_POSITION     = 0,
00551   D3DSRO_FOG          = 1,
00552   D3DSRO_POINT_SIZE   = 2,
00553 
00554   D3DSRO_FORCE_DWORD  = 0x7FFFFFFF
00555 } D3DVS_RASTOUT_OFFSETS;
00556 
00557 #define D3DVS_ADDRESSMODE_SHIFT  13
00558 #define D3DVS_ADDRESSMODE_MASK   (0x1 << D3DVS_ADDRESSMODE_SHIFT)
00559 
00560 typedef enum _D3DVS_ADDRESSMODE_TYPE {
00561   D3DVS_ADDRMODE_ABSOLUTE     = 0 << D3DVS_ADDRESSMODE_SHIFT,
00562   D3DVS_ADDRMODE_RELATIVE     = 1 << D3DVS_ADDRESSMODE_SHIFT,
00563 
00564   D3DVS_ADDRMODE_FORCE_DWORD  = 0x7FFFFFFF
00565 } D3DVS_ADDRESSMODE_TYPE;
00566 
00567 #define D3DSHADER_ADDRESSMODE_SHIFT 13
00568 #define D3DSHADER_ADDRESSMODE_MASK  (1 << D3DSHADER_ADDRESSMODE_SHIFT)
00569 
00570 typedef enum _D3DSHADER_ADDRESSMODE_TYPE {
00571   D3DSHADER_ADDRMODE_ABSOLUTE    = 0 << D3DSHADER_ADDRESSMODE_SHIFT,
00572   D3DSHADER_ADDRMODE_RELATIVE    = 1 << D3DSHADER_ADDRESSMODE_SHIFT,
00573 
00574   D3DSHADER_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF
00575 } D3DSHADER_ADDRESSMODE_TYPE;
00576 
00577 
00578 #define D3DVS_SWIZZLE_SHIFT      16
00579 #define D3DVS_SWIZZLE_MASK       (0xFF << D3DVS_SWIZZLE_SHIFT)
00580 
00581 #define D3DSP_SWIZZLE_SHIFT      16
00582 #define D3DSP_SWIZZLE_MASK       (0xFF << D3DSP_SWIZZLE_SHIFT)
00583 
00584 #define D3DVS_X_X       (0 << D3DVS_SWIZZLE_SHIFT)
00585 #define D3DVS_X_Y       (1 << D3DVS_SWIZZLE_SHIFT)
00586 #define D3DVS_X_Z       (2 << D3DVS_SWIZZLE_SHIFT)
00587 #define D3DVS_X_W       (3 << D3DVS_SWIZZLE_SHIFT)
00588 
00589 #define D3DVS_Y_X       (0 << (D3DVS_SWIZZLE_SHIFT + 2))
00590 #define D3DVS_Y_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 2))
00591 #define D3DVS_Y_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 2))
00592 #define D3DVS_Y_W       (3 << (D3DVS_SWIZZLE_SHIFT + 2))
00593 
00594 #define D3DVS_Z_X       (0 << (D3DVS_SWIZZLE_SHIFT + 4))
00595 #define D3DVS_Z_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 4))
00596 #define D3DVS_Z_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 4))
00597 #define D3DVS_Z_W       (3 << (D3DVS_SWIZZLE_SHIFT + 4))
00598 
00599 #define D3DVS_W_X       (0 << (D3DVS_SWIZZLE_SHIFT + 6))
00600 #define D3DVS_W_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 6))
00601 #define D3DVS_W_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 6))
00602 #define D3DVS_W_W       (3 << (D3DVS_SWIZZLE_SHIFT + 6))
00603 
00604 #define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
00605 
00606 #define D3DSP_NOSWIZZLE \
00607     ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
00608 
00609 #define D3DSP_SRCMOD_SHIFT      24
00610 #define D3DSP_SRCMOD_MASK       (0xF << D3DSP_SRCMOD_SHIFT)
00611 
00612 typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
00613   D3DSPSM_NONE         =  0 << D3DSP_SRCMOD_SHIFT,
00614   D3DSPSM_NEG          =  1 << D3DSP_SRCMOD_SHIFT,
00615   D3DSPSM_BIAS         =  2 << D3DSP_SRCMOD_SHIFT,
00616   D3DSPSM_BIASNEG      =  3 << D3DSP_SRCMOD_SHIFT,
00617   D3DSPSM_SIGN         =  4 << D3DSP_SRCMOD_SHIFT,
00618   D3DSPSM_SIGNNEG      =  5 << D3DSP_SRCMOD_SHIFT,
00619   D3DSPSM_COMP         =  6 << D3DSP_SRCMOD_SHIFT,
00620   D3DSPSM_X2           =  7 << D3DSP_SRCMOD_SHIFT,
00621   D3DSPSM_X2NEG        =  8 << D3DSP_SRCMOD_SHIFT,
00622   D3DSPSM_DZ           =  9 << D3DSP_SRCMOD_SHIFT,
00623   D3DSPSM_DW           = 10 << D3DSP_SRCMOD_SHIFT,
00624   D3DSPSM_ABS          = 11 << D3DSP_SRCMOD_SHIFT,
00625   D3DSPSM_ABSNEG       = 12 << D3DSP_SRCMOD_SHIFT,
00626   D3DSPSM_NOT          = 13 << D3DSP_SRCMOD_SHIFT,
00627 
00628   D3DSPSM_FORCE_DWORD  = 0x7FFFFFFF
00629 } D3DSHADER_PARAM_SRCMOD_TYPE;
00630 
00631 #define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
00632 #define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
00633 #define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
00634 #define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
00635 
00636 #define D3DSI_COMMENTSIZE_SHIFT 16
00637 #define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
00638 
00639 #define D3DSHADER_COMMENT(commentSize) \
00640   ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
00641 
00642 #define D3DPS_END() 0x0000FFFF
00643 #define D3DVS_END() 0x0000FFFF
00644 
00645 
00646 /*****************************************************************************
00647  * Direct 3D v8 enumerated types
00648  */
00649 typedef enum _D3DBACKBUFFER_TYPE {
00650     D3DBACKBUFFER_TYPE_MONO         = 0,
00651     D3DBACKBUFFER_TYPE_LEFT         = 1,
00652     D3DBACKBUFFER_TYPE_RIGHT        = 2,
00653 
00654     D3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
00655 } D3DBACKBUFFER_TYPE;
00656 
00657 #define D3DPRESENT_BACK_BUFFER_MAX 3L
00658 
00659 typedef enum _D3DBASISTYPE {
00660    D3DBASIS_BEZIER        = 0,
00661    D3DBASIS_BSPLINE       = 1,
00662    D3DBASIS_INTERPOLATE   = 2,
00663 
00664    D3DBASIS_FORCE_DWORD   = 0x7fffffff
00665 } D3DBASISTYPE;
00666 
00667 typedef enum _D3DBLEND {
00668     D3DBLEND_ZERO               =  1,
00669     D3DBLEND_ONE                =  2,
00670     D3DBLEND_SRCCOLOR           =  3,
00671     D3DBLEND_INVSRCCOLOR        =  4,
00672     D3DBLEND_SRCALPHA           =  5,
00673     D3DBLEND_INVSRCALPHA        =  6,
00674     D3DBLEND_DESTALPHA          =  7,
00675     D3DBLEND_INVDESTALPHA       =  8,
00676     D3DBLEND_DESTCOLOR          =  9,
00677     D3DBLEND_INVDESTCOLOR       = 10,
00678     D3DBLEND_SRCALPHASAT        = 11,
00679     D3DBLEND_BOTHSRCALPHA       = 12,
00680     D3DBLEND_BOTHINVSRCALPHA    = 13,
00681     D3DBLEND_BLENDFACTOR        = 14,
00682     D3DBLEND_INVBLENDFACTOR     = 15,
00683     D3DBLEND_FORCE_DWORD        = 0x7fffffff
00684 } D3DBLEND;
00685 
00686 typedef enum _D3DBLENDOP {
00687     D3DBLENDOP_ADD              = 1,
00688     D3DBLENDOP_SUBTRACT         = 2,
00689     D3DBLENDOP_REVSUBTRACT      = 3,
00690     D3DBLENDOP_MIN              = 4,
00691     D3DBLENDOP_MAX              = 5,
00692 
00693     D3DBLENDOP_FORCE_DWORD      = 0x7fffffff
00694 } D3DBLENDOP;
00695 
00696 typedef enum _D3DCMPFUNC {
00697     D3DCMP_NEVER                = 1,
00698     D3DCMP_LESS                 = 2,
00699     D3DCMP_EQUAL                = 3,
00700     D3DCMP_LESSEQUAL            = 4,
00701     D3DCMP_GREATER              = 5,
00702     D3DCMP_NOTEQUAL             = 6,
00703     D3DCMP_GREATEREQUAL         = 7,
00704     D3DCMP_ALWAYS               = 8,
00705 
00706     D3DCMP_FORCE_DWORD          = 0x7fffffff
00707 } D3DCMPFUNC;
00708 
00709 typedef enum _D3DCUBEMAP_FACES {
00710     D3DCUBEMAP_FACE_POSITIVE_X     = 0,
00711     D3DCUBEMAP_FACE_NEGATIVE_X     = 1,
00712     D3DCUBEMAP_FACE_POSITIVE_Y     = 2,
00713     D3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
00714     D3DCUBEMAP_FACE_POSITIVE_Z     = 4,
00715     D3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
00716 
00717     D3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
00718 } D3DCUBEMAP_FACES;
00719 
00720 typedef enum _D3DCULL {
00721     D3DCULL_NONE                = 1,
00722     D3DCULL_CW                  = 2,
00723     D3DCULL_CCW                 = 3,
00724 
00725     D3DCULL_FORCE_DWORD         = 0x7fffffff
00726 } D3DCULL;
00727 
00728 typedef enum _D3DDEBUGMONITORTOKENS {
00729     D3DDMT_ENABLE          = 0,
00730     D3DDMT_DISABLE         = 1,
00731 
00732     D3DDMT_FORCE_DWORD     = 0x7fffffff
00733 } D3DDEBUGMONITORTOKENS;
00734 
00735 typedef enum _D3DDEGREETYPE {
00736     D3DDEGREE_LINEAR      = 1,
00737     D3DDEGREE_QUADRATIC   = 2,
00738     D3DDEGREE_CUBIC       = 3,
00739     D3DDEGREE_QUINTIC     = 5,
00740 
00741     D3DDEGREE_FORCE_DWORD   = 0x7fffffff
00742 } D3DDEGREETYPE;
00743 
00744 typedef enum _D3DDEVTYPE {
00745     D3DDEVTYPE_HAL         = 1,
00746     D3DDEVTYPE_REF         = 2,
00747     D3DDEVTYPE_SW          = 3,
00748     D3DDEVTYPE_NULLREF     = 4,
00749 
00750     D3DDEVTYPE_FORCE_DWORD = 0xffffffff
00751 } D3DDEVTYPE;
00752 
00753 typedef enum _D3DFILLMODE {
00754     D3DFILL_POINT               = 1,
00755     D3DFILL_WIREFRAME           = 2,
00756     D3DFILL_SOLID               = 3,
00757 
00758     D3DFILL_FORCE_DWORD         = 0x7fffffff
00759 } D3DFILLMODE;
00760 
00761 typedef enum _D3DFOGMODE {
00762     D3DFOG_NONE                 = 0,
00763     D3DFOG_EXP                  = 1,
00764     D3DFOG_EXP2                 = 2,
00765     D3DFOG_LINEAR               = 3,
00766 
00767     D3DFOG_FORCE_DWORD          = 0x7fffffff
00768 } D3DFOGMODE;
00769 
00770 typedef enum _D3DFORMAT {
00771     D3DFMT_UNKNOWN              =   0,
00772 
00773     D3DFMT_R8G8B8               =  20,
00774     D3DFMT_A8R8G8B8             =  21,
00775     D3DFMT_X8R8G8B8             =  22,
00776     D3DFMT_R5G6B5               =  23,
00777     D3DFMT_X1R5G5B5             =  24,
00778     D3DFMT_A1R5G5B5             =  25,
00779     D3DFMT_A4R4G4B4             =  26,
00780     D3DFMT_R3G3B2               =  27,
00781     D3DFMT_A8                   =  28,
00782     D3DFMT_A8R3G3B2             =  29,
00783     D3DFMT_X4R4G4B4             =  30,
00784     D3DFMT_A2B10G10R10          =  31,
00785     D3DFMT_A8B8G8R8             =  32,
00786     D3DFMT_X8B8G8R8             =  33,
00787     D3DFMT_G16R16               =  34,
00788     D3DFMT_A2R10G10B10          =  35,
00789     D3DFMT_A16B16G16R16         =  36,
00790 
00791 
00792     D3DFMT_A8P8                 =  40,
00793     D3DFMT_P8                   =  41,
00794 
00795     D3DFMT_L8                   =  50,
00796     D3DFMT_A8L8                 =  51,
00797     D3DFMT_A4L4                 =  52,
00798 
00799     D3DFMT_V8U8                 =  60,
00800     D3DFMT_L6V5U5               =  61,
00801     D3DFMT_X8L8V8U8             =  62,
00802     D3DFMT_Q8W8V8U8             =  63,
00803     D3DFMT_V16U16               =  64,
00804     D3DFMT_A2W10V10U10          =  67,
00805 
00806     D3DFMT_UYVY                 =  MAKEFOURCC('U', 'Y', 'V', 'Y'),
00807     D3DFMT_YUY2                 =  MAKEFOURCC('Y', 'U', 'Y', '2'),
00808     D3DFMT_DXT1                 =  MAKEFOURCC('D', 'X', 'T', '1'),
00809     D3DFMT_DXT2                 =  MAKEFOURCC('D', 'X', 'T', '2'),
00810     D3DFMT_DXT3                 =  MAKEFOURCC('D', 'X', 'T', '3'),
00811     D3DFMT_DXT4                 =  MAKEFOURCC('D', 'X', 'T', '4'),
00812     D3DFMT_DXT5                 =  MAKEFOURCC('D', 'X', 'T', '5'),
00813     D3DFMT_MULTI2_ARGB8         =  MAKEFOURCC('M', 'E', 'T', '1'),
00814     D3DFMT_G8R8_G8B8            =  MAKEFOURCC('G', 'R', 'G', 'B'),
00815     D3DFMT_R8G8_B8G8            =  MAKEFOURCC('R', 'G', 'B', 'G'),
00816 
00817     D3DFMT_D16_LOCKABLE         =  70,
00818     D3DFMT_D32                  =  71,
00819     D3DFMT_D15S1                =  73,
00820     D3DFMT_D24S8                =  75,
00821     D3DFMT_D24X8                =  77,
00822     D3DFMT_D24X4S4              =  79,
00823     D3DFMT_D16                  =  80,
00824     D3DFMT_L16                  =  81,
00825     D3DFMT_D32F_LOCKABLE        =  82,
00826     D3DFMT_D24FS8               =  83,
00827 
00828 #ifndef D3D_DISABLE_9EX
00829     D3DFMT_D32_LOCKABLE         =  84,
00830     D3DFMT_S8_LOCKABLE          =  85,
00831 #endif
00832 
00833     D3DFMT_VERTEXDATA           = 100,
00834     D3DFMT_INDEX16              = 101,
00835     D3DFMT_INDEX32              = 102,
00836     D3DFMT_Q16W16V16U16         = 110,
00837     /* Floating point formats */
00838     D3DFMT_R16F                 = 111,
00839     D3DFMT_G16R16F              = 112,
00840     D3DFMT_A16B16G16R16F        = 113,
00841 
00842     /* IEEE formats */
00843     D3DFMT_R32F                 = 114,
00844     D3DFMT_G32R32F              = 115,
00845     D3DFMT_A32B32G32R32F        = 116,
00846 
00847     D3DFMT_CxV8U8               = 117,
00848 
00849 
00850     D3DFMT_FORCE_DWORD          = 0xFFFFFFFF
00851 } D3DFORMAT;
00852 
00853 typedef enum _D3DLIGHTTYPE {
00854     D3DLIGHT_POINT          = 1,
00855     D3DLIGHT_SPOT           = 2,
00856     D3DLIGHT_DIRECTIONAL    = 3,
00857 
00858     D3DLIGHT_FORCE_DWORD    = 0x7fffffff
00859 } D3DLIGHTTYPE;
00860 
00861 typedef enum _D3DMATERIALCOLORSOURCE {
00862     D3DMCS_MATERIAL         = 0,
00863     D3DMCS_COLOR1           = 1,
00864     D3DMCS_COLOR2           = 2,
00865 
00866     D3DMCS_FORCE_DWORD      = 0x7fffffff
00867 } D3DMATERIALCOLORSOURCE;
00868 
00869 typedef enum _D3DMULTISAMPLE_TYPE {
00870     D3DMULTISAMPLE_NONE            =  0,
00871     D3DMULTISAMPLE_NONMASKABLE     =  1,
00872     D3DMULTISAMPLE_2_SAMPLES       =  2,
00873     D3DMULTISAMPLE_3_SAMPLES       =  3,
00874     D3DMULTISAMPLE_4_SAMPLES       =  4,
00875     D3DMULTISAMPLE_5_SAMPLES       =  5,
00876     D3DMULTISAMPLE_6_SAMPLES       =  6,
00877     D3DMULTISAMPLE_7_SAMPLES       =  7,
00878     D3DMULTISAMPLE_8_SAMPLES       =  8,
00879     D3DMULTISAMPLE_9_SAMPLES       =  9,
00880     D3DMULTISAMPLE_10_SAMPLES      = 10,
00881     D3DMULTISAMPLE_11_SAMPLES      = 11,
00882     D3DMULTISAMPLE_12_SAMPLES      = 12,
00883     D3DMULTISAMPLE_13_SAMPLES      = 13,
00884     D3DMULTISAMPLE_14_SAMPLES      = 14,
00885     D3DMULTISAMPLE_15_SAMPLES      = 15,
00886     D3DMULTISAMPLE_16_SAMPLES      = 16,
00887 
00888     D3DMULTISAMPLE_FORCE_DWORD     = 0x7fffffff
00889 } D3DMULTISAMPLE_TYPE;
00890 
00891 #if 0
00892 typedef enum _D3DORDERTYPE {
00893    D3DORDER_LINEAR      = 1,
00894    D3DORDER_QUADRATIC   = 2,
00895    D3DORDER_CUBIC       = 3,
00896    D3DORDER_QUINTIC     = 5,
00897 
00898    D3DORDER_FORCE_DWORD = 0x7fffffff
00899 } D3DORDERTYPE;
00900 #endif
00901 typedef enum _D3DPATCHEDGESTYLE {
00902    D3DPATCHEDGE_DISCRETE    = 0,
00903    D3DPATCHEDGE_CONTINUOUS  = 1,
00904 
00905    D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
00906 } D3DPATCHEDGESTYLE;
00907 
00908 typedef enum _D3DPOOL {
00909     D3DPOOL_DEFAULT                 = 0,
00910     D3DPOOL_MANAGED                 = 1,
00911     D3DPOOL_SYSTEMMEM               = 2,
00912     D3DPOOL_SCRATCH                 = 3,
00913 
00914     D3DPOOL_FORCE_DWORD             = 0x7fffffff
00915 } D3DPOOL;
00916 
00917 typedef enum _D3DPRIMITIVETYPE {
00918     D3DPT_POINTLIST             = 1,
00919     D3DPT_LINELIST              = 2,
00920     D3DPT_LINESTRIP             = 3,
00921     D3DPT_TRIANGLELIST          = 4,
00922     D3DPT_TRIANGLESTRIP         = 5,
00923     D3DPT_TRIANGLEFAN           = 6,
00924 
00925     D3DPT_FORCE_DWORD           = 0x7fffffff
00926 } D3DPRIMITIVETYPE;
00927 
00928 typedef enum _D3DRENDERSTATETYPE {
00929     D3DRS_ZENABLE                   =   7,
00930     D3DRS_FILLMODE                  =   8,
00931     D3DRS_SHADEMODE                 =   9,
00932     D3DRS_ZWRITEENABLE              =  14,
00933     D3DRS_ALPHATESTENABLE           =  15,
00934     D3DRS_LASTPIXEL                 =  16,
00935     D3DRS_SRCBLEND                  =  19,
00936     D3DRS_DESTBLEND                 =  20,
00937     D3DRS_CULLMODE                  =  22,
00938     D3DRS_ZFUNC                     =  23,
00939     D3DRS_ALPHAREF                  =  24,
00940     D3DRS_ALPHAFUNC                 =  25,
00941     D3DRS_DITHERENABLE              =  26,
00942     D3DRS_ALPHABLENDENABLE          =  27,
00943     D3DRS_FOGENABLE                 =  28,
00944     D3DRS_SPECULARENABLE            =  29,
00945     D3DRS_FOGCOLOR                  =  34,
00946     D3DRS_FOGTABLEMODE              =  35,
00947     D3DRS_FOGSTART                  =  36,
00948     D3DRS_FOGEND                    =  37,
00949     D3DRS_FOGDENSITY                =  38,
00950     D3DRS_RANGEFOGENABLE            =  48,
00951     D3DRS_STENCILENABLE             =  52,
00952     D3DRS_STENCILFAIL               =  53,
00953     D3DRS_STENCILZFAIL              =  54,
00954     D3DRS_STENCILPASS               =  55,
00955     D3DRS_STENCILFUNC               =  56,
00956     D3DRS_STENCILREF                =  57,
00957     D3DRS_STENCILMASK               =  58,
00958     D3DRS_STENCILWRITEMASK          =  59,
00959     D3DRS_TEXTUREFACTOR             =  60,
00960     D3DRS_WRAP0                     = 128,
00961     D3DRS_WRAP1                     = 129,
00962     D3DRS_WRAP2                     = 130,
00963     D3DRS_WRAP3                     = 131,
00964     D3DRS_WRAP4                     = 132,
00965     D3DRS_WRAP5                     = 133,
00966     D3DRS_WRAP6                     = 134,
00967     D3DRS_WRAP7                     = 135,
00968     D3DRS_CLIPPING                  = 136,
00969     D3DRS_LIGHTING                  = 137,
00970     D3DRS_AMBIENT                   = 139,
00971     D3DRS_FOGVERTEXMODE             = 140,
00972     D3DRS_COLORVERTEX               = 141,
00973     D3DRS_LOCALVIEWER               = 142,
00974     D3DRS_NORMALIZENORMALS          = 143,
00975     D3DRS_DIFFUSEMATERIALSOURCE     = 145,
00976     D3DRS_SPECULARMATERIALSOURCE    = 146,
00977     D3DRS_AMBIENTMATERIALSOURCE     = 147,
00978     D3DRS_EMISSIVEMATERIALSOURCE    = 148,
00979     D3DRS_VERTEXBLEND               = 151,
00980     D3DRS_CLIPPLANEENABLE           = 152,
00981     D3DRS_POINTSIZE                 = 154,
00982     D3DRS_POINTSIZE_MIN             = 155,
00983     D3DRS_POINTSPRITEENABLE         = 156,
00984     D3DRS_POINTSCALEENABLE          = 157,
00985     D3DRS_POINTSCALE_A              = 158,
00986     D3DRS_POINTSCALE_B              = 159,
00987     D3DRS_POINTSCALE_C              = 160,
00988     D3DRS_MULTISAMPLEANTIALIAS      = 161,
00989     D3DRS_MULTISAMPLEMASK           = 162,
00990     D3DRS_PATCHEDGESTYLE            = 163,
00991     D3DRS_DEBUGMONITORTOKEN         = 165,
00992     D3DRS_POINTSIZE_MAX             = 166,
00993     D3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
00994     D3DRS_COLORWRITEENABLE          = 168,
00995     D3DRS_TWEENFACTOR               = 170,
00996     D3DRS_BLENDOP                   = 171,
00997     D3DRS_POSITIONDEGREE            = 172,
00998     D3DRS_NORMALDEGREE              = 173,
00999     D3DRS_SCISSORTESTENABLE         = 174,
01000     D3DRS_SLOPESCALEDEPTHBIAS       = 175,
01001     D3DRS_ANTIALIASEDLINEENABLE     = 176,
01002     D3DRS_MINTESSELLATIONLEVEL      = 178,
01003     D3DRS_MAXTESSELLATIONLEVEL      = 179,
01004     D3DRS_ADAPTIVETESS_X            = 180,
01005     D3DRS_ADAPTIVETESS_Y            = 181,
01006     D3DRS_ADAPTIVETESS_Z            = 182,
01007     D3DRS_ADAPTIVETESS_W            = 183,
01008     D3DRS_ENABLEADAPTIVETESSELLATION= 184,
01009     D3DRS_TWOSIDEDSTENCILMODE       = 185,
01010     D3DRS_CCW_STENCILFAIL           = 186,
01011     D3DRS_CCW_STENCILZFAIL          = 187,
01012     D3DRS_CCW_STENCILPASS           = 188,
01013     D3DRS_CCW_STENCILFUNC           = 189,
01014     D3DRS_COLORWRITEENABLE1         = 190,
01015     D3DRS_COLORWRITEENABLE2         = 191,
01016     D3DRS_COLORWRITEENABLE3         = 192,
01017     D3DRS_BLENDFACTOR               = 193,
01018     D3DRS_SRGBWRITEENABLE           = 194,
01019     D3DRS_DEPTHBIAS                 = 195,
01020     D3DRS_WRAP8                     = 198,
01021     D3DRS_WRAP9                     = 199,
01022     D3DRS_WRAP10                    = 200,
01023     D3DRS_WRAP11                    = 201,
01024     D3DRS_WRAP12                    = 202,
01025     D3DRS_WRAP13                    = 203,
01026     D3DRS_WRAP14                    = 204,
01027     D3DRS_WRAP15                    = 205,
01028     D3DRS_SEPARATEALPHABLENDENABLE  = 206,
01029     D3DRS_SRCBLENDALPHA             = 207,
01030     D3DRS_DESTBLENDALPHA            = 208,
01031     D3DRS_BLENDOPALPHA              = 209,
01032 
01033     D3DRS_FORCE_DWORD               = 0x7fffffff
01034 } D3DRENDERSTATETYPE;
01035 
01036 typedef enum _D3DRESOURCETYPE {
01037     D3DRTYPE_SURFACE                =  1,
01038     D3DRTYPE_VOLUME                 =  2,
01039     D3DRTYPE_TEXTURE                =  3,
01040     D3DRTYPE_VOLUMETEXTURE          =  4,
01041     D3DRTYPE_CUBETEXTURE            =  5,
01042     D3DRTYPE_VERTEXBUFFER           =  6,
01043     D3DRTYPE_INDEXBUFFER            =  7,
01044 
01045     D3DRTYPE_FORCE_DWORD            = 0x7fffffff
01046 } D3DRESOURCETYPE;
01047 
01048 #define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
01049 
01050 typedef enum _D3DSHADEMODE {
01051     D3DSHADE_FLAT               = 1,
01052     D3DSHADE_GOURAUD            = 2,
01053     D3DSHADE_PHONG              = 3,
01054 
01055     D3DSHADE_FORCE_DWORD        = 0x7fffffff
01056 } D3DSHADEMODE;
01057 
01058 typedef enum _D3DSTATEBLOCKTYPE {
01059     D3DSBT_ALL           = 1,
01060     D3DSBT_PIXELSTATE    = 2,
01061     D3DSBT_VERTEXSTATE   = 3,
01062 
01063     D3DSBT_FORCE_DWORD   = 0xffffffff
01064 } D3DSTATEBLOCKTYPE;
01065 
01066 typedef enum _D3DSTENCILOP {
01067     D3DSTENCILOP_KEEP           = 1,
01068     D3DSTENCILOP_ZERO           = 2,
01069     D3DSTENCILOP_REPLACE        = 3,
01070     D3DSTENCILOP_INCRSAT        = 4,
01071     D3DSTENCILOP_DECRSAT        = 5,
01072     D3DSTENCILOP_INVERT         = 6,
01073     D3DSTENCILOP_INCR           = 7,
01074     D3DSTENCILOP_DECR           = 8,
01075 
01076     D3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
01077 } D3DSTENCILOP;
01078 
01079 typedef enum _D3DSWAPEFFECT {
01080     D3DSWAPEFFECT_DISCARD         = 1,
01081     D3DSWAPEFFECT_FLIP            = 2,
01082     D3DSWAPEFFECT_COPY            = 3,
01083     D3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
01084 } D3DSWAPEFFECT;
01085 
01086 typedef enum _D3DTEXTUREADDRESS {
01087     D3DTADDRESS_WRAP            = 1,
01088     D3DTADDRESS_MIRROR          = 2,
01089     D3DTADDRESS_CLAMP           = 3,
01090     D3DTADDRESS_BORDER          = 4,
01091     D3DTADDRESS_MIRRORONCE      = 5,
01092 
01093     D3DTADDRESS_FORCE_DWORD     = 0x7fffffff
01094 } D3DTEXTUREADDRESS;
01095 
01096 typedef enum _D3DTEXTUREFILTERTYPE {
01097     D3DTEXF_NONE            = 0,
01098     D3DTEXF_POINT           = 1,
01099     D3DTEXF_LINEAR          = 2,
01100     D3DTEXF_ANISOTROPIC     = 3,
01101     D3DTEXF_FLATCUBIC       = 4,
01102     D3DTEXF_GAUSSIANCUBIC   = 5,
01103     D3DTEXF_PYRAMIDALQUAD   = 6,
01104     D3DTEXF_GAUSSIANQUAD    = 7,
01105     D3DTEXF_FORCE_DWORD     = 0x7fffffff
01106 } D3DTEXTUREFILTERTYPE;
01107 
01108 typedef enum _D3DTEXTUREOP {
01109     D3DTOP_DISABLE                   =  1,
01110     D3DTOP_SELECTARG1                =  2,
01111     D3DTOP_SELECTARG2                =  3,
01112     D3DTOP_MODULATE                  =  4,
01113     D3DTOP_MODULATE2X                =  5,
01114     D3DTOP_MODULATE4X                =  6,
01115     D3DTOP_ADD                       =  7,
01116     D3DTOP_ADDSIGNED                 =  8,
01117     D3DTOP_ADDSIGNED2X               =  9,
01118     D3DTOP_SUBTRACT                  = 10,
01119     D3DTOP_ADDSMOOTH                 = 11,
01120     D3DTOP_BLENDDIFFUSEALPHA         = 12,
01121     D3DTOP_BLENDTEXTUREALPHA         = 13,
01122     D3DTOP_BLENDFACTORALPHA          = 14,
01123     D3DTOP_BLENDTEXTUREALPHAPM       = 15,
01124     D3DTOP_BLENDCURRENTALPHA         = 16,
01125     D3DTOP_PREMODULATE               = 17,
01126     D3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
01127     D3DTOP_MODULATECOLOR_ADDALPHA    = 19,
01128     D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
01129     D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
01130     D3DTOP_BUMPENVMAP                = 22,
01131     D3DTOP_BUMPENVMAPLUMINANCE       = 23,
01132     D3DTOP_DOTPRODUCT3               = 24,
01133     D3DTOP_MULTIPLYADD               = 25,
01134     D3DTOP_LERP                      = 26,
01135 
01136     D3DTOP_FORCE_DWORD               = 0x7fffffff,
01137 } D3DTEXTUREOP;
01138 
01139 typedef enum _D3DTEXTURESTAGESTATETYPE {
01140     D3DTSS_COLOROP               =  1,
01141     D3DTSS_COLORARG1             =  2,
01142     D3DTSS_COLORARG2             =  3,
01143     D3DTSS_ALPHAOP               =  4,
01144     D3DTSS_ALPHAARG1             =  5,
01145     D3DTSS_ALPHAARG2             =  6,
01146     D3DTSS_BUMPENVMAT00          =  7,
01147     D3DTSS_BUMPENVMAT01          =  8,
01148     D3DTSS_BUMPENVMAT10          =  9,
01149     D3DTSS_BUMPENVMAT11          = 10,
01150     D3DTSS_TEXCOORDINDEX         = 11,
01151 #if 1 /* TODO: remove once samplerstates are implemented.  */
01152     D3DTSS_ADDRESSU              = 13,
01153     D3DTSS_ADDRESSV              = 14,
01154     D3DTSS_BORDERCOLOR           = 15,
01155     D3DTSS_MAGFILTER             = 16,
01156     D3DTSS_MINFILTER             = 17,
01157     D3DTSS_MIPFILTER             = 18,
01158     D3DTSS_MIPMAPLODBIAS         = 19,
01159     D3DTSS_MAXMIPLEVEL           = 20,
01160     D3DTSS_MAXANISOTROPY         = 21,
01161 #endif
01162     D3DTSS_BUMPENVLSCALE         = 22,
01163     D3DTSS_BUMPENVLOFFSET        = 23,
01164     D3DTSS_TEXTURETRANSFORMFLAGS = 24,
01165     D3DTSS_ADDRESSW              = 25,
01166     D3DTSS_COLORARG0             = 26,
01167     D3DTSS_ALPHAARG0             = 27,
01168     D3DTSS_RESULTARG             = 28,
01169     D3DTSS_CONSTANT              = 32,
01170 
01171     D3DTSS_FORCE_DWORD           = 0x7fffffff
01172 } D3DTEXTURESTAGESTATETYPE;
01173 
01174 typedef enum _D3DTEXTURETRANSFORMFLAGS {
01175     D3DTTFF_DISABLE         =   0,
01176     D3DTTFF_COUNT1          =   1,
01177     D3DTTFF_COUNT2          =   2,
01178     D3DTTFF_COUNT3          =   3,
01179     D3DTTFF_COUNT4          =   4,
01180     D3DTTFF_PROJECTED       = 256,
01181 
01182     D3DTTFF_FORCE_DWORD     = 0x7fffffff
01183 } D3DTEXTURETRANSFORMFLAGS;
01184 
01185 typedef enum _D3DTRANSFORMSTATETYPE {
01186     D3DTS_VIEW            =  2,
01187     D3DTS_PROJECTION      =  3,
01188     D3DTS_TEXTURE0        = 16,
01189     D3DTS_TEXTURE1        = 17,
01190     D3DTS_TEXTURE2        = 18,
01191     D3DTS_TEXTURE3        = 19,
01192     D3DTS_TEXTURE4        = 20,
01193     D3DTS_TEXTURE5        = 21,
01194     D3DTS_TEXTURE6        = 22,
01195     D3DTS_TEXTURE7        = 23,
01196 
01197     D3DTS_FORCE_DWORD     = 0x7fffffff
01198 } D3DTRANSFORMSTATETYPE;
01199 
01200 typedef enum _D3DVERTEXBLENDFLAGS {
01201     D3DVBF_DISABLE  =   0,
01202     D3DVBF_1WEIGHTS =   1,
01203     D3DVBF_2WEIGHTS =   2,
01204     D3DVBF_3WEIGHTS =   3,
01205     D3DVBF_TWEENING = 255,
01206     D3DVBF_0WEIGHTS = 256
01207 } D3DVERTEXBLENDFLAGS;
01208 
01209 typedef enum _D3DZBUFFERTYPE {
01210     D3DZB_FALSE                 = 0,
01211     D3DZB_TRUE                  = 1,
01212     D3DZB_USEW                  = 2,
01213 
01214     D3DZB_FORCE_DWORD           = 0x7fffffff
01215 } D3DZBUFFERTYPE;
01216 
01217 typedef enum _D3DSAMPLERSTATETYPE {
01218     D3DSAMP_ADDRESSU       = 1,
01219     D3DSAMP_ADDRESSV       = 2,
01220     D3DSAMP_ADDRESSW       = 3,
01221     D3DSAMP_BORDERCOLOR    = 4,
01222     D3DSAMP_MAGFILTER      = 5,
01223     D3DSAMP_MINFILTER      = 6,
01224     D3DSAMP_MIPFILTER      = 7,
01225     D3DSAMP_MIPMAPLODBIAS  = 8,
01226     D3DSAMP_MAXMIPLEVEL    = 9,
01227     D3DSAMP_MAXANISOTROPY  = 10,
01228     D3DSAMP_SRGBTEXTURE    = 11,
01229     D3DSAMP_ELEMENTINDEX   = 12,
01230     D3DSAMP_DMAPOFFSET     = 13,
01231 
01232     D3DSAMP_FORCE_DWORD   = 0x7fffffff,
01233 } D3DSAMPLERSTATETYPE;
01234 
01235 
01236 /*****************************************************************************
01237  * Direct 3D v9 typedefs
01238  */
01239 #ifndef D3DCOLOR_DEFINED
01240 typedef DWORD D3DCOLOR;
01241 #define D3DCOLOR_DEFINED
01242 #endif
01243 
01244 /*****************************************************************************
01245  * Direct 3D v9 structures
01246  */
01247 typedef struct _D3DADAPTER_IDENTIFIER9 {
01248     char            Driver[MAX_DEVICE_IDENTIFIER_STRING];
01249     char            Description[MAX_DEVICE_IDENTIFIER_STRING];
01250     char            DeviceName[32];
01251     LARGE_INTEGER   DriverVersion;
01252 
01253     DWORD           VendorId;
01254     DWORD           DeviceId;
01255     DWORD           SubSysId;
01256     DWORD           Revision;
01257 
01258     GUID            DeviceIdentifier;
01259 
01260     DWORD           WHQLLevel;
01261 } D3DADAPTER_IDENTIFIER9;
01262 
01263 typedef struct _D3DBOX {
01264     UINT                Left;
01265     UINT                Top;
01266     UINT                Right;
01267     UINT                Bottom;
01268     UINT                Front;
01269     UINT                Back;
01270 } D3DBOX;
01271 
01272 typedef struct _D3DCLIPSTATUS9 {
01273    DWORD ClipUnion;
01274    DWORD ClipIntersection;
01275 } D3DCLIPSTATUS9;
01276 
01277 #ifndef D3DCOLORVALUE_DEFINED
01278 typedef struct _D3DCOLORVALUE {
01279     float r;
01280     float g;
01281     float b;
01282     float a;
01283 } D3DCOLORVALUE;
01284 #define D3DCOLORVALUE_DEFINED
01285 #endif
01286 
01287 typedef struct _D3DDEVICE_CREATION_PARAMETERS {
01288     UINT          AdapterOrdinal;
01289     D3DDEVTYPE    DeviceType;
01290     HWND          hFocusWindow;
01291     DWORD         BehaviorFlags;
01292 } D3DDEVICE_CREATION_PARAMETERS;
01293 
01294 typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
01295     float         MaxBandwidthUtilized;
01296     float         FrontEndUploadMemoryUtilizedPercent;
01297     float         VertexRateUtilizedPercent;
01298     float         TriangleSetupRateUtilizedPercent;
01299     float         FillRateUtilizedPercent;
01300 } D3DDEVINFO_D3D9BANDWIDTHTIMINGS;
01301 
01302 typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
01303     float         TextureCacheHitRate;
01304     float         PostTransformVertexCacheHitRate;
01305 } D3DDEVINFO_D3D9CACHEUTILIZATION;
01306 
01307 typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
01308     float         WaitingForGPUToUseApplicationResourceTimePercent;
01309     float         WaitingForGPUToAcceptMoreCommandsTimePercent;
01310     float         WaitingForGPUToStayWithinLatencyTimePercent;
01311     float         WaitingForGPUExclusiveResourceTimePercent;
01312     float         WaitingForGPUOtherTimePercent;
01313 } D3DDEVINFO_D3D9INTERFACETIMINGS;
01314 
01315 typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
01316     float         VertexProcessingTimePercent;
01317     float         PixelProcessingTimePercent;
01318     float         OtherGPUProcessingTimePercent;
01319     float         GPUIdleTimePercent;
01320 } D3DDEVINFO_D3D9PIPELINETIMINGS;
01321 
01322 typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
01323     float         MemoryProcessingPercent;
01324     float         ComputationProcessingPercent;
01325 } D3DDEVINFO_D3D9STAGETIMINGS;
01326 
01327 
01328 /* Vertex cache optimization hints. */
01329 typedef struct D3DDEVINFO_VCACHE {
01330     /* Must be a 4 char code FOURCC (e.g. CACH) */
01331     DWORD         Pattern;
01332     /* 0 to get the longest  strips, 1 vertex cache */
01333     DWORD         OptMethod;
01334      /* Cache size to use (only valid if OptMethod==1) */
01335     DWORD         CacheSize;
01336     /* internal for deciding when to restart strips, non user modifyable (only valid if OptMethod==1) */
01337     DWORD         MagicNumber;
01338 } D3DDEVINFO_VCACHE;
01339 
01340 typedef struct D3DRESOURCESTATS {
01341     BOOL                bThrashing;
01342     DWORD               ApproxBytesDownloaded;
01343     DWORD               NumEvicts;
01344     DWORD               NumVidCreates;
01345     DWORD               LastPri;
01346     DWORD               NumUsed;
01347     DWORD               NumUsedInVidMem;
01348     DWORD               WorkingSet;
01349     DWORD               WorkingSetBytes;
01350     DWORD               TotalManaged;
01351     DWORD               TotalBytes;
01352 } D3DRESOURCESTATS;
01353 
01354 typedef struct _D3DDEVINFO_D3DRESOURCEMANAGER {
01355     D3DRESOURCESTATS stats[D3DRTYPECOUNT];
01356 } D3DDEVINFO_D3DRESOURCEMANAGER;
01357 
01358 typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
01359     DWORD NumRenderedTriangles;
01360     DWORD NumExtraClippingTriangles;
01361 } D3DDEVINFO_D3DVERTEXSTATS;
01362 
01363 typedef struct _D3DDISPLAYMODE {
01364     UINT            Width;
01365     UINT            Height;
01366     UINT            RefreshRate;
01367     D3DFORMAT       Format;
01368 } D3DDISPLAYMODE;
01369 
01370 typedef struct _D3DGAMMARAMP {
01371     WORD                red  [256];
01372     WORD                green[256];
01373     WORD                blue [256];
01374 } D3DGAMMARAMP;
01375 
01376 typedef struct _D3DINDEXBUFFER_DESC {
01377     D3DFORMAT           Format;
01378     D3DRESOURCETYPE     Type;
01379     DWORD               Usage;
01380     D3DPOOL             Pool;
01381     UINT                Size;
01382 } D3DINDEXBUFFER_DESC;
01383 
01384 #ifndef D3DVECTOR_DEFINED
01385 typedef struct _D3DVECTOR {
01386     float x;
01387     float y;
01388     float z;
01389 } D3DVECTOR;
01390 #define D3DVECTOR_DEFINED
01391 #endif
01392 
01393 typedef struct _D3DLIGHT9 {
01394     D3DLIGHTTYPE    Type;
01395     D3DCOLORVALUE   Diffuse;
01396     D3DCOLORVALUE   Specular;
01397     D3DCOLORVALUE   Ambient;
01398     D3DVECTOR       Position;
01399     D3DVECTOR       Direction;
01400     float           Range;
01401     float           Falloff;
01402     float           Attenuation0;
01403     float           Attenuation1;
01404     float           Attenuation2;
01405     float           Theta;
01406     float           Phi;
01407 } D3DLIGHT9;
01408 
01409 typedef struct _D3DLINEPATTERN {
01410     WORD    wRepeatFactor;
01411     WORD    wLinePattern;
01412 } D3DLINEPATTERN;
01413 
01414 typedef struct _D3DLOCKED_BOX {
01415     INT                 RowPitch;
01416     INT                 SlicePitch;
01417     void*               pBits;
01418 } D3DLOCKED_BOX;
01419 
01420 typedef struct _D3DLOCKED_RECT {
01421     INT                 Pitch;
01422     void*               pBits;
01423 } D3DLOCKED_RECT;
01424 
01425 typedef struct _D3DMATERIAL9 {
01426     D3DCOLORVALUE   Diffuse;
01427     D3DCOLORVALUE   Ambient;
01428     D3DCOLORVALUE   Specular;
01429     D3DCOLORVALUE   Emissive;
01430     float           Power;
01431 } D3DMATERIAL9;
01432 
01433 #ifndef D3DMATRIX_DEFINED
01434 typedef struct _D3DMATRIX {
01435     union {
01436         struct {
01437             float        _11, _12, _13, _14;
01438             float        _21, _22, _23, _24;
01439             float        _31, _32, _33, _34;
01440             float        _41, _42, _43, _44;
01441         } DUMMYSTRUCTNAME;
01442         float m[4][4];
01443     } DUMMYUNIONNAME;
01444 } D3DMATRIX;
01445 #define D3DMATRIX_DEFINED
01446 #endif
01447 
01448 typedef struct _D3DPRESENT_PARAMETERS_ {
01449     UINT                    BackBufferWidth;
01450     UINT                    BackBufferHeight;
01451     D3DFORMAT               BackBufferFormat;
01452     UINT                    BackBufferCount;
01453 
01454     D3DMULTISAMPLE_TYPE     MultiSampleType;
01455     DWORD                   MultiSampleQuality;
01456 
01457     D3DSWAPEFFECT           SwapEffect;
01458     HWND                    hDeviceWindow;
01459     BOOL                    Windowed;
01460     BOOL                    EnableAutoDepthStencil;
01461     D3DFORMAT               AutoDepthStencilFormat;
01462     DWORD                   Flags;
01463 
01464     UINT                    FullScreen_RefreshRateInHz;
01465     UINT                    PresentationInterval;
01466 
01467 } D3DPRESENT_PARAMETERS;
01468 
01469 typedef struct _D3DRANGE {
01470     UINT                Offset;
01471     UINT                Size;
01472 } D3DRANGE;
01473 
01474 typedef struct _D3DRASTER_STATUS {
01475     BOOL            InVBlank;
01476     UINT            ScanLine;
01477 } D3DRASTER_STATUS;
01478 
01479 #ifndef D3DRECT_DEFINED
01480 typedef struct _D3DRECT {
01481     LONG x1;
01482     LONG y1;
01483     LONG x2;
01484     LONG y2;
01485 } D3DRECT;
01486 #define D3DRECT_DEFINED
01487 #endif
01488 
01489 typedef struct _D3DRECTPATCH_INFO {
01490     UINT                StartVertexOffsetWidth;
01491     UINT                StartVertexOffsetHeight;
01492     UINT                Width;
01493     UINT                Height;
01494     UINT                Stride;
01495     D3DBASISTYPE        Basis;
01496     D3DDEGREETYPE       Degree;
01497 } D3DRECTPATCH_INFO;
01498 
01499 typedef struct _D3DSURFACE_DESC {
01500     D3DFORMAT           Format;
01501     D3DRESOURCETYPE     Type;
01502     DWORD               Usage;
01503     D3DPOOL             Pool;
01504     D3DMULTISAMPLE_TYPE MultiSampleType;
01505     DWORD               MultiSampleQuality;
01506     UINT                Width;
01507     UINT                Height;
01508 } D3DSURFACE_DESC;
01509 
01510 typedef struct _D3DTRIPATCH_INFO {
01511     UINT                StartVertexOffset;
01512     UINT                NumVertices;
01513     D3DBASISTYPE        Basis;
01514     D3DDEGREETYPE       Degree;
01515 } D3DTRIPATCH_INFO;
01516 
01517 typedef struct _D3DVERTEXBUFFER_DESC {
01518     D3DFORMAT           Format;
01519     D3DRESOURCETYPE     Type;
01520     DWORD               Usage;
01521     D3DPOOL             Pool;
01522     UINT                Size;
01523     DWORD               FVF;
01524 } D3DVERTEXBUFFER_DESC;
01525 
01526 typedef struct _D3DVIEWPORT9 {
01527     DWORD       X;
01528     DWORD       Y;
01529     DWORD       Width;
01530     DWORD       Height;
01531     float       MinZ;
01532     float       MaxZ;
01533 } D3DVIEWPORT9;
01534 
01535 typedef struct _D3DVOLUME_DESC {
01536     D3DFORMAT           Format;
01537     D3DRESOURCETYPE     Type;
01538     DWORD               Usage;
01539     D3DPOOL             Pool;
01540 
01541     UINT                Width;
01542     UINT                Height;
01543     UINT                Depth;
01544 } D3DVOLUME_DESC;
01545 
01546 #if !defined(D3D_DISABLE_9EX)
01547 typedef enum D3DSCANLINEORDERING
01548 {
01549     D3DSCANLINEORDERING_UNKNOWN,
01550     D3DSCANLINEORDERING_PROGRESSIVE,
01551     D3DSCANLINEORDERING_INTERLACED,
01552 } D3DSCANLINEORDERING;
01553 
01554 
01555 typedef struct D3DDISPLAYMODEFILTER
01556 {
01557     UINT                Size;
01558     D3DFORMAT           Format;
01559     D3DSCANLINEORDERING ScanLineOrdering;
01560 } D3DDISPLAYMODEFILTER;
01561 
01562 typedef struct D3DDISPLAYMODEEX
01563 {
01564     UINT                Size;
01565     UINT                Width;
01566     UINT                Height;
01567     UINT                RefreshRate;
01568     D3DFORMAT           Format;
01569     D3DSCANLINEORDERING ScanLineOrdering;
01570 } D3DDISPLAYMODEEX;
01571 
01572 typedef enum D3DDISPLAYROTATION
01573 {
01574     D3DDISPLAYROTATION_IDENTITY = 1,
01575     D3DDISPLAYROTATION_90,
01576     D3DDISPLAYROTATION_180,
01577     D3DDISPLAYROTATION_270
01578 } D3DDISPLAYROTATION;
01579 
01580 typedef enum _D3DCOMPOSERECTSOP{
01581     D3DCOMPOSERECTS_COPY        = 1,
01582     D3DCOMPOSERECTS_OR,
01583     D3DCOMPOSERECTS_AND,
01584     D3DCOMPOSERECTS_NEG,
01585     D3DCOMPOSERECTS_FORCE_DWORD = 0x7fffffff
01586 } D3DCOMPOSERECTSOP;
01587 #endif /* D3D_DISABLE_9EX */
01588 
01589 #pragma pack(pop)
01590 
01591 #endif /* DIRECT3D_VERSION >= 0x0900 */
01592 
01593 #endif /* __WINE_D3D9TYPES_H */

Generated on Fri May 25 2012 04:29:50 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.