Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygend3dtypes.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2000 Peter Hunnisett 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 /* FIXME: Need to add C++ code for certain structs for headers - this is going to be a problem 00020 if WINE continues to only use C code - I suppose that we could always inline in 00021 the header file to get around that little problem... */ 00022 /* FIXME: We need to implement versioning on everything directx 5 and up if these headers 00023 are going to be generically useful for directx stuff */ 00024 00025 #ifndef __WINE_D3DTYPES_H 00026 #define __WINE_D3DTYPES_H 00027 00028 /* #include <windows.h> FIXME: Need to include for compatibility. Inclusion caused compile fail */ 00029 00030 #if (DIRECT3D_VERSION >= 0x0800) 00031 #error "You should not include d3dtypes.h when compiling for DX8 or newer." 00032 #endif 00033 00034 #include <float.h> 00035 #include <ddraw.h> 00036 00037 #define D3DVALP(val, prec) ((float)(val)) 00038 #define D3DVAL(val) ((float)(val)) 00039 #define D3DDivide(a, b) (float)((double) (a) / (double) (b)) 00040 #define D3DMultiply(a, b) ((a) * (b)) 00041 00042 typedef LONG D3DFIXED; 00043 00044 00045 #ifndef RGB_MAKE 00046 #define CI_GETALPHA(ci) ((ci) >> 24) 00047 #define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff) 00048 #define CI_GETFRACTION(ci) ((ci) & 0xff) 00049 #define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80) 00050 #define CI_MASKALPHA(ci) ((ci) & 0xffffff) 00051 #define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f)) 00052 00053 #define RGBA_GETALPHA(rgb) ((rgb) >> 24) 00054 #define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff) 00055 #define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff) 00056 #define RGBA_GETBLUE(rgb) ((rgb) & 0xff) 00057 #define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))) 00058 00059 #define D3DRGB(r, g, b) \ 00060 (0xff000000L | ( ((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255)) 00061 #define D3DRGBA(r, g, b, a) \ 00062 ( (((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) \ 00063 | (((long)((g) * 255)) << 8) | (long)((b) * 255) \ 00064 ) 00065 00066 #define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff) 00067 #define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff) 00068 #define RGB_GETBLUE(rgb) ((rgb) & 0xff) 00069 #define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff)) 00070 #define RGB_MAKE(r, g, b) ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b))) 00071 #define RGBA_TORGB(rgba) ((D3DCOLOR) ((rgba) & 0xffffff)) 00072 #define RGB_TORGBA(rgb) ((D3DCOLOR) ((rgb) | 0xff000000)) 00073 00074 #endif 00075 00076 #define D3DENUMRET_CANCEL DDENUMRET_CANCEL 00077 #define D3DENUMRET_OK DDENUMRET_OK 00078 00079 typedef HRESULT (CALLBACK *LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset); 00080 typedef HRESULT (CALLBACK *LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext); 00081 typedef HRESULT (CALLBACK *LPD3DENUMPIXELFORMATSCALLBACK)(LPDDPIXELFORMAT lpDDPixFmt, LPVOID lpContext); 00082 00083 #ifndef DX_SHARED_DEFINES 00084 00085 typedef float D3DVALUE,*LPD3DVALUE; 00086 00087 #ifndef D3DCOLOR_DEFINED 00088 typedef DWORD D3DCOLOR, *LPD3DCOLOR; 00089 #define D3DCOLOR_DEFINED 00090 #endif 00091 00092 #ifndef D3DVECTOR_DEFINED 00093 typedef struct _D3DVECTOR { 00094 union { 00095 D3DVALUE x; 00096 D3DVALUE dvX; 00097 } DUMMYUNIONNAME1; 00098 union { 00099 D3DVALUE y; 00100 D3DVALUE dvY; 00101 } DUMMYUNIONNAME2; 00102 union { 00103 D3DVALUE z; 00104 D3DVALUE dvZ; 00105 } DUMMYUNIONNAME3; 00106 #if defined(__cplusplus) && defined(D3D_OVERLOADS) 00107 /* the definitions for these methods are in d3dvec.inl */ 00108 public: 00109 /*** constructors ***/ 00110 _D3DVECTOR() {} 00111 _D3DVECTOR(D3DVALUE f); 00112 _D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z); 00113 _D3DVECTOR(const D3DVALUE f[3]); 00114 00115 /*** assignment operators ***/ 00116 _D3DVECTOR& operator += (const _D3DVECTOR& v); 00117 _D3DVECTOR& operator -= (const _D3DVECTOR& v); 00118 _D3DVECTOR& operator *= (const _D3DVECTOR& v); 00119 _D3DVECTOR& operator /= (const _D3DVECTOR& v); 00120 _D3DVECTOR& operator *= (D3DVALUE s); 00121 _D3DVECTOR& operator /= (D3DVALUE s); 00122 00123 /*** unary operators ***/ 00124 friend _D3DVECTOR operator + (const _D3DVECTOR& v); 00125 friend _D3DVECTOR operator - (const _D3DVECTOR& v); 00126 00127 /*** binary operators ***/ 00128 friend _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2); 00129 friend _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2); 00130 00131 friend _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s); 00132 friend _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v); 00133 friend _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s); 00134 00135 friend D3DVALUE SquareMagnitude(const _D3DVECTOR& v); 00136 friend D3DVALUE Magnitude(const _D3DVECTOR& v); 00137 00138 friend _D3DVECTOR Normalize(const _D3DVECTOR& v); 00139 00140 friend D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2); 00141 friend _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2); 00142 #endif 00143 } D3DVECTOR,*LPD3DVECTOR; 00144 #define D3DVECTOR_DEFINED 00145 #endif 00146 00147 #define DX_SHARED_DEFINES 00148 #endif /* DX_SHARED_DEFINES */ 00149 00150 typedef DWORD D3DMATERIALHANDLE, *LPD3DMATERIALHANDLE; 00151 typedef DWORD D3DTEXTUREHANDLE, *LPD3DTEXTUREHANDLE; 00152 typedef DWORD D3DMATRIXHANDLE, *LPD3DMATRIXHANDLE; 00153 00154 #ifndef D3DCOLORVALUE_DEFINED 00155 typedef struct _D3DCOLORVALUE { 00156 union { 00157 D3DVALUE r; 00158 D3DVALUE dvR; 00159 } DUMMYUNIONNAME1; 00160 union { 00161 D3DVALUE g; 00162 D3DVALUE dvG; 00163 } DUMMYUNIONNAME2; 00164 union { 00165 D3DVALUE b; 00166 D3DVALUE dvB; 00167 } DUMMYUNIONNAME3; 00168 union { 00169 D3DVALUE a; 00170 D3DVALUE dvA; 00171 } DUMMYUNIONNAME4; 00172 } D3DCOLORVALUE,*LPD3DCOLORVALUE; 00173 #endif 00174 00175 #ifndef D3DRECT_DEFINED 00176 typedef struct _D3DRECT { 00177 union { 00178 LONG x1; 00179 LONG lX1; 00180 } DUMMYUNIONNAME1; 00181 union { 00182 LONG y1; 00183 LONG lY1; 00184 } DUMMYUNIONNAME2; 00185 union { 00186 LONG x2; 00187 LONG lX2; 00188 } DUMMYUNIONNAME3; 00189 union { 00190 LONG y2; 00191 LONG lY2; 00192 } DUMMYUNIONNAME4; 00193 } D3DRECT; 00194 #endif 00195 typedef struct _D3DRECT *LPD3DRECT; 00196 00197 typedef struct _D3DHVERTEX { 00198 DWORD dwFlags; 00199 union { 00200 D3DVALUE hx; 00201 D3DVALUE dvHX; 00202 } DUMMYUNIONNAME1; 00203 union { 00204 D3DVALUE hy; 00205 D3DVALUE dvHY; 00206 } DUMMYUNIONNAME2; 00207 union { 00208 D3DVALUE hz; 00209 D3DVALUE dvHZ; 00210 } DUMMYUNIONNAME3; 00211 } D3DHVERTEX, *LPD3DHVERTEX; 00212 00213 /* 00214 * Transformed/lit vertices 00215 */ 00216 typedef struct _D3DTLVERTEX { 00217 union { 00218 D3DVALUE sx; 00219 D3DVALUE dvSX; 00220 } DUMMYUNIONNAME1; 00221 union { 00222 D3DVALUE sy; 00223 D3DVALUE dvSY; 00224 } DUMMYUNIONNAME2; 00225 union { 00226 D3DVALUE sz; 00227 D3DVALUE dvSZ; 00228 } DUMMYUNIONNAME3; 00229 union { 00230 D3DVALUE rhw; 00231 D3DVALUE dvRHW; 00232 } DUMMYUNIONNAME4; 00233 union { 00234 D3DCOLOR color; 00235 D3DCOLOR dcColor; 00236 } DUMMYUNIONNAME5; 00237 union { 00238 D3DCOLOR specular; 00239 D3DCOLOR dcSpecular; 00240 } DUMMYUNIONNAME6; 00241 union { 00242 D3DVALUE tu; 00243 D3DVALUE dvTU; 00244 } DUMMYUNIONNAME7; 00245 union { 00246 D3DVALUE tv; 00247 D3DVALUE dvTV; 00248 } DUMMYUNIONNAME8; 00249 #if defined(__cplusplus) && defined(D3D_OVERLOADS) 00250 public: 00251 _D3DTLVERTEX() {} 00252 _D3DTLVERTEX(const D3DVECTOR& v, float _rhw, D3DCOLOR _color, D3DCOLOR _specular, float _tu, float _tv) { 00253 sx = v.x; sy = v.y; sz = v.z; rhw = _rhw; 00254 color = _color; specular = _specular; 00255 tu = _tu; tv = _tv; 00256 } 00257 #endif 00258 } D3DTLVERTEX, *LPD3DTLVERTEX; 00259 00260 typedef struct _D3DLVERTEX { 00261 union { 00262 D3DVALUE x; 00263 D3DVALUE dvX; 00264 } DUMMYUNIONNAME1; 00265 union { 00266 D3DVALUE y; 00267 D3DVALUE dvY; 00268 } DUMMYUNIONNAME2; 00269 union { 00270 D3DVALUE z; 00271 D3DVALUE dvZ; 00272 } DUMMYUNIONNAME3; 00273 DWORD dwReserved; 00274 union { 00275 D3DCOLOR color; 00276 D3DCOLOR dcColor; 00277 } DUMMYUNIONNAME4; 00278 union { 00279 D3DCOLOR specular; 00280 D3DCOLOR dcSpecular; 00281 } DUMMYUNIONNAME5; 00282 union { 00283 D3DVALUE tu; 00284 D3DVALUE dvTU; 00285 } DUMMYUNIONNAME6; 00286 union { 00287 D3DVALUE tv; 00288 D3DVALUE dvTV; 00289 } DUMMYUNIONNAME7; 00290 } D3DLVERTEX, *LPD3DLVERTEX; 00291 00292 typedef struct _D3DVERTEX { 00293 union { 00294 D3DVALUE x; 00295 D3DVALUE dvX; 00296 } DUMMYUNIONNAME1; 00297 union { 00298 D3DVALUE y; 00299 D3DVALUE dvY; 00300 } DUMMYUNIONNAME2; 00301 union { 00302 D3DVALUE z; 00303 D3DVALUE dvZ; 00304 } DUMMYUNIONNAME3; 00305 union { 00306 D3DVALUE nx; 00307 D3DVALUE dvNX; 00308 } DUMMYUNIONNAME4; 00309 union { 00310 D3DVALUE ny; 00311 D3DVALUE dvNY; 00312 } DUMMYUNIONNAME5; 00313 union { 00314 D3DVALUE nz; 00315 D3DVALUE dvNZ; 00316 } DUMMYUNIONNAME6; 00317 union { 00318 D3DVALUE tu; 00319 D3DVALUE dvTU; 00320 } DUMMYUNIONNAME7; 00321 union { 00322 D3DVALUE tv; 00323 D3DVALUE dvTV; 00324 } DUMMYUNIONNAME8; 00325 #if defined(__cplusplus) && defined(D3D_OVERLOADS) 00326 public: 00327 _D3DVERTEX() {} 00328 _D3DVERTEX(const D3DVECTOR& v, const D3DVECTOR& n, float _tu, float _tv) { 00329 x = v.x; y = v.y; z = v.z; 00330 nx = n.x; ny = n.y; nz = n.z; 00331 tu = _tu; tv = _tv; 00332 } 00333 #endif 00334 } D3DVERTEX, *LPD3DVERTEX; 00335 00336 #ifndef D3DMATRIX_DEFINED 00337 typedef struct _D3DMATRIX { 00338 D3DVALUE _11, _12, _13, _14; 00339 D3DVALUE _21, _22, _23, _24; 00340 D3DVALUE _31, _32, _33, _34; 00341 D3DVALUE _41, _42, _43, _44; 00342 #if defined(__cplusplus) && defined(D3D_OVERLOADS) 00343 _D3DMATRIX() { } 00344 00345 /* This is different from MS, but avoids anonymous structs. */ 00346 D3DVALUE &operator () (int r, int c) 00347 { return ((D3DVALUE [4][4])&_11)[r][c]; } 00348 const D3DVALUE &operator() (int r, int c) const 00349 { return ((const D3DVALUE [4][4])&_11)[r][c]; } 00350 #endif 00351 } D3DMATRIX, *LPD3DMATRIX; 00352 #endif 00353 00354 #if defined(__cplusplus) && defined(D3D_OVERLOADS) 00355 #include <d3dvec.inl> 00356 #endif 00357 00358 typedef struct _D3DVIEWPORT { 00359 DWORD dwSize; 00360 DWORD dwX; 00361 DWORD dwY; 00362 DWORD dwWidth; 00363 DWORD dwHeight; 00364 D3DVALUE dvScaleX; 00365 D3DVALUE dvScaleY; 00366 D3DVALUE dvMaxX; 00367 D3DVALUE dvMaxY; 00368 D3DVALUE dvMinZ; 00369 D3DVALUE dvMaxZ; 00370 } D3DVIEWPORT, *LPD3DVIEWPORT; 00371 00372 typedef struct _D3DVIEWPORT2 { 00373 DWORD dwSize; 00374 DWORD dwX; 00375 DWORD dwY; 00376 DWORD dwWidth; 00377 DWORD dwHeight; 00378 D3DVALUE dvClipX; 00379 D3DVALUE dvClipY; 00380 D3DVALUE dvClipWidth; 00381 D3DVALUE dvClipHeight; 00382 D3DVALUE dvMinZ; 00383 D3DVALUE dvMaxZ; 00384 } D3DVIEWPORT2, *LPD3DVIEWPORT2; 00385 00386 typedef struct _D3DVIEWPORT7 { 00387 DWORD dwX; 00388 DWORD dwY; 00389 DWORD dwWidth; 00390 DWORD dwHeight; 00391 D3DVALUE dvMinZ; 00392 D3DVALUE dvMaxZ; 00393 } D3DVIEWPORT7, *LPD3DVIEWPORT7; 00394 00395 #define D3DMAXUSERCLIPPLANES 32 00396 00397 #define D3DCLIPPLANE0 (1 << 0) 00398 #define D3DCLIPPLANE1 (1 << 1) 00399 #define D3DCLIPPLANE2 (1 << 2) 00400 #define D3DCLIPPLANE3 (1 << 3) 00401 #define D3DCLIPPLANE4 (1 << 4) 00402 #define D3DCLIPPLANE5 (1 << 5) 00403 00404 #define D3DCLIP_LEFT 0x00000001 00405 #define D3DCLIP_RIGHT 0x00000002 00406 #define D3DCLIP_TOP 0x00000004 00407 #define D3DCLIP_BOTTOM 0x00000008 00408 #define D3DCLIP_FRONT 0x00000010 00409 #define D3DCLIP_BACK 0x00000020 00410 #define D3DCLIP_GEN0 0x00000040 00411 #define D3DCLIP_GEN1 0x00000080 00412 #define D3DCLIP_GEN2 0x00000100 00413 #define D3DCLIP_GEN3 0x00000200 00414 #define D3DCLIP_GEN4 0x00000400 00415 #define D3DCLIP_GEN5 0x00000800 00416 00417 #define D3DSTATUS_CLIPUNIONLEFT D3DCLIP_LEFT 00418 #define D3DSTATUS_CLIPUNIONRIGHT D3DCLIP_RIGHT 00419 #define D3DSTATUS_CLIPUNIONTOP D3DCLIP_TOP 00420 #define D3DSTATUS_CLIPUNIONBOTTOM D3DCLIP_BOTTOM 00421 #define D3DSTATUS_CLIPUNIONFRONT D3DCLIP_FRONT 00422 #define D3DSTATUS_CLIPUNIONBACK D3DCLIP_BACK 00423 #define D3DSTATUS_CLIPUNIONGEN0 D3DCLIP_GEN0 00424 #define D3DSTATUS_CLIPUNIONGEN1 D3DCLIP_GEN1 00425 #define D3DSTATUS_CLIPUNIONGEN2 D3DCLIP_GEN2 00426 #define D3DSTATUS_CLIPUNIONGEN3 D3DCLIP_GEN3 00427 #define D3DSTATUS_CLIPUNIONGEN4 D3DCLIP_GEN4 00428 #define D3DSTATUS_CLIPUNIONGEN5 D3DCLIP_GEN5 00429 00430 #define D3DSTATUS_CLIPINTERSECTIONLEFT 0x00001000 00431 #define D3DSTATUS_CLIPINTERSECTIONRIGHT 0x00002000 00432 #define D3DSTATUS_CLIPINTERSECTIONTOP 0x00004000 00433 #define D3DSTATUS_CLIPINTERSECTIONBOTTOM 0x00008000 00434 #define D3DSTATUS_CLIPINTERSECTIONFRONT 0x00010000 00435 #define D3DSTATUS_CLIPINTERSECTIONBACK 0x00020000 00436 #define D3DSTATUS_CLIPINTERSECTIONGEN0 0x00040000 00437 #define D3DSTATUS_CLIPINTERSECTIONGEN1 0x00080000 00438 #define D3DSTATUS_CLIPINTERSECTIONGEN2 0x00100000 00439 #define D3DSTATUS_CLIPINTERSECTIONGEN3 0x00200000 00440 #define D3DSTATUS_CLIPINTERSECTIONGEN4 0x00400000 00441 #define D3DSTATUS_CLIPINTERSECTIONGEN5 0x00800000 00442 #define D3DSTATUS_ZNOTVISIBLE 0x01000000 00443 00444 #define D3DSTATUS_CLIPUNIONALL ( \ 00445 D3DSTATUS_CLIPUNIONLEFT | \ 00446 D3DSTATUS_CLIPUNIONRIGHT | \ 00447 D3DSTATUS_CLIPUNIONTOP | \ 00448 D3DSTATUS_CLIPUNIONBOTTOM | \ 00449 D3DSTATUS_CLIPUNIONFRONT | \ 00450 D3DSTATUS_CLIPUNIONBACK | \ 00451 D3DSTATUS_CLIPUNIONGEN0 | \ 00452 D3DSTATUS_CLIPUNIONGEN1 | \ 00453 D3DSTATUS_CLIPUNIONGEN2 | \ 00454 D3DSTATUS_CLIPUNIONGEN3 | \ 00455 D3DSTATUS_CLIPUNIONGEN4 | \ 00456 D3DSTATUS_CLIPUNIONGEN5 \ 00457 ) 00458 00459 #define D3DSTATUS_CLIPINTERSECTIONALL ( \ 00460 D3DSTATUS_CLIPINTERSECTIONLEFT | \ 00461 D3DSTATUS_CLIPINTERSECTIONRIGHT | \ 00462 D3DSTATUS_CLIPINTERSECTIONTOP | \ 00463 D3DSTATUS_CLIPINTERSECTIONBOTTOM | \ 00464 D3DSTATUS_CLIPINTERSECTIONFRONT | \ 00465 D3DSTATUS_CLIPINTERSECTIONBACK | \ 00466 D3DSTATUS_CLIPINTERSECTIONGEN0 | \ 00467 D3DSTATUS_CLIPINTERSECTIONGEN1 | \ 00468 D3DSTATUS_CLIPINTERSECTIONGEN2 | \ 00469 D3DSTATUS_CLIPINTERSECTIONGEN3 | \ 00470 D3DSTATUS_CLIPINTERSECTIONGEN4 | \ 00471 D3DSTATUS_CLIPINTERSECTIONGEN5 \ 00472 ) 00473 00474 #define D3DSTATUS_DEFAULT ( \ 00475 D3DSTATUS_CLIPINTERSECTIONALL | \ 00476 D3DSTATUS_ZNOTVISIBLE) 00477 00478 #define D3DTRANSFORM_CLIPPED 0x00000001 00479 #define D3DTRANSFORM_UNCLIPPED 0x00000002 00480 00481 typedef struct _D3DTRANSFORMDATA { 00482 DWORD dwSize; 00483 LPVOID lpIn; 00484 DWORD dwInSize; 00485 LPVOID lpOut; 00486 DWORD dwOutSize; 00487 LPD3DHVERTEX lpHOut; 00488 DWORD dwClip; 00489 DWORD dwClipIntersection; 00490 DWORD dwClipUnion; 00491 D3DRECT drExtent; 00492 } D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA; 00493 00494 typedef struct _D3DLIGHTINGELEMENT { 00495 D3DVECTOR dvPosition; 00496 D3DVECTOR dvNormal; 00497 } D3DLIGHTINGELEMENT, *LPD3DLIGHTINGELEMENT; 00498 00499 typedef struct _D3DMATERIAL { 00500 DWORD dwSize; 00501 union { 00502 D3DCOLORVALUE diffuse; 00503 D3DCOLORVALUE dcvDiffuse; 00504 } DUMMYUNIONNAME; 00505 union { 00506 D3DCOLORVALUE ambient; 00507 D3DCOLORVALUE dcvAmbient; 00508 } DUMMYUNIONNAME1; 00509 union { 00510 D3DCOLORVALUE specular; 00511 D3DCOLORVALUE dcvSpecular; 00512 } DUMMYUNIONNAME2; 00513 union { 00514 D3DCOLORVALUE emissive; 00515 D3DCOLORVALUE dcvEmissive; 00516 } DUMMYUNIONNAME3; 00517 union { 00518 D3DVALUE power; 00519 D3DVALUE dvPower; 00520 } DUMMYUNIONNAME4; 00521 D3DTEXTUREHANDLE hTexture; 00522 DWORD dwRampSize; 00523 } D3DMATERIAL, *LPD3DMATERIAL; 00524 00525 typedef struct _D3DMATERIAL7 { 00526 union { 00527 D3DCOLORVALUE diffuse; 00528 D3DCOLORVALUE dcvDiffuse; 00529 } DUMMYUNIONNAME; 00530 union { 00531 D3DCOLORVALUE ambient; 00532 D3DCOLORVALUE dcvAmbient; 00533 } DUMMYUNIONNAME1; 00534 union { 00535 D3DCOLORVALUE specular; 00536 D3DCOLORVALUE dcvSpecular; 00537 } DUMMYUNIONNAME2; 00538 union { 00539 D3DCOLORVALUE emissive; 00540 D3DCOLORVALUE dcvEmissive; 00541 } DUMMYUNIONNAME3; 00542 union { 00543 D3DVALUE power; 00544 D3DVALUE dvPower; 00545 } DUMMYUNIONNAME4; 00546 } D3DMATERIAL7, *LPD3DMATERIAL7; 00547 00548 #if (DIRECT3D_VERSION < 0x0800) 00549 00550 typedef enum { 00551 D3DLIGHT_POINT = 1, 00552 D3DLIGHT_SPOT = 2, 00553 D3DLIGHT_DIRECTIONAL = 3, 00554 D3DLIGHT_PARALLELPOINT = 4, 00555 D3DLIGHT_GLSPOT = 5, 00556 D3DLIGHT_FORCE_DWORD = 0x7fffffff 00557 } D3DLIGHTTYPE; 00558 00559 #endif 00560 00561 typedef struct _D3DLIGHT { 00562 DWORD dwSize; 00563 D3DLIGHTTYPE dltType; 00564 D3DCOLORVALUE dcvColor; 00565 D3DVECTOR dvPosition; 00566 D3DVECTOR dvDirection; 00567 D3DVALUE dvRange; 00568 D3DVALUE dvFalloff; 00569 D3DVALUE dvAttenuation0; 00570 D3DVALUE dvAttenuation1; 00571 D3DVALUE dvAttenuation2; 00572 D3DVALUE dvTheta; 00573 D3DVALUE dvPhi; 00574 } D3DLIGHT,*LPD3DLIGHT; 00575 00576 typedef struct _D3DLIGHT7 { 00577 D3DLIGHTTYPE dltType; 00578 D3DCOLORVALUE dcvDiffuse; 00579 D3DCOLORVALUE dcvSpecular; 00580 D3DCOLORVALUE dcvAmbient; 00581 D3DVECTOR dvPosition; 00582 D3DVECTOR dvDirection; 00583 D3DVALUE dvRange; 00584 D3DVALUE dvFalloff; 00585 D3DVALUE dvAttenuation0; 00586 D3DVALUE dvAttenuation1; 00587 D3DVALUE dvAttenuation2; 00588 D3DVALUE dvTheta; 00589 D3DVALUE dvPhi; 00590 } D3DLIGHT7, *LPD3DLIGHT7; 00591 00592 #define D3DLIGHT_ACTIVE 0x00000001 00593 #define D3DLIGHT_NO_SPECULAR 0x00000002 00594 #define D3DLIGHT_ALL (D3DLIGHT_ACTIVE | D3DLIGHT_NO_SPECULAR) /* 0x3 */ 00595 00596 #define D3DLIGHT_RANGE_MAX ((float)sqrt(FLT_MAX)) 00597 00598 typedef struct _D3DLIGHT2 { 00599 DWORD dwSize; 00600 D3DLIGHTTYPE dltType; 00601 D3DCOLORVALUE dcvColor; 00602 D3DVECTOR dvPosition; 00603 D3DVECTOR dvDirection; 00604 D3DVALUE dvRange; 00605 D3DVALUE dvFalloff; 00606 D3DVALUE dvAttenuation0; 00607 D3DVALUE dvAttenuation1; 00608 D3DVALUE dvAttenuation2; 00609 D3DVALUE dvTheta; 00610 D3DVALUE dvPhi; 00611 DWORD dwFlags; 00612 } D3DLIGHT2, *LPD3DLIGHT2; 00613 00614 typedef struct _D3DLIGHTDATA { 00615 DWORD dwSize; 00616 LPD3DLIGHTINGELEMENT lpIn; 00617 DWORD dwInSize; 00618 LPD3DTLVERTEX lpOut; 00619 DWORD dwOutSize; 00620 } D3DLIGHTDATA, *LPD3DLIGHTDATA; 00621 00622 #define D3DCOLOR_MONO 1 00623 #define D3DCOLOR_RGB 2 00624 00625 typedef DWORD D3DCOLORMODEL; 00626 00627 #ifndef D3DCLEAR_TARGET 00628 #define D3DCLEAR_TARGET 0x00000001 00629 #endif 00630 00631 #ifndef D3DCLEAR_ZBUFFER 00632 #define D3DCLEAR_ZBUFFER 0x00000002 00633 #endif 00634 00635 #ifndef D3DCLEAR_STENCIL 00636 #define D3DCLEAR_STENCIL 0x00000004 00637 #endif 00638 00639 typedef enum _D3DOPCODE { 00640 D3DOP_POINT = 1, 00641 D3DOP_LINE = 2, 00642 D3DOP_TRIANGLE = 3, 00643 D3DOP_MATRIXLOAD = 4, 00644 D3DOP_MATRIXMULTIPLY = 5, 00645 D3DOP_STATETRANSFORM = 6, 00646 D3DOP_STATELIGHT = 7, 00647 D3DOP_STATERENDER = 8, 00648 D3DOP_PROCESSVERTICES = 9, 00649 D3DOP_TEXTURELOAD = 10, 00650 D3DOP_EXIT = 11, 00651 D3DOP_BRANCHFORWARD = 12, 00652 D3DOP_SPAN = 13, 00653 D3DOP_SETSTATUS = 14, 00654 00655 D3DOP_FORCE_DWORD = 0x7fffffff 00656 } D3DOPCODE; 00657 00658 typedef struct _D3DINSTRUCTION { 00659 BYTE bOpcode; 00660 BYTE bSize; 00661 WORD wCount; 00662 } D3DINSTRUCTION, *LPD3DINSTRUCTION; 00663 00664 typedef struct _D3DTEXTURELOAD { 00665 D3DTEXTUREHANDLE hDestTexture; 00666 D3DTEXTUREHANDLE hSrcTexture; 00667 } D3DTEXTURELOAD, *LPD3DTEXTURELOAD; 00668 00669 typedef struct _D3DPICKRECORD { 00670 BYTE bOpcode; 00671 BYTE bPad; 00672 DWORD dwOffset; 00673 D3DVALUE dvZ; 00674 } D3DPICKRECORD, *LPD3DPICKRECORD; 00675 00676 #if (DIRECT3D_VERSION < 0x0800) 00677 00678 typedef enum { 00679 D3DSHADE_FLAT = 1, 00680 D3DSHADE_GOURAUD = 2, 00681 D3DSHADE_PHONG = 3, 00682 D3DSHADE_FORCE_DWORD = 0x7fffffff 00683 } D3DSHADEMODE; 00684 00685 typedef enum { 00686 D3DFILL_POINT = 1, 00687 D3DFILL_WIREFRAME = 2, 00688 D3DFILL_SOLID = 3, 00689 D3DFILL_FORCE_DWORD = 0x7fffffff 00690 } D3DFILLMODE; 00691 00692 typedef struct _D3DLINEPATTERN { 00693 WORD wRepeatFactor; 00694 WORD wLinePattern; 00695 } D3DLINEPATTERN; 00696 00697 #endif /* (DIRECT3D_VERSION < 0x0800) */ 00698 00699 typedef enum { 00700 D3DFILTER_NEAREST = 1, 00701 D3DFILTER_LINEAR = 2, 00702 D3DFILTER_MIPNEAREST = 3, 00703 D3DFILTER_MIPLINEAR = 4, 00704 D3DFILTER_LINEARMIPNEAREST = 5, 00705 D3DFILTER_LINEARMIPLINEAR = 6, 00706 D3DFILTER_FORCE_DWORD = 0x7fffffff 00707 } D3DTEXTUREFILTER; 00708 00709 #if (DIRECT3D_VERSION < 0x0800) 00710 00711 typedef enum { 00712 D3DBLEND_ZERO = 1, 00713 D3DBLEND_ONE = 2, 00714 D3DBLEND_SRCCOLOR = 3, 00715 D3DBLEND_INVSRCCOLOR = 4, 00716 D3DBLEND_SRCALPHA = 5, 00717 D3DBLEND_INVSRCALPHA = 6, 00718 D3DBLEND_DESTALPHA = 7, 00719 D3DBLEND_INVDESTALPHA = 8, 00720 D3DBLEND_DESTCOLOR = 9, 00721 D3DBLEND_INVDESTCOLOR = 10, 00722 D3DBLEND_SRCALPHASAT = 11, 00723 D3DBLEND_BOTHSRCALPHA = 12, 00724 D3DBLEND_BOTHINVSRCALPHA = 13, 00725 D3DBLEND_FORCE_DWORD = 0x7fffffff 00726 } D3DBLEND; 00727 00728 #endif /* (DIRECT3D_VERSION < 0x0800) */ 00729 00730 00731 typedef enum { 00732 D3DTBLEND_DECAL = 1, 00733 D3DTBLEND_MODULATE = 2, 00734 D3DTBLEND_DECALALPHA = 3, 00735 D3DTBLEND_MODULATEALPHA = 4, 00736 D3DTBLEND_DECALMASK = 5, 00737 D3DTBLEND_MODULATEMASK = 6, 00738 D3DTBLEND_COPY = 7, 00739 D3DTBLEND_ADD = 8, 00740 D3DTBLEND_FORCE_DWORD = 0x7fffffff 00741 } D3DTEXTUREBLEND; 00742 00743 00744 #if (DIRECT3D_VERSION < 0x0800) 00745 00746 typedef enum _D3DTEXTUREADDRESS { 00747 D3DTADDRESS_WRAP = 1, 00748 D3DTADDRESS_MIRROR = 2, 00749 D3DTADDRESS_CLAMP = 3, 00750 D3DTADDRESS_BORDER = 4, 00751 D3DTADDRESS_FORCE_DWORD = 0x7fffffff 00752 } D3DTEXTUREADDRESS; 00753 00754 typedef enum { 00755 D3DCULL_NONE = 1, 00756 D3DCULL_CW = 2, 00757 D3DCULL_CCW = 3, 00758 D3DCULL_FORCE_DWORD = 0x7fffffff 00759 } D3DCULL; 00760 00761 typedef enum { 00762 D3DCMP_NEVER = 1, 00763 D3DCMP_LESS = 2, 00764 D3DCMP_EQUAL = 3, 00765 D3DCMP_LESSEQUAL = 4, 00766 D3DCMP_GREATER = 5, 00767 D3DCMP_NOTEQUAL = 6, 00768 D3DCMP_GREATEREQUAL = 7, 00769 D3DCMP_ALWAYS = 8, 00770 D3DCMP_FORCE_DWORD = 0x7fffffff 00771 } D3DCMPFUNC; 00772 00773 typedef enum _D3DSTENCILOP { 00774 D3DSTENCILOP_KEEP = 1, 00775 D3DSTENCILOP_ZERO = 2, 00776 D3DSTENCILOP_REPLACE = 3, 00777 D3DSTENCILOP_INCRSAT = 4, 00778 D3DSTENCILOP_DECRSAT = 5, 00779 D3DSTENCILOP_INVERT = 6, 00780 D3DSTENCILOP_INCR = 7, 00781 D3DSTENCILOP_DECR = 8, 00782 D3DSTENCILOP_FORCE_DWORD = 0x7fffffff 00783 } D3DSTENCILOP; 00784 00785 typedef enum _D3DFOGMODE { 00786 D3DFOG_NONE = 0, 00787 D3DFOG_EXP = 1, 00788 D3DFOG_EXP2 = 2, 00789 D3DFOG_LINEAR = 3, 00790 D3DFOG_FORCE_DWORD = 0x7fffffff 00791 } D3DFOGMODE; 00792 00793 typedef enum _D3DZBUFFERTYPE { 00794 D3DZB_FALSE = 0, 00795 D3DZB_TRUE = 1, 00796 D3DZB_USEW = 2, 00797 D3DZB_FORCE_DWORD = 0x7fffffff 00798 } D3DZBUFFERTYPE; 00799 00800 #endif /* (DIRECT3D_VERSION < 0x0800) */ 00801 00802 typedef enum _D3DANTIALIASMODE { 00803 D3DANTIALIAS_NONE = 0, 00804 D3DANTIALIAS_SORTDEPENDENT = 1, 00805 D3DANTIALIAS_SORTINDEPENDENT = 2, 00806 D3DANTIALIAS_FORCE_DWORD = 0x7fffffff 00807 } D3DANTIALIASMODE; 00808 00809 typedef enum { 00810 D3DVT_VERTEX = 1, 00811 D3DVT_LVERTEX = 2, 00812 D3DVT_TLVERTEX = 3, 00813 D3DVT_FORCE_DWORD = 0x7fffffff 00814 } D3DVERTEXTYPE; 00815 00816 #if (DIRECT3D_VERSION < 0x0800) 00817 00818 typedef enum { 00819 D3DPT_POINTLIST = 1, 00820 D3DPT_LINELIST = 2, 00821 D3DPT_LINESTRIP = 3, 00822 D3DPT_TRIANGLELIST = 4, 00823 D3DPT_TRIANGLESTRIP = 5, 00824 D3DPT_TRIANGLEFAN = 6, 00825 D3DPT_FORCE_DWORD = 0x7fffffff 00826 } D3DPRIMITIVETYPE; 00827 00828 #endif /* (DIRECT3D_VERSION < 0x0800) */ 00829 00830 #define D3DSTATE_OVERRIDE_BIAS 256 00831 00832 #define D3DSTATE_OVERRIDE(type) (D3DRENDERSTATETYPE)(((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS)) 00833 00834 #if (DIRECT3D_VERSION < 0x0800) 00835 00836 typedef enum _D3DTRANSFORMSTATETYPE { 00837 D3DTRANSFORMSTATE_WORLD = 1, 00838 D3DTRANSFORMSTATE_VIEW = 2, 00839 D3DTRANSFORMSTATE_PROJECTION = 3, 00840 D3DTRANSFORMSTATE_WORLD1 = 4, 00841 D3DTRANSFORMSTATE_WORLD2 = 5, 00842 D3DTRANSFORMSTATE_WORLD3 = 6, 00843 D3DTRANSFORMSTATE_TEXTURE0 = 16, 00844 D3DTRANSFORMSTATE_TEXTURE1 = 17, 00845 D3DTRANSFORMSTATE_TEXTURE2 = 18, 00846 D3DTRANSFORMSTATE_TEXTURE3 = 19, 00847 D3DTRANSFORMSTATE_TEXTURE4 = 20, 00848 D3DTRANSFORMSTATE_TEXTURE5 = 21, 00849 D3DTRANSFORMSTATE_TEXTURE6 = 22, 00850 D3DTRANSFORMSTATE_TEXTURE7 = 23, 00851 D3DTRANSFORMSTATE_FORCE_DWORD = 0x7fffffff 00852 } D3DTRANSFORMSTATETYPE; 00853 00854 #endif /* (DIRECT3D_VERSION < 0x0800) */ 00855 00856 typedef enum { 00857 D3DLIGHTSTATE_MATERIAL = 1, 00858 D3DLIGHTSTATE_AMBIENT = 2, 00859 D3DLIGHTSTATE_COLORMODEL = 3, 00860 D3DLIGHTSTATE_FOGMODE = 4, 00861 D3DLIGHTSTATE_FOGSTART = 5, 00862 D3DLIGHTSTATE_FOGEND = 6, 00863 D3DLIGHTSTATE_FOGDENSITY = 7, 00864 D3DLIGHTSTATE_COLORVERTEX = 8, 00865 D3DLIGHTSTATE_FORCE_DWORD = 0x7fffffff 00866 } D3DLIGHTSTATETYPE; 00867 00868 #if (DIRECT3D_VERSION < 0x0800) 00869 00870 typedef enum { 00871 D3DRENDERSTATE_TEXTUREHANDLE = 1, 00872 D3DRENDERSTATE_ANTIALIAS = 2, 00873 D3DRENDERSTATE_TEXTUREADDRESS = 3, 00874 D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4, 00875 D3DRENDERSTATE_WRAPU = 5, 00876 D3DRENDERSTATE_WRAPV = 6, 00877 D3DRENDERSTATE_ZENABLE = 7, 00878 D3DRENDERSTATE_FILLMODE = 8, 00879 D3DRENDERSTATE_SHADEMODE = 9, 00880 D3DRENDERSTATE_LINEPATTERN = 10, 00881 D3DRENDERSTATE_MONOENABLE = 11, 00882 D3DRENDERSTATE_ROP2 = 12, 00883 D3DRENDERSTATE_PLANEMASK = 13, 00884 D3DRENDERSTATE_ZWRITEENABLE = 14, 00885 D3DRENDERSTATE_ALPHATESTENABLE = 15, 00886 D3DRENDERSTATE_LASTPIXEL = 16, 00887 D3DRENDERSTATE_TEXTUREMAG = 17, 00888 D3DRENDERSTATE_TEXTUREMIN = 18, 00889 D3DRENDERSTATE_SRCBLEND = 19, 00890 D3DRENDERSTATE_DESTBLEND = 20, 00891 D3DRENDERSTATE_TEXTUREMAPBLEND = 21, 00892 D3DRENDERSTATE_CULLMODE = 22, 00893 D3DRENDERSTATE_ZFUNC = 23, 00894 D3DRENDERSTATE_ALPHAREF = 24, 00895 D3DRENDERSTATE_ALPHAFUNC = 25, 00896 D3DRENDERSTATE_DITHERENABLE = 26, 00897 D3DRENDERSTATE_ALPHABLENDENABLE = 27, 00898 D3DRENDERSTATE_FOGENABLE = 28, 00899 D3DRENDERSTATE_SPECULARENABLE = 29, 00900 D3DRENDERSTATE_ZVISIBLE = 30, 00901 D3DRENDERSTATE_SUBPIXEL = 31, 00902 D3DRENDERSTATE_SUBPIXELX = 32, 00903 D3DRENDERSTATE_STIPPLEDALPHA = 33, 00904 D3DRENDERSTATE_FOGCOLOR = 34, 00905 D3DRENDERSTATE_FOGTABLEMODE = 35, 00906 D3DRENDERSTATE_FOGTABLESTART = 36, 00907 D3DRENDERSTATE_FOGTABLEEND = 37, 00908 D3DRENDERSTATE_FOGTABLEDENSITY = 38, 00909 D3DRENDERSTATE_FOGSTART = 36, 00910 D3DRENDERSTATE_FOGEND = 37, 00911 D3DRENDERSTATE_FOGDENSITY = 38, 00912 D3DRENDERSTATE_STIPPLEENABLE = 39, 00913 D3DRENDERSTATE_EDGEANTIALIAS = 40, 00914 D3DRENDERSTATE_COLORKEYENABLE = 41, 00915 D3DRENDERSTATE_BORDERCOLOR = 43, 00916 D3DRENDERSTATE_TEXTUREADDRESSU = 44, 00917 D3DRENDERSTATE_TEXTUREADDRESSV = 45, 00918 D3DRENDERSTATE_MIPMAPLODBIAS = 46, 00919 D3DRENDERSTATE_ZBIAS = 47, 00920 D3DRENDERSTATE_RANGEFOGENABLE = 48, 00921 D3DRENDERSTATE_ANISOTROPY = 49, 00922 D3DRENDERSTATE_FLUSHBATCH = 50, 00923 D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT = 51, 00924 00925 D3DRENDERSTATE_STENCILENABLE = 52, 00926 D3DRENDERSTATE_STENCILFAIL = 53, 00927 D3DRENDERSTATE_STENCILZFAIL = 54, 00928 D3DRENDERSTATE_STENCILPASS = 55, 00929 D3DRENDERSTATE_STENCILFUNC = 56, 00930 D3DRENDERSTATE_STENCILREF = 57, 00931 D3DRENDERSTATE_STENCILMASK = 58, 00932 D3DRENDERSTATE_STENCILWRITEMASK = 59, 00933 D3DRENDERSTATE_TEXTUREFACTOR = 60, 00934 00935 D3DRENDERSTATE_STIPPLEPATTERN00 = 64, 00936 D3DRENDERSTATE_STIPPLEPATTERN01 = 65, 00937 D3DRENDERSTATE_STIPPLEPATTERN02 = 66, 00938 D3DRENDERSTATE_STIPPLEPATTERN03 = 67, 00939 D3DRENDERSTATE_STIPPLEPATTERN04 = 68, 00940 D3DRENDERSTATE_STIPPLEPATTERN05 = 69, 00941 D3DRENDERSTATE_STIPPLEPATTERN06 = 70, 00942 D3DRENDERSTATE_STIPPLEPATTERN07 = 71, 00943 D3DRENDERSTATE_STIPPLEPATTERN08 = 72, 00944 D3DRENDERSTATE_STIPPLEPATTERN09 = 73, 00945 D3DRENDERSTATE_STIPPLEPATTERN10 = 74, 00946 D3DRENDERSTATE_STIPPLEPATTERN11 = 75, 00947 D3DRENDERSTATE_STIPPLEPATTERN12 = 76, 00948 D3DRENDERSTATE_STIPPLEPATTERN13 = 77, 00949 D3DRENDERSTATE_STIPPLEPATTERN14 = 78, 00950 D3DRENDERSTATE_STIPPLEPATTERN15 = 79, 00951 D3DRENDERSTATE_STIPPLEPATTERN16 = 80, 00952 D3DRENDERSTATE_STIPPLEPATTERN17 = 81, 00953 D3DRENDERSTATE_STIPPLEPATTERN18 = 82, 00954 D3DRENDERSTATE_STIPPLEPATTERN19 = 83, 00955 D3DRENDERSTATE_STIPPLEPATTERN20 = 84, 00956 D3DRENDERSTATE_STIPPLEPATTERN21 = 85, 00957 D3DRENDERSTATE_STIPPLEPATTERN22 = 86, 00958 D3DRENDERSTATE_STIPPLEPATTERN23 = 87, 00959 D3DRENDERSTATE_STIPPLEPATTERN24 = 88, 00960 D3DRENDERSTATE_STIPPLEPATTERN25 = 89, 00961 D3DRENDERSTATE_STIPPLEPATTERN26 = 90, 00962 D3DRENDERSTATE_STIPPLEPATTERN27 = 91, 00963 D3DRENDERSTATE_STIPPLEPATTERN28 = 92, 00964 D3DRENDERSTATE_STIPPLEPATTERN29 = 93, 00965 D3DRENDERSTATE_STIPPLEPATTERN30 = 94, 00966 D3DRENDERSTATE_STIPPLEPATTERN31 = 95, 00967 00968 D3DRENDERSTATE_WRAP0 = 128, 00969 D3DRENDERSTATE_WRAP1 = 129, 00970 D3DRENDERSTATE_WRAP2 = 130, 00971 D3DRENDERSTATE_WRAP3 = 131, 00972 D3DRENDERSTATE_WRAP4 = 132, 00973 D3DRENDERSTATE_WRAP5 = 133, 00974 D3DRENDERSTATE_WRAP6 = 134, 00975 D3DRENDERSTATE_WRAP7 = 135, 00976 D3DRENDERSTATE_CLIPPING = 136, 00977 D3DRENDERSTATE_LIGHTING = 137, 00978 D3DRENDERSTATE_EXTENTS = 138, 00979 D3DRENDERSTATE_AMBIENT = 139, 00980 D3DRENDERSTATE_FOGVERTEXMODE = 140, 00981 D3DRENDERSTATE_COLORVERTEX = 141, 00982 D3DRENDERSTATE_LOCALVIEWER = 142, 00983 D3DRENDERSTATE_NORMALIZENORMALS = 143, 00984 D3DRENDERSTATE_COLORKEYBLENDENABLE = 144, 00985 D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145, 00986 D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146, 00987 D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147, 00988 D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148, 00989 D3DRENDERSTATE_VERTEXBLEND = 151, 00990 D3DRENDERSTATE_CLIPPLANEENABLE = 152, 00991 00992 D3DRENDERSTATE_FORCE_DWORD = 0x7fffffff 00993 00994 /* FIXME: We have some retired values that are being reused for DirectX 7 */ 00995 } D3DRENDERSTATETYPE; 00996 00997 typedef enum _D3DMATERIALCOLORSOURCE 00998 { 00999 D3DMCS_MATERIAL = 0, 01000 D3DMCS_COLOR1 = 1, 01001 D3DMCS_COLOR2 = 2, 01002 D3DMCS_FORCE_DWORD = 0x7fffffff 01003 } D3DMATERIALCOLORSOURCE; 01004 01005 #define D3DRENDERSTATE_BLENDENABLE D3DRENDERSTATE_ALPHABLENDENABLE 01006 #define D3DRENDERSTATE_WRAPBIAS 128UL 01007 #define D3DWRAP_U 0x00000001L 01008 #define D3DWRAP_V 0x00000002L 01009 01010 #define D3DWRAPCOORD_0 0x00000001L 01011 #define D3DWRAPCOORD_1 0x00000002L 01012 #define D3DWRAPCOORD_2 0x00000004L 01013 #define D3DWRAPCOORD_3 0x00000008L 01014 01015 #endif /* (DIRECT3D_VERSION < 0x0800) */ 01016 01017 #define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y)) 01018 01019 typedef struct _D3DSTATE { 01020 union { 01021 D3DTRANSFORMSTATETYPE dtstTransformStateType; 01022 D3DLIGHTSTATETYPE dlstLightStateType; 01023 D3DRENDERSTATETYPE drstRenderStateType; 01024 } DUMMYUNIONNAME1; 01025 union { 01026 DWORD dwArg[1]; 01027 D3DVALUE dvArg[1]; 01028 } DUMMYUNIONNAME2; 01029 } D3DSTATE, *LPD3DSTATE; 01030 01031 typedef struct _D3DMATRIXLOAD { 01032 D3DMATRIXHANDLE hDestMatrix; 01033 D3DMATRIXHANDLE hSrcMatrix; 01034 } D3DMATRIXLOAD, *LPD3DMATRIXLOAD; 01035 01036 typedef struct _D3DMATRIXMULTIPLY { 01037 D3DMATRIXHANDLE hDestMatrix; 01038 D3DMATRIXHANDLE hSrcMatrix1; 01039 D3DMATRIXHANDLE hSrcMatrix2; 01040 } D3DMATRIXMULTIPLY, *LPD3DMATRIXMULTIPLY; 01041 01042 typedef struct _D3DPROCESSVERTICES { 01043 DWORD dwFlags; 01044 WORD wStart; 01045 WORD wDest; 01046 DWORD dwCount; 01047 DWORD dwReserved; 01048 } D3DPROCESSVERTICES, *LPD3DPROCESSVERTICES; 01049 01050 #define D3DPROCESSVERTICES_TRANSFORMLIGHT 0x00000000L 01051 #define D3DPROCESSVERTICES_TRANSFORM 0x00000001L 01052 #define D3DPROCESSVERTICES_COPY 0x00000002L 01053 #define D3DPROCESSVERTICES_OPMASK 0x00000007L 01054 01055 #define D3DPROCESSVERTICES_UPDATEEXTENTS 0x00000008L 01056 #define D3DPROCESSVERTICES_NOCOLOR 0x00000010L 01057 01058 #if (DIRECT3D_VERSION < 0x0800) 01059 01060 typedef enum _D3DTEXTURESTAGESTATETYPE 01061 { 01062 D3DTSS_COLOROP = 1, 01063 D3DTSS_COLORARG1 = 2, 01064 D3DTSS_COLORARG2 = 3, 01065 D3DTSS_ALPHAOP = 4, 01066 D3DTSS_ALPHAARG1 = 5, 01067 D3DTSS_ALPHAARG2 = 6, 01068 D3DTSS_BUMPENVMAT00 = 7, 01069 D3DTSS_BUMPENVMAT01 = 8, 01070 D3DTSS_BUMPENVMAT10 = 9, 01071 D3DTSS_BUMPENVMAT11 = 10, 01072 D3DTSS_TEXCOORDINDEX = 11, 01073 D3DTSS_ADDRESS = 12, 01074 D3DTSS_ADDRESSU = 13, 01075 D3DTSS_ADDRESSV = 14, 01076 D3DTSS_BORDERCOLOR = 15, 01077 D3DTSS_MAGFILTER = 16, 01078 D3DTSS_MINFILTER = 17, 01079 D3DTSS_MIPFILTER = 18, 01080 D3DTSS_MIPMAPLODBIAS = 19, 01081 D3DTSS_MAXMIPLEVEL = 20, 01082 D3DTSS_MAXANISOTROPY = 21, 01083 D3DTSS_BUMPENVLSCALE = 22, 01084 D3DTSS_BUMPENVLOFFSET = 23, 01085 D3DTSS_TEXTURETRANSFORMFLAGS = 24, 01086 D3DTSS_FORCE_DWORD = 0x7fffffff 01087 } D3DTEXTURESTAGESTATETYPE; 01088 01089 #define D3DTSS_TCI_PASSTHRU 0x00000000 01090 #define D3DTSS_TCI_CAMERASPACENORMAL 0x00010000 01091 #define D3DTSS_TCI_CAMERASPACEPOSITION 0x00020000 01092 #define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x00030000 01093 01094 typedef enum _D3DTEXTUREOP 01095 { 01096 D3DTOP_DISABLE = 1, 01097 D3DTOP_SELECTARG1 = 2, 01098 D3DTOP_SELECTARG2 = 3, 01099 01100 D3DTOP_MODULATE = 4, 01101 D3DTOP_MODULATE2X = 5, 01102 D3DTOP_MODULATE4X = 6, 01103 01104 D3DTOP_ADD = 7, 01105 D3DTOP_ADDSIGNED = 8, 01106 D3DTOP_ADDSIGNED2X = 9, 01107 D3DTOP_SUBTRACT = 10, 01108 D3DTOP_ADDSMOOTH = 11, 01109 01110 D3DTOP_BLENDDIFFUSEALPHA = 12, 01111 D3DTOP_BLENDTEXTUREALPHA = 13, 01112 D3DTOP_BLENDFACTORALPHA = 14, 01113 D3DTOP_BLENDTEXTUREALPHAPM = 15, 01114 D3DTOP_BLENDCURRENTALPHA = 16, 01115 01116 D3DTOP_PREMODULATE = 17, 01117 D3DTOP_MODULATEALPHA_ADDCOLOR = 18, 01118 D3DTOP_MODULATECOLOR_ADDALPHA = 19, 01119 D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, 01120 D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, 01121 01122 D3DTOP_BUMPENVMAP = 22, 01123 D3DTOP_BUMPENVMAPLUMINANCE = 23, 01124 D3DTOP_DOTPRODUCT3 = 24, 01125 01126 D3DTOP_FORCE_DWORD = 0x7fffffff 01127 } D3DTEXTUREOP; 01128 01129 #define D3DTA_SELECTMASK 0x0000000f 01130 #define D3DTA_DIFFUSE 0x00000000 01131 #define D3DTA_CURRENT 0x00000001 01132 #define D3DTA_TEXTURE 0x00000002 01133 #define D3DTA_TFACTOR 0x00000003 01134 #define D3DTA_SPECULAR 0x00000004 01135 #define D3DTA_COMPLEMENT 0x00000010 01136 #define D3DTA_ALPHAREPLICATE 0x00000020 01137 01138 #endif /* (DIRECT3D_VERSION < 0x0800) */ 01139 01140 typedef enum _D3DTEXTUREMAGFILTER 01141 { 01142 D3DTFG_POINT = 1, 01143 D3DTFG_LINEAR = 2, 01144 D3DTFG_FLATCUBIC = 3, 01145 D3DTFG_GAUSSIANCUBIC = 4, 01146 D3DTFG_ANISOTROPIC = 5, 01147 D3DTFG_FORCE_DWORD = 0x7fffffff 01148 } D3DTEXTUREMAGFILTER; 01149 01150 typedef enum _D3DTEXTUREMINFILTER 01151 { 01152 D3DTFN_POINT = 1, 01153 D3DTFN_LINEAR = 2, 01154 D3DTFN_ANISOTROPIC = 3, 01155 D3DTFN_FORCE_DWORD = 0x7fffffff 01156 } D3DTEXTUREMINFILTER; 01157 01158 typedef enum _D3DTEXTUREMIPFILTER 01159 { 01160 D3DTFP_NONE = 1, 01161 D3DTFP_POINT = 2, 01162 D3DTFP_LINEAR = 3, 01163 D3DTFP_FORCE_DWORD = 0x7fffffff 01164 } D3DTEXTUREMIPFILTER; 01165 01166 #define D3DTRIFLAG_START 0x00000000L 01167 #define D3DTRIFLAG_STARTFLAT(len) (len) 01168 #define D3DTRIFLAG_ODD 0x0000001eL 01169 #define D3DTRIFLAG_EVEN 0x0000001fL 01170 01171 #define D3DTRIFLAG_EDGEENABLE1 0x00000100L 01172 #define D3DTRIFLAG_EDGEENABLE2 0x00000200L 01173 #define D3DTRIFLAG_EDGEENABLE3 0x00000400L 01174 #define D3DTRIFLAG_EDGEENABLETRIANGLE \ 01175 (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3) 01176 01177 typedef struct _D3DTRIANGLE { 01178 union { 01179 WORD v1; 01180 WORD wV1; 01181 } DUMMYUNIONNAME1; 01182 union { 01183 WORD v2; 01184 WORD wV2; 01185 } DUMMYUNIONNAME2; 01186 union { 01187 WORD v3; 01188 WORD wV3; 01189 } DUMMYUNIONNAME3; 01190 WORD wFlags; 01191 } D3DTRIANGLE, *LPD3DTRIANGLE; 01192 01193 typedef struct _D3DLINE { 01194 union { 01195 WORD v1; 01196 WORD wV1; 01197 } DUMMYUNIONNAME1; 01198 union { 01199 WORD v2; 01200 WORD wV2; 01201 } DUMMYUNIONNAME2; 01202 } D3DLINE, *LPD3DLINE; 01203 01204 typedef struct _D3DSPAN { 01205 WORD wCount; 01206 WORD wFirst; 01207 } D3DSPAN, *LPD3DSPAN; 01208 01209 typedef struct _D3DPOINT { 01210 WORD wCount; 01211 WORD wFirst; 01212 } D3DPOINT, *LPD3DPOINT; 01213 01214 typedef struct _D3DBRANCH { 01215 DWORD dwMask; 01216 DWORD dwValue; 01217 BOOL bNegate; 01218 DWORD dwOffset; 01219 } D3DBRANCH, *LPD3DBRANCH; 01220 01221 typedef struct _D3DSTATUS { 01222 DWORD dwFlags; 01223 DWORD dwStatus; 01224 D3DRECT drExtent; 01225 } D3DSTATUS, *LPD3DSTATUS; 01226 01227 #define D3DSETSTATUS_STATUS 0x00000001L 01228 #define D3DSETSTATUS_EXTENTS 0x00000002L 01229 #define D3DSETSTATUS_ALL (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS) 01230 01231 typedef struct _D3DCLIPSTATUS { 01232 DWORD dwFlags; 01233 DWORD dwStatus; 01234 float minx, maxx; 01235 float miny, maxy; 01236 float minz, maxz; 01237 } D3DCLIPSTATUS, *LPD3DCLIPSTATUS; 01238 01239 #define D3DCLIPSTATUS_STATUS 0x00000001L 01240 #define D3DCLIPSTATUS_EXTENTS2 0x00000002L 01241 #define D3DCLIPSTATUS_EXTENTS3 0x00000004L 01242 01243 typedef struct { 01244 DWORD dwSize; 01245 DWORD dwTrianglesDrawn; 01246 DWORD dwLinesDrawn; 01247 DWORD dwPointsDrawn; 01248 DWORD dwSpansDrawn; 01249 DWORD dwVerticesProcessed; 01250 } D3DSTATS, *LPD3DSTATS; 01251 01252 #define D3DEXECUTE_CLIPPED 0x00000001l 01253 #define D3DEXECUTE_UNCLIPPED 0x00000002l 01254 01255 typedef struct _D3DEXECUTEDATA { 01256 DWORD dwSize; 01257 DWORD dwVertexOffset; 01258 DWORD dwVertexCount; 01259 DWORD dwInstructionOffset; 01260 DWORD dwInstructionLength; 01261 DWORD dwHVertexOffset; 01262 D3DSTATUS dsStatus; 01263 } D3DEXECUTEDATA, *LPD3DEXECUTEDATA; 01264 01265 #define D3DPAL_FREE 0x00 01266 #define D3DPAL_READONLY 0x40 01267 #define D3DPAL_RESERVED 0x80 01268 01269 typedef struct _D3DVERTEXBUFFERDESC { 01270 DWORD dwSize; 01271 DWORD dwCaps; 01272 DWORD dwFVF; 01273 DWORD dwNumVertices; 01274 } D3DVERTEXBUFFERDESC, *LPD3DVERTEXBUFFERDESC; 01275 01276 #define D3DVBCAPS_SYSTEMMEMORY 0x00000800l 01277 #define D3DVBCAPS_WRITEONLY 0x00010000l 01278 #define D3DVBCAPS_OPTIMIZED 0x80000000l 01279 #define D3DVBCAPS_DONOTCLIP 0x00000001l 01280 01281 #define D3DVOP_LIGHT (1 << 10) 01282 #define D3DVOP_TRANSFORM (1 << 0) 01283 #define D3DVOP_CLIP (1 << 2) 01284 #define D3DVOP_EXTENTS (1 << 3) 01285 01286 #if (DIRECT3D_VERSION < 0x0800) 01287 01288 #define D3DMAXNUMVERTICES ((1<<16) - 1) 01289 01290 #define D3DMAXNUMPRIMITIVES ((1<<16) - 1) 01291 01292 #define D3DPV_DONOTCOPYDATA (1 << 0) 01293 01294 #define D3DFVF_RESERVED0 0x001 01295 #define D3DFVF_POSITION_MASK 0x00E 01296 #define D3DFVF_XYZ 0x002 01297 #define D3DFVF_XYZRHW 0x004 01298 #define D3DFVF_XYZB1 0x006 01299 #define D3DFVF_XYZB2 0x008 01300 #define D3DFVF_XYZB3 0x00a 01301 #define D3DFVF_XYZB4 0x00c 01302 #define D3DFVF_XYZB5 0x00e 01303 01304 #define D3DFVF_NORMAL 0x010 01305 #define D3DFVF_RESERVED1 0x020 01306 #define D3DFVF_DIFFUSE 0x040 01307 #define D3DFVF_SPECULAR 0x080 01308 #define D3DFVF_TEXCOUNT_MASK 0xf00 01309 #define D3DFVF_TEXCOUNT_SHIFT 8 01310 #define D3DFVF_TEX0 0x000 01311 #define D3DFVF_TEX1 0x100 01312 #define D3DFVF_TEX2 0x200 01313 #define D3DFVF_TEX3 0x300 01314 #define D3DFVF_TEX4 0x400 01315 #define D3DFVF_TEX5 0x500 01316 #define D3DFVF_TEX6 0x600 01317 #define D3DFVF_TEX7 0x700 01318 #define D3DFVF_TEX8 0x800 01319 01320 #define D3DFVF_RESERVED2 0xf000 01321 01322 #endif /* (DIRECT3D_VERSION < 0x0800) */ 01323 01324 #define D3DFVF_VERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 ) 01325 #define D3DFVF_LVERTEX ( D3DFVF_XYZ | D3DFVF_RESERVED1 | D3DFVF_DIFFUSE | \ 01326 D3DFVF_SPECULAR | D3DFVF_TEX1 ) 01327 #define D3DFVF_TLVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | \ 01328 D3DFVF_TEX1 ) 01329 01330 typedef struct _D3DDP_PTRSTRIDE { 01331 LPVOID lpvData; 01332 DWORD dwStride; 01333 } D3DDP_PTRSTRIDE; 01334 01335 #define D3DDP_MAXTEXCOORD 8 01336 01337 typedef struct _D3DDRAWPRIMITIVESTRIDEDDATA { 01338 D3DDP_PTRSTRIDE position; 01339 D3DDP_PTRSTRIDE normal; 01340 D3DDP_PTRSTRIDE diffuse; 01341 D3DDP_PTRSTRIDE specular; 01342 D3DDP_PTRSTRIDE textureCoords[D3DDP_MAXTEXCOORD]; 01343 } D3DDRAWPRIMITIVESTRIDEDDATA ,*LPD3DDRAWPRIMITIVESTRIDEDDATA; 01344 01345 #define D3DVIS_INSIDE_FRUSTUM 0 01346 #define D3DVIS_INTERSECT_FRUSTUM 1 01347 #define D3DVIS_OUTSIDE_FRUSTUM 2 01348 #define D3DVIS_INSIDE_LEFT 0 01349 #define D3DVIS_INTERSECT_LEFT (1 << 2) 01350 #define D3DVIS_OUTSIDE_LEFT (2 << 2) 01351 #define D3DVIS_INSIDE_RIGHT 0 01352 #define D3DVIS_INTERSECT_RIGHT (1 << 4) 01353 #define D3DVIS_OUTSIDE_RIGHT (2 << 4) 01354 #define D3DVIS_INSIDE_TOP 0 01355 #define D3DVIS_INTERSECT_TOP (1 << 6) 01356 #define D3DVIS_OUTSIDE_TOP (2 << 6) 01357 #define D3DVIS_INSIDE_BOTTOM 0 01358 #define D3DVIS_INTERSECT_BOTTOM (1 << 8) 01359 #define D3DVIS_OUTSIDE_BOTTOM (2 << 8) 01360 #define D3DVIS_INSIDE_NEAR 0 01361 #define D3DVIS_INTERSECT_NEAR (1 << 10) 01362 #define D3DVIS_OUTSIDE_NEAR (2 << 10) 01363 #define D3DVIS_INSIDE_FAR 0 01364 #define D3DVIS_INTERSECT_FAR (1 << 12) 01365 #define D3DVIS_OUTSIDE_FAR (2 << 12) 01366 01367 #define D3DVIS_MASK_FRUSTUM (3 << 0) 01368 #define D3DVIS_MASK_LEFT (3 << 2) 01369 #define D3DVIS_MASK_RIGHT (3 << 4) 01370 #define D3DVIS_MASK_TOP (3 << 6) 01371 #define D3DVIS_MASK_BOTTOM (3 << 8) 01372 #define D3DVIS_MASK_NEAR (3 << 10) 01373 #define D3DVIS_MASK_FAR (3 << 12) 01374 01375 01376 #if (DIRECT3D_VERSION < 0x0800) 01377 01378 #define D3DDEVINFOID_TEXTUREMANAGER 1 01379 #define D3DDEVINFOID_D3DTEXTUREMANAGER 2 01380 #define D3DDEVINFOID_TEXTURING 3 01381 01382 typedef enum _D3DSTATEBLOCKTYPE 01383 { 01384 D3DSBT_ALL = 1, 01385 D3DSBT_PIXELSTATE = 2, 01386 D3DSBT_VERTEXSTATE = 3, 01387 D3DSBT_FORCE_DWORD = 0xffffffff 01388 } D3DSTATEBLOCKTYPE; 01389 01390 typedef enum _D3DVERTEXBLENDFLAGS 01391 { 01392 D3DVBLEND_DISABLE = 0, 01393 D3DVBLEND_1WEIGHT = 1, 01394 D3DVBLEND_2WEIGHTS = 2, 01395 D3DVBLEND_3WEIGHTS = 3, 01396 } D3DVERTEXBLENDFLAGS; 01397 01398 typedef enum _D3DTEXTURETRANSFORMFLAGS { 01399 D3DTTFF_DISABLE = 0, 01400 D3DTTFF_COUNT1 = 1, 01401 D3DTTFF_COUNT2 = 2, 01402 D3DTTFF_COUNT3 = 3, 01403 D3DTTFF_COUNT4 = 4, 01404 D3DTTFF_PROJECTED = 256, 01405 D3DTTFF_FORCE_DWORD = 0x7fffffff 01406 } D3DTEXTURETRANSFORMFLAGS; 01407 01408 #define D3DFVF_TEXTUREFORMAT2 0 01409 #define D3DFVF_TEXTUREFORMAT1 3 01410 #define D3DFVF_TEXTUREFORMAT3 1 01411 #define D3DFVF_TEXTUREFORMAT4 2 01412 01413 #define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16)) 01414 #define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2) 01415 #define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16)) 01416 #define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16)) 01417 01418 #endif /* (DIRECT3D_VERSION < 0x0800) */ 01419 01420 #endif Generated on Sun May 27 2012 04:31:19 for ReactOS by
1.7.6.1
|