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

d3d8types.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2002 Jason Edmeades
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef __WINE_D3D8TYPES_H
00020 #define __WINE_D3D8TYPES_H
00021 
00022 
00023 /*****************************************************************************
00024  * Direct 3D v8 #defines
00025  */
00026 
00027 #define D3DCLEAR_TARGET   1
00028 #define D3DCLEAR_ZBUFFER  2
00029 #define D3DCLEAR_STENCIL  4
00030 
00031 #define D3DCLIPPLANE0 (1 << 0)
00032 #define D3DCLIPPLANE1 (1 << 1)
00033 #define D3DCLIPPLANE2 (1 << 2)
00034 #define D3DCLIPPLANE3 (1 << 3)
00035 #define D3DCLIPPLANE4 (1 << 4)
00036 #define D3DCLIPPLANE5 (1 << 5)
00037 
00038 #define D3DCOLOR_ARGB(a,r,g,b)        ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
00039 #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))
00040 #define D3DCOLOR_RGBA(r,g,b,a)        D3DCOLOR_ARGB(a,r,g,b)
00041 #define D3DCOLOR_XRGB(r,g,b)          D3DCOLOR_ARGB(0xff,r,g,b)
00042 
00043 #define D3DCS_LEFT                 0x001
00044 #define D3DCS_RIGHT                0x002
00045 #define D3DCS_TOP                  0x004
00046 #define D3DCS_BOTTOM               0x008
00047 #define D3DCS_FRONT                0x010
00048 #define D3DCS_BACK                 0x020
00049 #define D3DCS_PLANE0               0x040
00050 #define D3DCS_PLANE1               0x080
00051 #define D3DCS_PLANE2               0x100
00052 #define D3DCS_PLANE3               0x200
00053 #define D3DCS_PLANE4               0x400
00054 #define D3DCS_PLANE5               0x800
00055 #define D3DCS_ALL                  0xFFF
00056 
00057 #define D3DFVF_TEXTUREFORMAT1 3
00058 #define D3DFVF_TEXTUREFORMAT2 0
00059 #define D3DFVF_TEXTUREFORMAT3 1
00060 #define D3DFVF_TEXTUREFORMAT4 2
00061 #define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
00062 #define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)
00063 #define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))
00064 #define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))
00065 
00066 #define D3DLOCK_READONLY           0x0010
00067 #define D3DLOCK_NOSYSLOCK          0x0800
00068 #define D3DLOCK_NOOVERWRITE        0x1000
00069 #define D3DLOCK_DISCARD            0x2000
00070 #define D3DLOCK_NO_DIRTY_UPDATE    0x8000
00071 
00072 #define D3DMAXUSERCLIPPLANES       32
00073 
00074 #define D3DRENDERSTATE_WRAPBIAS    0x80
00075 
00076 #define D3DTSS_TCI_PASSTHRU                       0x00000
00077 #define D3DTSS_TCI_CAMERASPACENORMAL              0x10000
00078 #define D3DTSS_TCI_CAMERASPACEPOSITION            0x20000
00079 #define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR    0x30000
00080 
00081 
00082 #define D3DTS_WORLD  D3DTS_WORLDMATRIX(0)
00083 #define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
00084 #define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
00085 #define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
00086 #define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
00087 
00088 #define D3DUSAGE_RENDERTARGET       0x01
00089 #define D3DUSAGE_DEPTHSTENCIL       0x02
00090 #define D3DUSAGE_WRITEONLY          0x08
00091 #define D3DUSAGE_SOFTWAREPROCESSING 0x10
00092 #define D3DUSAGE_DONOTCLIP          0x20
00093 #define D3DUSAGE_POINTS             0x40
00094 #define D3DUSAGE_RTPATCHES          0x80
00095 #define D3DUSAGE_NPATCHES           0x100
00096 #define D3DUSAGE_DYNAMIC            0x200
00097 
00098 #define D3DWRAP_U        1
00099 #define D3DWRAP_V        2
00100 #define D3DWRAP_W        4
00101 #define D3DWRAPCOORD_0   1
00102 #define D3DWRAPCOORD_1   2
00103 #define D3DWRAPCOORD_2   4
00104 #define D3DWRAPCOORD_3   8
00105 
00106 #define MAX_DEVICE_IDENTIFIER_STRING        512
00107 
00108 #define D3DFVF_RESERVED0           0x0001
00109 #define D3DFVF_POSITION_MASK       0x000E
00110 #define D3DFVF_XYZ                 0x0002
00111 #define D3DFVF_XYZRHW              0x0004
00112 #define D3DFVF_XYZB1               0x0006
00113 #define D3DFVF_XYZB2               0x0008
00114 #define D3DFVF_XYZB3               0x000a
00115 #define D3DFVF_XYZB4               0x000c
00116 #define D3DFVF_XYZB5               0x000e
00117 #define D3DFVF_NORMAL              0x0010
00118 #define D3DFVF_PSIZE               0x0020
00119 #define D3DFVF_DIFFUSE             0x0040
00120 #define D3DFVF_SPECULAR            0x0080
00121 #define D3DFVF_TEXCOUNT_MASK       0x0f00
00122 #define D3DFVF_TEXCOUNT_SHIFT           8
00123 #define D3DFVF_TEX0                0x0000
00124 #define D3DFVF_TEX1                0x0100
00125 #define D3DFVF_TEX2                0x0200
00126 #define D3DFVF_TEX3                0x0300
00127 #define D3DFVF_TEX4                0x0400
00128 #define D3DFVF_TEX5                0x0500
00129 #define D3DFVF_TEX6                0x0600
00130 #define D3DFVF_TEX7                0x0700
00131 #define D3DFVF_TEX8                0x0800
00132 #define D3DFVF_LASTBETA_UBYTE4     0x1000
00133 #define D3DFVF_RESERVED2           0xE000
00134 
00135 #define D3DTA_SELECTMASK        0x0000000f
00136 #define D3DTA_DIFFUSE           0x00000000
00137 #define D3DTA_CURRENT           0x00000001
00138 #define D3DTA_TEXTURE           0x00000002
00139 #define D3DTA_TFACTOR           0x00000003
00140 #define D3DTA_SPECULAR          0x00000004
00141 #define D3DTA_COMPLEMENT        0x00000010
00142 #define D3DTA_ALPHAREPLICATE    0x00000020
00143 #define D3DTA_TEMP              0x00000005
00144 
00145 #define D3DCOLORWRITEENABLE_RED   (1L<<0)
00146 #define D3DCOLORWRITEENABLE_GREEN (1L<<1)
00147 #define D3DCOLORWRITEENABLE_BLUE  (1L<<2)
00148 #define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
00149 
00150 
00151 #ifndef MAKEFOURCC
00152 #define MAKEFOURCC(ch0, ch1, ch2, ch3)  \
00153     ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  \
00154     ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
00155 #endif
00156 
00157 /****************************
00158  * Vertex Shaders Declaration
00159  */
00160 
00161 typedef enum _D3DVSD_TOKENTYPE {
00162   D3DVSD_TOKEN_NOP         = 0,
00163   D3DVSD_TOKEN_STREAM      = 1,
00164   D3DVSD_TOKEN_STREAMDATA  = 2,
00165   D3DVSD_TOKEN_TESSELLATOR = 3,
00166   D3DVSD_TOKEN_CONSTMEM    = 4,
00167   D3DVSD_TOKEN_EXT         = 5,
00168   /* RESERVED              = 6 */
00169   D3DVSD_TOKEN_END         = 7,
00170   D3DVSD_FORCE_DWORD       = 0x7FFFFFFF
00171 } D3DVSD_TOKENTYPE;
00172 
00174 /*
00175 #define D3DVSDE_POSITION      0
00176 #define D3DVSDE_BLENDWEIGHT   1
00177 #define D3DVSDE_BLENDINDICES  2
00178 #define D3DVSDE_NORMAL        3
00179 #define D3DVSDE_PSIZE         4
00180 #define D3DVSDE_DIFFUSE       5
00181 #define D3DVSDE_SPECULAR      6
00182 #define D3DVSDE_TEXCOORD0     7
00183 #define D3DVSDE_TEXCOORD1     8
00184 #define D3DVSDE_TEXCOORD2     9
00185 #define D3DVSDE_TEXCOORD3    10
00186 #define D3DVSDE_TEXCOORD4    11
00187 #define D3DVSDE_TEXCOORD5    12
00188 #define D3DVSDE_TEXCOORD6    13
00189 #define D3DVSDE_TEXCOORD7    14
00190 #define D3DVSDE_POSITION2    15
00191 #define D3DVSDE_NORMAL2      16
00192 */
00194 typedef enum _D3DVSDE_REGISTER {
00195   D3DVSDE_POSITION     =  0,
00196   D3DVSDE_BLENDWEIGHT  =  1,
00197   D3DVSDE_BLENDINDICES =  2,
00198   D3DVSDE_NORMAL       =  3,
00199   D3DVSDE_PSIZE        =  4,
00200   D3DVSDE_DIFFUSE      =  5,
00201   D3DVSDE_SPECULAR     =  6,
00202   D3DVSDE_TEXCOORD0    =  7,
00203   D3DVSDE_TEXCOORD1    =  8,
00204   D3DVSDE_TEXCOORD2    =  9,
00205   D3DVSDE_TEXCOORD3    = 10,
00206   D3DVSDE_TEXCOORD4    = 11,
00207   D3DVSDE_TEXCOORD5    = 12,
00208   D3DVSDE_TEXCOORD6    = 13,
00209   D3DVSDE_TEXCOORD7    = 14,
00210   D3DVSDE_POSITION2    = 15,
00211   D3DVSDE_NORMAL2      = 16
00212 } D3DVSDE_REGISTER;
00213 
00215 /*
00216 #define D3DVSDT_FLOAT1      0x00
00217 #define D3DVSDT_FLOAT2      0x01
00218 #define D3DVSDT_FLOAT3      0x02
00219 #define D3DVSDT_FLOAT4      0x03
00220 #define D3DVSDT_D3DCOLOR    0x04
00221 #define D3DVSDT_UBYTE4      0x05
00222 #define D3DVSDT_SHORT2      0x06
00223 #define D3DVSDT_SHORT4      0x07
00224 */
00225 typedef enum _D3DVSDT_TYPE {
00226   D3DVSDT_FLOAT1   = 0x00,
00227   D3DVSDT_FLOAT2   = 0x01,
00228   D3DVSDT_FLOAT3   = 0x02,
00229   D3DVSDT_FLOAT4   = 0x03,
00230   D3DVSDT_D3DCOLOR = 0x04,
00231   D3DVSDT_UBYTE4   = 0x05,
00232   D3DVSDT_SHORT2   = 0x06,
00233   D3DVSDT_SHORT4   = 0x07
00234 } D3DVSDT_TYPE;
00235 
00236 
00237 #define D3DVSD_CONSTADDRESSSHIFT  0
00238 #define D3DVSD_EXTINFOSHIFT       0
00239 #define D3DVSD_STREAMNUMBERSHIFT  0
00240 #define D3DVSD_VERTEXREGSHIFT     0
00241 #define D3DVSD_CONSTRSSHIFT      16
00242 #define D3DVSD_DATATYPESHIFT     16
00243 #define D3DVSD_SKIPCOUNTSHIFT    16
00244 #define D3DVSD_VERTEXREGINSHIFT  20
00245 #define D3DVSD_EXTCOUNTSHIFT     24
00246 #define D3DVSD_CONSTCOUNTSHIFT   25
00247 #define D3DVSD_DATALOADTYPESHIFT 28
00248 #define D3DVSD_STREAMTESSSHIFT   28
00249 #define D3DVSD_TOKENTYPESHIFT    29
00250 
00251 #define D3DVSD_CONSTADDRESSMASK  (0x7F     << D3DVSD_CONSTADDRESSSHIFT)
00252 #define D3DVSD_EXTINFOMASK       (0xFFFFFF << D3DVSD_EXTINFOSHIFT)
00253 #define D3DVSD_STREAMNUMBERMASK  (0xF      << D3DVSD_STREAMNUMBERSHIFT)
00254 #define D3DVSD_VERTEXREGMASK     (0x1F     << D3DVSD_VERTEXREGSHIFT)
00255 #define D3DVSD_CONSTRSMASK       (0x1FFF   << D3DVSD_CONSTRSSHIFT)
00256 #define D3DVSD_DATATYPEMASK      (0xF      << D3DVSD_DATATYPESHIFT)
00257 #define D3DVSD_SKIPCOUNTMASK     (0xF      << D3DVSD_SKIPCOUNTSHIFT)
00258 #define D3DVSD_EXTCOUNTMASK      (0x1F     << D3DVSD_EXTCOUNTSHIFT)
00259 #define D3DVSD_VERTEXREGINMASK   (0xF      << D3DVSD_VERTEXREGINSHIFT)
00260 #define D3DVSD_CONSTCOUNTMASK    (0xF      << D3DVSD_CONSTCOUNTSHIFT)
00261 #define D3DVSD_DATALOADTYPEMASK  (0x1      << D3DVSD_DATALOADTYPESHIFT)
00262 #define D3DVSD_STREAMTESSMASK    (0x1      << D3DVSD_STREAMTESSSHIFT)
00263 #define D3DVSD_TOKENTYPEMASK     (0x7      << D3DVSD_TOKENTYPESHIFT)
00264 
00265 
00266 #define D3DVSD_MAKETOKENTYPE(TokenType) \
00267   ((TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK)
00268 
00269 #define D3DVSD_CONST(ConstantAddress, Count) \
00270   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
00271 
00272 #define D3DVSD_END() 0xFFFFFFFF
00273 
00274 #define D3DVSD_NOP() 0x00000000
00275 
00276 #define D3DVSD_REG(VertexRegister, Type) \
00277   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
00278 
00279 #define D3DVSD_SKIP(Count) \
00280   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT))
00281 
00282 #define D3DVSD_STREAM(StreamNumber) \
00283   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber))
00284 
00285 #define D3DVSD_STREAM_TESS() \
00286   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK))
00287 
00288 #define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \
00289   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
00290 
00291 #define D3DVSD_TESSUV(Register) \
00292   (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
00293 
00294 
00295 /********************************
00296  * Pixel/Vertex Shaders Functions
00297  */
00298 
00300 #define D3DDP_MAXTEXCOORD   8
00301 
00303 #define D3DSI_OPCODE_MASK 0x0000FFFF
00304 
00306 typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
00307   D3DSIO_NOP          =  0,
00308   D3DSIO_MOV          =  1,
00309   D3DSIO_ADD          =  2,
00310   D3DSIO_SUB          =  3,
00311   D3DSIO_MAD          =  4,
00312   D3DSIO_MUL          =  5,
00313   D3DSIO_RCP          =  6,
00314   D3DSIO_RSQ          =  7,
00315   D3DSIO_DP3          =  8,
00316   D3DSIO_DP4          =  9,
00317   D3DSIO_MIN          = 10,
00318   D3DSIO_MAX          = 11,
00319   D3DSIO_SLT          = 12,
00320   D3DSIO_SGE          = 13,
00321   D3DSIO_EXP          = 14,
00322   D3DSIO_LOG          = 15,
00323   D3DSIO_LIT          = 16,
00324   D3DSIO_DST          = 17,
00325   D3DSIO_LRP          = 18,
00326   D3DSIO_FRC          = 19,
00327   D3DSIO_M4x4         = 20,
00328   D3DSIO_M4x3         = 21,
00329   D3DSIO_M3x4         = 22,
00330   D3DSIO_M3x3         = 23,
00331   D3DSIO_M3x2         = 24,
00332 
00333   D3DSIO_TEXCOORD     = 64,
00334   D3DSIO_TEXKILL      = 65,
00335   D3DSIO_TEX          = 66,
00336   D3DSIO_TEXBEM       = 67,
00337   D3DSIO_TEXBEML      = 68,
00338   D3DSIO_TEXREG2AR    = 69,
00339   D3DSIO_TEXREG2GB    = 70,
00340   D3DSIO_TEXM3x2PAD   = 71,
00341   D3DSIO_TEXM3x2TEX   = 72,
00342   D3DSIO_TEXM3x3PAD   = 73,
00343   D3DSIO_TEXM3x3TEX   = 74,
00344   D3DSIO_TEXM3x3DIFF  = 75,
00345   D3DSIO_TEXM3x3SPEC  = 76,
00346   D3DSIO_TEXM3x3VSPEC = 77,
00347   D3DSIO_EXPP         = 78,
00348   D3DSIO_LOGP         = 79,
00349   D3DSIO_CND          = 80,
00350   D3DSIO_DEF          = 81,
00351   D3DSIO_TEXREG2RGB   = 82,
00352   D3DSIO_TEXDP3TEX    = 83,
00353   D3DSIO_TEXM3x2DEPTH = 84,
00354   D3DSIO_TEXDP3       = 85,
00355   D3DSIO_TEXM3x3      = 86,
00356   D3DSIO_TEXDEPTH     = 87,
00357   D3DSIO_CMP          = 88,
00358   D3DSIO_BEM          = 89,
00359 
00360   D3DSIO_PHASE        = 0xFFFD,
00361   D3DSIO_COMMENT      = 0xFFFE,
00362   D3DSIO_END          = 0XFFFF,
00363 
00364   D3DSIO_FORCE_DWORD  = 0X7FFFFFFF 
00365 } D3DSHADER_INSTRUCTION_OPCODE_TYPE;
00366 
00368 #define D3DSI_COISSUE 0x40000000
00369 
00371 #define D3DSP_WRITEMASK_0       0x00010000 /* .x r */
00372 #define D3DSP_WRITEMASK_1       0x00020000 /* .y g */
00373 #define D3DSP_WRITEMASK_2       0x00040000 /* .z b */
00374 #define D3DSP_WRITEMASK_3       0x00080000 /* .w a */
00375 #define D3DSP_WRITEMASK_ALL     0x000F0000 /* all */
00376 
00377 #define D3DSP_DSTMOD_SHIFT      20
00378 #define D3DSP_DSTMOD_MASK       (0xF << D3DSP_DSTMOD_SHIFT)
00379 
00380 typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
00381   D3DSPDM_NONE         = 0 << D3DSP_DSTMOD_SHIFT,
00382   D3DSPDM_SATURATE     = 1 << D3DSP_DSTMOD_SHIFT,
00383   D3DSPDM_FORCE_DWORD  = 0X7FFFFFFF
00384 } D3DSHADER_PARAM_DSTMOD_TYPE;
00385 
00387 #define D3DSP_DSTSHIFT_SHIFT     24
00388 #define D3DSP_DSTSHIFT_MASK      (0xF << D3DSP_DSTSHIFT_SHIFT)
00389 
00391 #define D3DSP_REGTYPE_SHIFT      28
00392 #define D3DSP_REGTYPE_MASK       (0x7 << D3DSP_REGTYPE_SHIFT)
00393 
00394 typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
00395   D3DSPR_TEMP         = 0 << D3DSP_REGTYPE_SHIFT,
00396   D3DSPR_INPUT        = 1 << D3DSP_REGTYPE_SHIFT,
00397   D3DSPR_CONST        = 2 << D3DSP_REGTYPE_SHIFT,
00398   D3DSPR_ADDR         = 3 << D3DSP_REGTYPE_SHIFT,
00399   D3DSPR_TEXTURE      = 3 << D3DSP_REGTYPE_SHIFT,
00400   D3DSPR_RASTOUT      = 4 << D3DSP_REGTYPE_SHIFT,
00401   D3DSPR_ATTROUT      = 5 << D3DSP_REGTYPE_SHIFT,
00402   D3DSPR_TEXCRDOUT    = 6 << D3DSP_REGTYPE_SHIFT,
00403   D3DSPR_FORCE_DWORD  = 0x7FFFFFFF
00404 } D3DSHADER_PARAM_REGISTER_TYPE;
00405 
00406 typedef enum _D3DVS_RASTOUT_OFFSETS {
00407   D3DSRO_POSITION     = 0,
00408   D3DSRO_FOG          = 1,
00409   D3DSRO_POINT_SIZE   = 2,
00410   D3DSRO_FORCE_DWORD  = 0x7FFFFFFF
00411 } D3DVS_RASTOUT_OFFSETS;
00412 
00413 #define D3DVS_ADDRESSMODE_SHIFT  13
00414 #define D3DVS_ADDRESSMODE_MASK   (0x1 << D3DVS_ADDRESSMODE_SHIFT)
00415 
00416 typedef enum _D3DVS_ADDRESSMODE_TYPE {
00417   D3DVS_ADDRMODE_ABSOLUTE     = 0 << D3DVS_ADDRESSMODE_SHIFT,
00418   D3DVS_ADDRMODE_RELATIVE     = 1 << D3DVS_ADDRESSMODE_SHIFT,
00419   D3DVS_ADDRMODE_FORCE_DWORD  = 0x7FFFFFFF
00420 } D3DVS_ADDRESSMODE_TYPE;
00421 
00422 #define D3DVS_SWIZZLE_SHIFT      16
00423 #define D3DVS_SWIZZLE_MASK       (0xFF << D3DVS_SWIZZLE_SHIFT)
00424 
00425 #define D3DSP_SWIZZLE_SHIFT      16
00426 #define D3DSP_SWIZZLE_MASK       (0xFF << D3DSP_SWIZZLE_SHIFT)
00427 
00428 #define D3DVS_X_X       (0 << D3DVS_SWIZZLE_SHIFT)
00429 #define D3DVS_X_Y       (1 << D3DVS_SWIZZLE_SHIFT)
00430 #define D3DVS_X_Z       (2 << D3DVS_SWIZZLE_SHIFT)
00431 #define D3DVS_X_W       (3 << D3DVS_SWIZZLE_SHIFT)
00432 
00433 #define D3DVS_Y_X       (0 << (D3DVS_SWIZZLE_SHIFT + 2))
00434 #define D3DVS_Y_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 2))
00435 #define D3DVS_Y_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 2))
00436 #define D3DVS_Y_W       (3 << (D3DVS_SWIZZLE_SHIFT + 2))
00437 
00438 #define D3DVS_Z_X       (0 << (D3DVS_SWIZZLE_SHIFT + 4))
00439 #define D3DVS_Z_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 4))
00440 #define D3DVS_Z_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 4))
00441 #define D3DVS_Z_W       (3 << (D3DVS_SWIZZLE_SHIFT + 4))
00442 
00443 #define D3DVS_W_X       (0 << (D3DVS_SWIZZLE_SHIFT + 6))
00444 #define D3DVS_W_Y       (1 << (D3DVS_SWIZZLE_SHIFT + 6))
00445 #define D3DVS_W_Z       (2 << (D3DVS_SWIZZLE_SHIFT + 6))
00446 #define D3DVS_W_W       (3 << (D3DVS_SWIZZLE_SHIFT + 6))
00447 
00448 #define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W)
00449 
00450 #define D3DSP_NOSWIZZLE \
00451     ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
00452 
00453 #define D3DSP_SRCMOD_SHIFT      24
00454 #define D3DSP_SRCMOD_MASK       (0xF << D3DSP_SRCMOD_SHIFT)
00455 
00456 typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
00457   D3DSPSM_NONE         =  0 << D3DSP_SRCMOD_SHIFT,
00458   D3DSPSM_NEG          =  1 << D3DSP_SRCMOD_SHIFT,
00459   D3DSPSM_BIAS         =  2 << D3DSP_SRCMOD_SHIFT,
00460   D3DSPSM_BIASNEG      =  3 << D3DSP_SRCMOD_SHIFT,
00461   D3DSPSM_SIGN         =  4 << D3DSP_SRCMOD_SHIFT,
00462   D3DSPSM_SIGNNEG      =  5 << D3DSP_SRCMOD_SHIFT,
00463   D3DSPSM_COMP         =  6 << D3DSP_SRCMOD_SHIFT,
00464   D3DSPSM_X2           =  7 << D3DSP_SRCMOD_SHIFT,
00465   D3DSPSM_X2NEG        =  8 << D3DSP_SRCMOD_SHIFT,
00466   D3DSPSM_DZ           =  9 << D3DSP_SRCMOD_SHIFT,
00467   D3DSPSM_DW           = 10 << D3DSP_SRCMOD_SHIFT,
00468   D3DSPSM_FORCE_DWORD  = 0x7FFFFFFF
00469 } D3DSHADER_PARAM_SRCMOD_TYPE;
00470 
00471 #define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
00472 #define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
00473 #define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
00474 #define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
00475 
00476 #define D3DSI_COMMENTSIZE_SHIFT 16
00477 #define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
00478 
00479 #define D3DSHADER_COMMENT(commentSize) \
00480   ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT)
00481 
00482 #define D3DPS_END() 0x0000FFFF
00483 #define D3DVS_END() 0x0000FFFF
00484 
00485 
00486 /*****************************************************************************
00487  * Direct 3D v8 enumerated types
00488  */
00489 typedef enum _D3DBACKBUFFER_TYPE {
00490     D3DBACKBUFFER_TYPE_MONO         = 0,
00491     D3DBACKBUFFER_TYPE_LEFT         = 1,
00492     D3DBACKBUFFER_TYPE_RIGHT        = 2,
00493 
00494     D3DBACKBUFFER_TYPE_FORCE_DWORD  = 0x7fffffff
00495 } D3DBACKBUFFER_TYPE;
00496 
00497 typedef enum _D3DBASISTYPE{
00498    D3DBASIS_BEZIER        = 0,
00499    D3DBASIS_BSPLINE       = 1,
00500    D3DBASIS_INTERPOLATE   = 2,
00501 
00502    D3DBASIS_FORCE_DWORD   = 0x7fffffff
00503 } D3DBASISTYPE;
00504 
00505 typedef enum _D3DBLEND {
00506     D3DBLEND_ZERO               =  1,
00507     D3DBLEND_ONE                =  2,
00508     D3DBLEND_SRCCOLOR           =  3,
00509     D3DBLEND_INVSRCCOLOR        =  4,
00510     D3DBLEND_SRCALPHA           =  5,
00511     D3DBLEND_INVSRCALPHA        =  6,
00512     D3DBLEND_DESTALPHA          =  7,
00513     D3DBLEND_INVDESTALPHA       =  8,
00514     D3DBLEND_DESTCOLOR          =  9,
00515     D3DBLEND_INVDESTCOLOR       = 10,
00516     D3DBLEND_SRCALPHASAT        = 11,
00517     D3DBLEND_BOTHSRCALPHA       = 12,
00518     D3DBLEND_BOTHINVSRCALPHA    = 13,
00519 
00520     D3DBLEND_FORCE_DWORD        = 0x7fffffff
00521 } D3DBLEND;
00522 
00523 typedef enum _D3DBLENDOP {
00524     D3DBLENDOP_ADD              = 1,
00525     D3DBLENDOP_SUBTRACT         = 2,
00526     D3DBLENDOP_REVSUBTRACT      = 3,
00527     D3DBLENDOP_MIN              = 4,
00528     D3DBLENDOP_MAX              = 5,
00529 
00530     D3DBLENDOP_FORCE_DWORD      = 0x7fffffff
00531 } D3DBLENDOP;
00532 
00533 typedef enum _D3DCMPFUNC {
00534     D3DCMP_NEVER                = 1,
00535     D3DCMP_LESS                 = 2,
00536     D3DCMP_EQUAL                = 3,
00537     D3DCMP_LESSEQUAL            = 4,
00538     D3DCMP_GREATER              = 5,
00539     D3DCMP_NOTEQUAL             = 6,
00540     D3DCMP_GREATEREQUAL         = 7,
00541     D3DCMP_ALWAYS               = 8,
00542 
00543     D3DCMP_FORCE_DWORD          = 0x7fffffff
00544 } D3DCMPFUNC;
00545 
00546 typedef enum _D3DCUBEMAP_FACES {
00547     D3DCUBEMAP_FACE_POSITIVE_X     = 0,
00548     D3DCUBEMAP_FACE_NEGATIVE_X     = 1,
00549     D3DCUBEMAP_FACE_POSITIVE_Y     = 2,
00550     D3DCUBEMAP_FACE_NEGATIVE_Y     = 3,
00551     D3DCUBEMAP_FACE_POSITIVE_Z     = 4,
00552     D3DCUBEMAP_FACE_NEGATIVE_Z     = 5,
00553 
00554     D3DCUBEMAP_FACE_FORCE_DWORD    = 0xffffffff
00555 } D3DCUBEMAP_FACES;
00556 
00557 typedef enum _D3DCULL {
00558     D3DCULL_NONE                = 1,
00559     D3DCULL_CW                  = 2,
00560     D3DCULL_CCW                 = 3,
00561 
00562     D3DCULL_FORCE_DWORD         = 0x7fffffff
00563 } D3DCULL;
00564 
00565 typedef enum _D3DDEBUGMONITORTOKENS {
00566     D3DDMT_ENABLE          = 0,
00567     D3DDMT_DISABLE         = 1,
00568 
00569     D3DDMT_FORCE_DWORD     = 0x7fffffff
00570 } D3DDEBUGMONITORTOKENS;
00571 
00572 typedef enum _D3DDEVTYPE {
00573     D3DDEVTYPE_HAL         = 1,
00574     D3DDEVTYPE_REF         = 2,
00575     D3DDEVTYPE_SW          = 3,
00576 
00577     D3DDEVTYPE_FORCE_DWORD = 0xffffffff
00578 } D3DDEVTYPE;
00579 
00580 typedef enum _D3DFILLMODE {
00581     D3DFILL_POINT               = 1,
00582     D3DFILL_WIREFRAME           = 2,
00583     D3DFILL_SOLID               = 3,
00584 
00585     D3DFILL_FORCE_DWORD         = 0x7fffffff
00586 } D3DFILLMODE;
00587 
00588 typedef enum _D3DFOGMODE {
00589     D3DFOG_NONE                 = 0,
00590     D3DFOG_EXP                  = 1,
00591     D3DFOG_EXP2                 = 2,
00592     D3DFOG_LINEAR               = 3,
00593 
00594     D3DFOG_FORCE_DWORD          = 0x7fffffff
00595 } D3DFOGMODE;
00596 
00597 typedef enum _D3DFORMAT {
00598     D3DFMT_UNKNOWN              =   0,
00599 
00600     D3DFMT_R8G8B8               =  20,
00601     D3DFMT_A8R8G8B8             =  21,
00602     D3DFMT_X8R8G8B8             =  22,
00603     D3DFMT_R5G6B5               =  23,
00604     D3DFMT_X1R5G5B5             =  24,
00605     D3DFMT_A1R5G5B5             =  25,
00606     D3DFMT_A4R4G4B4             =  26,
00607     D3DFMT_R3G3B2               =  27,
00608     D3DFMT_A8                   =  28,
00609     D3DFMT_A8R3G3B2             =  29,
00610     D3DFMT_X4R4G4B4             =  30,
00611     D3DFMT_A2B10G10R10          =  31,
00612     D3DFMT_G16R16               =  34,
00613 
00614     D3DFMT_A8P8                 =  40,
00615     D3DFMT_P8                   =  41,
00616 
00617     D3DFMT_L8                   =  50,
00618     D3DFMT_A8L8                 =  51,
00619     D3DFMT_A4L4                 =  52,
00620 
00621     D3DFMT_V8U8                 =  60,
00622     D3DFMT_L6V5U5               =  61,
00623     D3DFMT_X8L8V8U8             =  62,
00624     D3DFMT_Q8W8V8U8             =  63,
00625     D3DFMT_V16U16               =  64,
00626     D3DFMT_W11V11U10            =  65,
00627     D3DFMT_A2W10V10U10          =  67,
00628 
00629     D3DFMT_UYVY                 =  MAKEFOURCC('U', 'Y', 'V', 'Y'),
00630     D3DFMT_YUY2                 =  MAKEFOURCC('Y', 'U', 'Y', '2'),
00631     D3DFMT_DXT1                 =  MAKEFOURCC('D', 'X', 'T', '1'),
00632     D3DFMT_DXT2                 =  MAKEFOURCC('D', 'X', 'T', '2'),
00633     D3DFMT_DXT3                 =  MAKEFOURCC('D', 'X', 'T', '3'),
00634     D3DFMT_DXT4                 =  MAKEFOURCC('D', 'X', 'T', '4'),
00635     D3DFMT_DXT5                 =  MAKEFOURCC('D', 'X', 'T', '5'),
00636 
00637     D3DFMT_D16_LOCKABLE         =  70,
00638     D3DFMT_D32                  =  71,
00639     D3DFMT_D15S1                =  73,
00640     D3DFMT_D24S8                =  75,
00641     D3DFMT_D16                  =  80,
00642     D3DFMT_D24X8                =  77,
00643     D3DFMT_D24X4S4              =  79,
00644 
00645     D3DFMT_VERTEXDATA           = 100,
00646     D3DFMT_INDEX16              = 101,
00647     D3DFMT_INDEX32              = 102,
00648 
00649     D3DFMT_FORCE_DWORD          = 0xFFFFFFFF
00650 } D3DFORMAT;
00651 
00652 typedef enum _D3DLIGHTTYPE {
00653     D3DLIGHT_POINT          = 1,
00654     D3DLIGHT_SPOT           = 2,
00655     D3DLIGHT_DIRECTIONAL    = 3,
00656 
00657     D3DLIGHT_FORCE_DWORD    = 0x7fffffff
00658 } D3DLIGHTTYPE;
00659 
00660 typedef enum _D3DMATERIALCOLORSOURCE {
00661     D3DMCS_MATERIAL         = 0,
00662     D3DMCS_COLOR1           = 1,
00663     D3DMCS_COLOR2           = 2,
00664 
00665     D3DMCS_FORCE_DWORD      = 0x7fffffff
00666 } D3DMATERIALCOLORSOURCE;
00667 
00668 typedef enum _D3DMULTISAMPLE_TYPE {
00669     D3DMULTISAMPLE_NONE            =  0,
00670     D3DMULTISAMPLE_2_SAMPLES       =  2,
00671     D3DMULTISAMPLE_3_SAMPLES       =  3,
00672     D3DMULTISAMPLE_4_SAMPLES       =  4,
00673     D3DMULTISAMPLE_5_SAMPLES       =  5,
00674     D3DMULTISAMPLE_6_SAMPLES       =  6,
00675     D3DMULTISAMPLE_7_SAMPLES       =  7,
00676     D3DMULTISAMPLE_8_SAMPLES       =  8,
00677     D3DMULTISAMPLE_9_SAMPLES       =  9,
00678     D3DMULTISAMPLE_10_SAMPLES      = 10,
00679     D3DMULTISAMPLE_11_SAMPLES      = 11,
00680     D3DMULTISAMPLE_12_SAMPLES      = 12,
00681     D3DMULTISAMPLE_13_SAMPLES      = 13,
00682     D3DMULTISAMPLE_14_SAMPLES      = 14,
00683     D3DMULTISAMPLE_15_SAMPLES      = 15,
00684     D3DMULTISAMPLE_16_SAMPLES      = 16,
00685 
00686     D3DMULTISAMPLE_FORCE_DWORD     = 0xffffffff
00687 } D3DMULTISAMPLE_TYPE;
00688 
00689 typedef enum _D3DORDERTYPE {
00690    D3DORDER_LINEAR      = 1,
00691    D3DORDER_QUADRATIC   = 2,
00692    D3DORDER_CUBIC       = 3,
00693    D3DORDER_QUINTIC     = 5,
00694 
00695    D3DORDER_FORCE_DWORD = 0x7fffffff
00696 } D3DORDERTYPE;
00697 
00698 typedef enum _D3DPATCHEDGESTYLE {
00699    D3DPATCHEDGE_DISCRETE    = 0,
00700    D3DPATCHEDGE_CONTINUOUS  = 1,
00701 
00702    D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff,
00703 } D3DPATCHEDGESTYLE;
00704 
00705 typedef enum _D3DPOOL {
00706     D3DPOOL_DEFAULT                 = 0,
00707     D3DPOOL_MANAGED                 = 1,
00708     D3DPOOL_SYSTEMMEM               = 2,
00709     D3DPOOL_SCRATCH                 = 3,
00710 
00711     D3DPOOL_FORCE_DWORD             = 0x7fffffff
00712 } D3DPOOL;
00713 
00714 typedef enum _D3DPRIMITIVETYPE {
00715     D3DPT_POINTLIST             = 1,
00716     D3DPT_LINELIST              = 2,
00717     D3DPT_LINESTRIP             = 3,
00718     D3DPT_TRIANGLELIST          = 4,
00719     D3DPT_TRIANGLESTRIP         = 5,
00720     D3DPT_TRIANGLEFAN           = 6,
00721 
00722     D3DPT_FORCE_DWORD           = 0x7fffffff
00723 } D3DPRIMITIVETYPE;
00724 
00725 typedef enum _D3DRENDERSTATETYPE {
00726     D3DRS_ZENABLE                   =   7,
00727     D3DRS_FILLMODE                  =   8,
00728     D3DRS_SHADEMODE                 =   9,
00729     D3DRS_LINEPATTERN               =  10,
00730     D3DRS_ZWRITEENABLE              =  14,
00731     D3DRS_ALPHATESTENABLE           =  15,
00732     D3DRS_LASTPIXEL                 =  16,
00733     D3DRS_SRCBLEND                  =  19,
00734     D3DRS_DESTBLEND                 =  20,
00735     D3DRS_CULLMODE                  =  22,
00736     D3DRS_ZFUNC                     =  23,
00737     D3DRS_ALPHAREF                  =  24,
00738     D3DRS_ALPHAFUNC                 =  25,
00739     D3DRS_DITHERENABLE              =  26,
00740     D3DRS_ALPHABLENDENABLE          =  27,
00741     D3DRS_FOGENABLE                 =  28,
00742     D3DRS_SPECULARENABLE            =  29,
00743     D3DRS_ZVISIBLE                  =  30,
00744     D3DRS_FOGCOLOR                  =  34,
00745     D3DRS_FOGTABLEMODE              =  35,
00746     D3DRS_FOGSTART                  =  36,
00747     D3DRS_FOGEND                    =  37,
00748     D3DRS_FOGDENSITY                =  38,
00749     D3DRS_EDGEANTIALIAS             =  40,
00750     D3DRS_ZBIAS                     =  47,
00751     D3DRS_RANGEFOGENABLE            =  48,
00752     D3DRS_STENCILENABLE             =  52,
00753     D3DRS_STENCILFAIL               =  53,
00754     D3DRS_STENCILZFAIL              =  54,
00755     D3DRS_STENCILPASS               =  55,
00756     D3DRS_STENCILFUNC               =  56,
00757     D3DRS_STENCILREF                =  57,
00758     D3DRS_STENCILMASK               =  58,
00759     D3DRS_STENCILWRITEMASK          =  59,
00760     D3DRS_TEXTUREFACTOR             =  60,
00761     D3DRS_WRAP0                     = 128,
00762     D3DRS_WRAP1                     = 129,
00763     D3DRS_WRAP2                     = 130,
00764     D3DRS_WRAP3                     = 131,
00765     D3DRS_WRAP4                     = 132,
00766     D3DRS_WRAP5                     = 133,
00767     D3DRS_WRAP6                     = 134,
00768     D3DRS_WRAP7                     = 135,
00769     D3DRS_CLIPPING                  = 136,
00770     D3DRS_LIGHTING                  = 137,
00771     D3DRS_AMBIENT                   = 139,
00772     D3DRS_FOGVERTEXMODE             = 140,
00773     D3DRS_COLORVERTEX               = 141,
00774     D3DRS_LOCALVIEWER               = 142,
00775     D3DRS_NORMALIZENORMALS          = 143,
00776     D3DRS_DIFFUSEMATERIALSOURCE     = 145,
00777     D3DRS_SPECULARMATERIALSOURCE    = 146,
00778     D3DRS_AMBIENTMATERIALSOURCE     = 147,
00779     D3DRS_EMISSIVEMATERIALSOURCE    = 148,
00780     D3DRS_VERTEXBLEND               = 151,
00781     D3DRS_CLIPPLANEENABLE           = 152,
00782     D3DRS_SOFTWAREVERTEXPROCESSING  = 153,
00783     D3DRS_POINTSIZE                 = 154,
00784     D3DRS_POINTSIZE_MIN             = 155,
00785     D3DRS_POINTSPRITEENABLE         = 156,
00786     D3DRS_POINTSCALEENABLE          = 157,
00787     D3DRS_POINTSCALE_A              = 158,
00788     D3DRS_POINTSCALE_B              = 159,
00789     D3DRS_POINTSCALE_C              = 160,
00790     D3DRS_MULTISAMPLEANTIALIAS      = 161,
00791     D3DRS_MULTISAMPLEMASK           = 162,
00792     D3DRS_PATCHEDGESTYLE            = 163,
00793     D3DRS_PATCHSEGMENTS             = 164,
00794     D3DRS_DEBUGMONITORTOKEN         = 165,
00795     D3DRS_POINTSIZE_MAX             = 166,
00796     D3DRS_INDEXEDVERTEXBLENDENABLE  = 167,
00797     D3DRS_COLORWRITEENABLE          = 168,
00798     D3DRS_TWEENFACTOR               = 170,
00799     D3DRS_BLENDOP                   = 171,
00800     D3DRS_POSITIONORDER             = 172,
00801     D3DRS_NORMALORDER               = 173,
00802 
00803     D3DRS_FORCE_DWORD               = 0x7fffffff
00804 } D3DRENDERSTATETYPE;
00805 
00806 typedef enum _D3DRESOURCETYPE {
00807     D3DRTYPE_SURFACE                =  1,
00808     D3DRTYPE_VOLUME                 =  2,
00809     D3DRTYPE_TEXTURE                =  3,
00810     D3DRTYPE_VOLUMETEXTURE          =  4,
00811     D3DRTYPE_CUBETEXTURE            =  5,
00812     D3DRTYPE_VERTEXBUFFER           =  6,
00813     D3DRTYPE_INDEXBUFFER            =  7,
00814 
00815     D3DRTYPE_FORCE_DWORD            = 0x7fffffff
00816 } D3DRESOURCETYPE;
00817 
00818 typedef enum _D3DSHADEMODE {
00819     D3DSHADE_FLAT               = 1,
00820     D3DSHADE_GOURAUD            = 2,
00821     D3DSHADE_PHONG              = 3,
00822 
00823     D3DSHADE_FORCE_DWORD        = 0x7fffffff
00824 } D3DSHADEMODE;
00825 
00826 typedef enum _D3DSTATEBLOCKTYPE {
00827     D3DSBT_ALL           = 1,
00828     D3DSBT_PIXELSTATE    = 2,
00829     D3DSBT_VERTEXSTATE   = 3,
00830 
00831     D3DSBT_FORCE_DWORD   = 0xffffffff
00832 } D3DSTATEBLOCKTYPE;
00833 
00834 typedef enum _D3DSTENCILOP {
00835     D3DSTENCILOP_KEEP           = 1,
00836     D3DSTENCILOP_ZERO           = 2,
00837     D3DSTENCILOP_REPLACE        = 3,
00838     D3DSTENCILOP_INCRSAT        = 4,
00839     D3DSTENCILOP_DECRSAT        = 5,
00840     D3DSTENCILOP_INVERT         = 6,
00841     D3DSTENCILOP_INCR           = 7,
00842     D3DSTENCILOP_DECR           = 8,
00843 
00844     D3DSTENCILOP_FORCE_DWORD    = 0x7fffffff
00845 } D3DSTENCILOP;
00846 
00847 typedef enum _D3DSWAPEFFECT {
00848     D3DSWAPEFFECT_DISCARD         = 1,
00849     D3DSWAPEFFECT_FLIP            = 2,
00850     D3DSWAPEFFECT_COPY            = 3,
00851     D3DSWAPEFFECT_COPY_VSYNC      = 4,
00852 
00853     D3DSWAPEFFECT_FORCE_DWORD     = 0xFFFFFFFF
00854 } D3DSWAPEFFECT;
00855 
00856 typedef enum _D3DTEXTUREADDRESS {
00857     D3DTADDRESS_WRAP            = 1,
00858     D3DTADDRESS_MIRROR          = 2,
00859     D3DTADDRESS_CLAMP           = 3,
00860     D3DTADDRESS_BORDER          = 4,
00861     D3DTADDRESS_MIRRORONCE      = 5,
00862 
00863     D3DTADDRESS_FORCE_DWORD     = 0x7fffffff
00864 } D3DTEXTUREADDRESS;
00865 
00866 typedef enum _D3DTEXTUREFILTERTYPE {
00867     D3DTEXF_NONE            = 0,
00868     D3DTEXF_POINT           = 1,
00869     D3DTEXF_LINEAR          = 2,
00870     D3DTEXF_ANISOTROPIC     = 3,
00871     D3DTEXF_FLATCUBIC       = 4,
00872     D3DTEXF_GAUSSIANCUBIC   = 5,
00873 
00874     D3DTEXF_FORCE_DWORD     = 0x7fffffff
00875 } D3DTEXTUREFILTERTYPE;
00876 
00877 typedef enum _D3DTEXTUREOP {
00878     D3DTOP_DISABLE                   =  1,
00879     D3DTOP_SELECTARG1                =  2,
00880     D3DTOP_SELECTARG2                =  3,
00881     D3DTOP_MODULATE                  =  4,
00882     D3DTOP_MODULATE2X                =  5,
00883     D3DTOP_MODULATE4X                =  6,
00884     D3DTOP_ADD                       =  7,
00885     D3DTOP_ADDSIGNED                 =  8,
00886     D3DTOP_ADDSIGNED2X               =  9,
00887     D3DTOP_SUBTRACT                  = 10,
00888     D3DTOP_ADDSMOOTH                 = 11,
00889     D3DTOP_BLENDDIFFUSEALPHA         = 12,
00890     D3DTOP_BLENDTEXTUREALPHA         = 13,
00891     D3DTOP_BLENDFACTORALPHA          = 14,
00892     D3DTOP_BLENDTEXTUREALPHAPM       = 15,
00893     D3DTOP_BLENDCURRENTALPHA         = 16,
00894     D3DTOP_PREMODULATE               = 17,
00895     D3DTOP_MODULATEALPHA_ADDCOLOR    = 18,
00896     D3DTOP_MODULATECOLOR_ADDALPHA    = 19,
00897     D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
00898     D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
00899     D3DTOP_BUMPENVMAP                = 22,
00900     D3DTOP_BUMPENVMAPLUMINANCE       = 23,
00901     D3DTOP_DOTPRODUCT3               = 24,
00902     D3DTOP_MULTIPLYADD               = 25,
00903     D3DTOP_LERP                      = 26,
00904 
00905     D3DTOP_FORCE_DWORD               = 0x7fffffff,
00906 } D3DTEXTUREOP;
00907 
00908 typedef enum _D3DTEXTURESTAGESTATETYPE {
00909     D3DTSS_COLOROP               =  1,
00910     D3DTSS_COLORARG1             =  2,
00911     D3DTSS_COLORARG2             =  3,
00912     D3DTSS_ALPHAOP               =  4,
00913     D3DTSS_ALPHAARG1             =  5,
00914     D3DTSS_ALPHAARG2             =  6,
00915     D3DTSS_BUMPENVMAT00          =  7,
00916     D3DTSS_BUMPENVMAT01          =  8,
00917     D3DTSS_BUMPENVMAT10          =  9,
00918     D3DTSS_BUMPENVMAT11          = 10,
00919     D3DTSS_TEXCOORDINDEX         = 11,
00920     D3DTSS_ADDRESSU              = 13,
00921     D3DTSS_ADDRESSV              = 14,
00922     D3DTSS_BORDERCOLOR           = 15,
00923     D3DTSS_MAGFILTER             = 16,
00924     D3DTSS_MINFILTER             = 17,
00925     D3DTSS_MIPFILTER             = 18,
00926     D3DTSS_MIPMAPLODBIAS         = 19,
00927     D3DTSS_MAXMIPLEVEL           = 20,
00928     D3DTSS_MAXANISOTROPY         = 21,
00929     D3DTSS_BUMPENVLSCALE         = 22,
00930     D3DTSS_BUMPENVLOFFSET        = 23,
00931     D3DTSS_TEXTURETRANSFORMFLAGS = 24,
00932     D3DTSS_ADDRESSW              = 25,
00933     D3DTSS_COLORARG0             = 26,
00934     D3DTSS_ALPHAARG0             = 27,
00935     D3DTSS_RESULTARG             = 28,
00936 
00937     D3DTSS_FORCE_DWORD           = 0x7fffffff
00938 } D3DTEXTURESTAGESTATETYPE;
00939 
00940 typedef enum _D3DTEXTURETRANSFORMFLAGS {
00941     D3DTTFF_DISABLE         =   0,
00942     D3DTTFF_COUNT1          =   1,
00943     D3DTTFF_COUNT2          =   2,
00944     D3DTTFF_COUNT3          =   3,
00945     D3DTTFF_COUNT4          =   4,
00946     D3DTTFF_PROJECTED       = 256,
00947 
00948     D3DTTFF_FORCE_DWORD     = 0x7fffffff
00949 } D3DTEXTURETRANSFORMFLAGS;
00950 
00951 typedef enum _D3DTRANSFORMSTATETYPE {
00952     D3DTS_VIEW            =  2,
00953     D3DTS_PROJECTION      =  3,
00954     D3DTS_TEXTURE0        = 16,
00955     D3DTS_TEXTURE1        = 17,
00956     D3DTS_TEXTURE2        = 18,
00957     D3DTS_TEXTURE3        = 19,
00958     D3DTS_TEXTURE4        = 20,
00959     D3DTS_TEXTURE5        = 21,
00960     D3DTS_TEXTURE6        = 22,
00961     D3DTS_TEXTURE7        = 23,
00962 
00963     D3DTS_FORCE_DWORD     = 0x7fffffff
00964 } D3DTRANSFORMSTATETYPE;
00965 
00966 typedef enum _D3DVERTEXBLENDFLAGS {
00967     D3DVBF_DISABLE  =   0,
00968     D3DVBF_1WEIGHTS =   1,
00969     D3DVBF_2WEIGHTS =   2,
00970     D3DVBF_3WEIGHTS =   3,
00971     D3DVBF_TWEENING = 255,
00972     D3DVBF_0WEIGHTS = 256
00973 } D3DVERTEXBLENDFLAGS;
00974 
00975 typedef enum _D3DZBUFFERTYPE {
00976     D3DZB_FALSE                 = 0,
00977     D3DZB_TRUE                  = 1,
00978     D3DZB_USEW                  = 2,
00979 
00980     D3DZB_FORCE_DWORD           = 0x7fffffff
00981 } D3DZBUFFERTYPE;
00982 
00983 
00984 /*****************************************************************************
00985  * Direct 3D v8 typedefs
00986  */
00987 typedef DWORD D3DCOLOR;
00988 
00989 /*****************************************************************************
00990  * Direct 3D v8 structures
00991  */
00992 typedef struct _D3DADAPTER_IDENTIFIER8 {
00993     char            Driver[MAX_DEVICE_IDENTIFIER_STRING];
00994     char            Description[MAX_DEVICE_IDENTIFIER_STRING];
00995 
00996     LARGE_INTEGER   DriverVersion;
00997     DWORD           VendorId;
00998     DWORD           DeviceId;
00999     DWORD           SubSysId;
01000     DWORD           Revision;
01001 
01002     GUID            DeviceIdentifier;
01003 
01004     DWORD           WHQLLevel;
01005 } D3DADAPTER_IDENTIFIER8;
01006 
01007 typedef struct _D3DBOX {
01008     UINT                Left;
01009     UINT                Top;
01010     UINT                Right;
01011     UINT                Bottom;
01012     UINT                Front;
01013     UINT                Back;
01014 } D3DBOX;
01015 
01016 typedef struct _D3DCLIPSTATUS8 {
01017    DWORD ClipUnion;
01018    DWORD ClipIntersection;
01019 } D3DCLIPSTATUS8;
01020 
01021 typedef struct _D3DCOLORVALUE {
01022     float r;
01023     float g;
01024     float b;
01025     float a;
01026 } D3DCOLORVALUE;
01027 
01028 typedef struct _D3DDEVICE_CREATION_PARAMETERS {
01029     UINT          AdapterOrdinal;
01030     D3DDEVTYPE    DeviceType;
01031     HWND          hFocusWindow;
01032     DWORD         BehaviorFlags;
01033 } D3DDEVICE_CREATION_PARAMETERS;
01034 
01035 typedef struct _D3DDISPLAYMODE {
01036     UINT            Width;
01037     UINT            Height;
01038     UINT            RefreshRate;
01039     D3DFORMAT       Format;
01040 } D3DDISPLAYMODE;
01041 
01042 typedef struct _D3DGAMMARAMP {
01043     WORD                red  [256];
01044     WORD                green[256];
01045     WORD                blue [256];
01046 } D3DGAMMARAMP;
01047 
01048 typedef struct _D3DINDEXBUFFER_DESC {
01049     D3DFORMAT           Format;
01050     D3DRESOURCETYPE     Type;
01051     DWORD               Usage;
01052     D3DPOOL             Pool;
01053     UINT                Size;
01054 } D3DINDEXBUFFER_DESC;
01055 
01056 typedef struct _D3DVECTOR {
01057     float x;
01058     float y;
01059     float z;
01060 } D3DVECTOR;
01061 
01062 typedef struct _D3DLIGHT8 {
01063     D3DLIGHTTYPE    Type;
01064     D3DCOLORVALUE   Diffuse;
01065     D3DCOLORVALUE   Specular;
01066     D3DCOLORVALUE   Ambient;
01067     D3DVECTOR       Position;
01068     D3DVECTOR       Direction;
01069     float           Range;
01070     float           Falloff;
01071     float           Attenuation0;
01072     float           Attenuation1;
01073     float           Attenuation2;
01074     float           Theta;
01075     float           Phi;
01076 } D3DLIGHT8;
01077 
01078 typedef struct _D3DLINEPATTERN {
01079     WORD    wRepeatFactor;
01080     WORD    wLinePattern;
01081 } D3DLINEPATTERN;
01082 
01083 typedef struct _D3DLOCKED_BOX {
01084     INT                 RowPitch;
01085     INT                 SlicePitch;
01086     void*               pBits;
01087 } D3DLOCKED_BOX;
01088 
01089 typedef struct _D3DLOCKED_RECT {
01090     INT                 Pitch;
01091     void*               pBits;
01092 } D3DLOCKED_RECT;
01093 
01094 typedef struct _D3DMATERIAL8 {
01095     D3DCOLORVALUE   Diffuse;
01096     D3DCOLORVALUE   Ambient;
01097     D3DCOLORVALUE   Specular;
01098     D3DCOLORVALUE   Emissive;
01099     float           Power;
01100 } D3DMATERIAL8;
01101 
01102 typedef struct _D3DMATRIX {
01103     union {
01104         struct {
01105             float        _11, _12, _13, _14;
01106             float        _21, _22, _23, _24;
01107             float        _31, _32, _33, _34;
01108             float        _41, _42, _43, _44;
01109         } DUMMYSTRUCTNAME;
01110         float m[4][4];
01111     } DUMMYUNIONNAME;
01112 } D3DMATRIX;
01113 
01114 typedef struct _D3DPRESENT_PARAMETERS_ {
01115     UINT                    BackBufferWidth;
01116     UINT                    BackBufferHeight;
01117     D3DFORMAT               BackBufferFormat;
01118     UINT                    BackBufferCount;
01119 
01120     D3DMULTISAMPLE_TYPE     MultiSampleType;
01121 
01122     D3DSWAPEFFECT           SwapEffect;
01123     HWND                    hDeviceWindow;
01124     BOOL                    Windowed;
01125     BOOL                    EnableAutoDepthStencil;
01126     D3DFORMAT               AutoDepthStencilFormat;
01127     DWORD                   Flags;
01128 
01129     UINT                    FullScreen_RefreshRateInHz;
01130     UINT                    FullScreen_PresentationInterval;
01131 
01132 } D3DPRESENT_PARAMETERS;
01133 
01134 typedef struct _D3DRANGE {
01135     UINT                Offset;
01136     UINT                Size;
01137 } D3DRANGE;
01138 
01139 typedef struct _D3DRASTER_STATUS {
01140     BOOL            InVBlank;
01141     UINT            ScanLine;
01142 } D3DRASTER_STATUS;
01143 
01144 typedef struct _D3DRECT {
01145     LONG x1;
01146     LONG y1;
01147     LONG x2;
01148     LONG y2;
01149 } D3DRECT;
01150 
01151 typedef struct _D3DRECTPATCH_INFO {
01152     UINT                StartVertexOffsetWidth;
01153     UINT                StartVertexOffsetHeight;
01154     UINT                Width;
01155     UINT                Height;
01156     UINT                Stride;
01157     D3DBASISTYPE        Basis;
01158     D3DORDERTYPE        Order;
01159 } D3DRECTPATCH_INFO;
01160 
01161 typedef struct _D3DSURFACE_DESC {
01162     D3DFORMAT           Format;
01163     D3DRESOURCETYPE     Type;
01164     DWORD               Usage;
01165     D3DPOOL             Pool;
01166     UINT                Size;
01167     D3DMULTISAMPLE_TYPE MultiSampleType;
01168     UINT                Width;
01169     UINT                Height;
01170 } D3DSURFACE_DESC;
01171 
01172 typedef struct _D3DTRIPATCH_INFO {
01173     UINT                StartVertexOffset;
01174     UINT                NumVertices;
01175     D3DBASISTYPE        Basis;
01176     D3DORDERTYPE        Order;
01177 } D3DTRIPATCH_INFO;
01178 
01179 typedef struct _D3DVERTEXBUFFER_DESC {
01180     D3DFORMAT           Format;
01181     D3DRESOURCETYPE     Type;
01182     DWORD               Usage;
01183     D3DPOOL             Pool;
01184     UINT                Size;
01185     DWORD               FVF;
01186 } D3DVERTEXBUFFER_DESC;
01187 
01188 typedef struct _D3DVIEWPORT8 {
01189     DWORD       X;
01190     DWORD       Y;
01191     DWORD       Width;
01192     DWORD       Height;
01193     float       MinZ;
01194     float       MaxZ;
01195 } D3DVIEWPORT8;
01196 
01197 typedef struct _D3DVOLUME_DESC {
01198     D3DFORMAT           Format;
01199     D3DRESOURCETYPE     Type;
01200     DWORD               Usage;
01201     D3DPOOL             Pool;
01202     UINT                Size;
01203     UINT                Width;
01204     UINT                Height;
01205     UINT                Depth;
01206 } D3DVOLUME_DESC;
01207 
01208 #endif  /* __WINE_D3D8TYPES_H */

Generated on Sun May 27 2012 04:31:16 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.