Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygend3d8types.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
1.7.6.1
|