Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430/* * Copyright (C) 2000 Peter Hunnisett * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
/* FIXME: Need to add C++ code for certain structs for headers - this is going to be a problem if WINE continues to only use C code - I suppose that we could always inline in the header file to get around that little problem... *//* FIXME: We need to implement versioning on everything directx 5 and up if these headers are going to be generically useful for directx stuff */
#ifndef __WINE_D3DTYPES_H#define __WINE_D3DTYPES_H
/* #include <windows.h> FIXME: Need to include for compatibility. Inclusion caused compile fail */
#if (DIRECT3D_VERSION >= 0x0800)#error "You should not include d3dtypes.h when compiling for DX8 or newer."#endif
#include <float.h>#include <ddraw.h>
#ifdef __i386__#include <pshpack4.h>#endif
#define D3DVALP(val, prec) ((float)(val))#define D3DVAL(val) ((float)(val))#define D3DDivide(a, b) (float)((double) (a) / (double) (b))#define D3DMultiply(a, b) ((a) * (b))
typedef LONG D3DFIXED;
#ifndef RGB_MAKE#define CI_GETALPHA(ci) ((ci) >> 24)#define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff)#define CI_GETFRACTION(ci) ((ci) & 0xff)#define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80)#define CI_MASKALPHA(ci) ((ci) & 0xffffff)#define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f))
#define RGBA_GETALPHA(rgb) ((rgb) >> 24)#define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff)#define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff)#define RGBA_GETBLUE(rgb) ((rgb) & 0xff)#define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
#define D3DRGB(r, g, b) \ (0xff000000 | ( ((LONG)((r) * 255)) << 16) | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255))#define D3DRGBA(r, g, b, a) \ ( (((LONG)((a) * 255)) << 24) | (((LONG)((r) * 255)) << 16) \ | (((LONG)((g) * 255)) << 8) | (LONG)((b) * 255) \ )
#define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff)#define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff)#define RGB_GETBLUE(rgb) ((rgb) & 0xff)#define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff))#define RGB_MAKE(r, g, b) ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b)))#define RGBA_TORGB(rgba) ((D3DCOLOR) ((rgba) & 0xffffff))#define RGB_TORGBA(rgb) ((D3DCOLOR) ((rgb) | 0xff000000))
#endif
#define D3DENUMRET_CANCEL DDENUMRET_CANCEL#define D3DENUMRET_OK DDENUMRET_OK
typedef HRESULT (CALLBACK *LPD3DVALIDATECALLBACK)(void *ctx, DWORD offset);typedef HRESULT (CALLBACK *LPD3DENUMTEXTUREFORMATSCALLBACK)(DDSURFACEDESC *surface_desc, void *ctx);typedef HRESULT (CALLBACK *LPD3DENUMPIXELFORMATSCALLBACK)(DDPIXELFORMAT *format, void *ctx);
#ifndef DX_SHARED_DEFINES
typedef float D3DVALUE,*LPD3DVALUE;
#ifndef D3DCOLOR_DEFINEDtypedef DWORD D3DCOLOR, *LPD3DCOLOR;#define D3DCOLOR_DEFINED#endif
#ifndef D3DVECTOR_DEFINEDtypedef struct _D3DVECTOR { union { D3DVALUE x; D3DVALUE dvX; } DUMMYUNIONNAME1; union { D3DVALUE y; D3DVALUE dvY; } DUMMYUNIONNAME2; union { D3DVALUE z; D3DVALUE dvZ; } DUMMYUNIONNAME3;#if defined(__cplusplus) && defined(D3D_OVERLOADS) /* the definitions for these methods are in d3dvec.inl */public: /*** constructors ***/ _D3DVECTOR() {} _D3DVECTOR(D3DVALUE f); _D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z); _D3DVECTOR(const D3DVALUE f[3]);
/*** assignment operators ***/ _D3DVECTOR& operator += (const _D3DVECTOR& v); _D3DVECTOR& operator -= (const _D3DVECTOR& v); _D3DVECTOR& operator *= (const _D3DVECTOR& v); _D3DVECTOR& operator /= (const _D3DVECTOR& v); _D3DVECTOR& operator *= (D3DVALUE s); _D3DVECTOR& operator /= (D3DVALUE s);
/*** unary operators ***/ friend _D3DVECTOR operator + (const _D3DVECTOR& v); friend _D3DVECTOR operator - (const _D3DVECTOR& v);
/*** binary operators ***/ friend _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2); friend _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
friend _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s); friend _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v); friend _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s);
friend D3DVALUE SquareMagnitude(const _D3DVECTOR& v); friend D3DVALUE Magnitude(const _D3DVECTOR& v);
friend _D3DVECTOR Normalize(const _D3DVECTOR& v);
friend D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2); friend _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2);#endif} D3DVECTOR,*LPD3DVECTOR;#define D3DVECTOR_DEFINED#endif
#define DX_SHARED_DEFINES#endif /* DX_SHARED_DEFINES */
typedef DWORD D3DMATERIALHANDLE, *LPD3DMATERIALHANDLE;typedef DWORD D3DTEXTUREHANDLE, *LPD3DTEXTUREHANDLE;typedef DWORD D3DMATRIXHANDLE, *LPD3DMATRIXHANDLE;
#ifndef D3DCOLORVALUE_DEFINEDtypedef struct _D3DCOLORVALUE { union { D3DVALUE r; D3DVALUE dvR; } DUMMYUNIONNAME1; union { D3DVALUE g; D3DVALUE dvG; } DUMMYUNIONNAME2; union { D3DVALUE b; D3DVALUE dvB; } DUMMYUNIONNAME3; union { D3DVALUE a; D3DVALUE dvA; } DUMMYUNIONNAME4;} D3DCOLORVALUE,*LPD3DCOLORVALUE;#endif
#ifndef D3DRECT_DEFINEDtypedef struct _D3DRECT { union { LONG x1; LONG lX1; } DUMMYUNIONNAME1; union { LONG y1; LONG lY1; } DUMMYUNIONNAME2; union { LONG x2; LONG lX2; } DUMMYUNIONNAME3; union { LONG y2; LONG lY2; } DUMMYUNIONNAME4;} D3DRECT;#endiftypedef struct _D3DRECT *LPD3DRECT;
typedef struct _D3DHVERTEX { DWORD dwFlags; union { D3DVALUE hx; D3DVALUE dvHX; } DUMMYUNIONNAME1; union { D3DVALUE hy; D3DVALUE dvHY; } DUMMYUNIONNAME2; union { D3DVALUE hz; D3DVALUE dvHZ; } DUMMYUNIONNAME3;} D3DHVERTEX, *LPD3DHVERTEX;
/* * Transformed/lit vertices */typedef struct _D3DTLVERTEX { union { D3DVALUE sx; D3DVALUE dvSX; } DUMMYUNIONNAME1; union { D3DVALUE sy; D3DVALUE dvSY; } DUMMYUNIONNAME2; union { D3DVALUE sz; D3DVALUE dvSZ; } DUMMYUNIONNAME3; union { D3DVALUE rhw; D3DVALUE dvRHW; } DUMMYUNIONNAME4; union { D3DCOLOR color; D3DCOLOR dcColor; } DUMMYUNIONNAME5; union { D3DCOLOR specular; D3DCOLOR dcSpecular; } DUMMYUNIONNAME6; union { D3DVALUE tu; D3DVALUE dvTU; } DUMMYUNIONNAME7; union { D3DVALUE tv; D3DVALUE dvTV; } DUMMYUNIONNAME8;#if defined(__cplusplus) && defined(D3D_OVERLOADS)public: _D3DTLVERTEX() {} _D3DTLVERTEX(const D3DVECTOR& v, float _rhw, D3DCOLOR _color, D3DCOLOR _specular, float _tu, float _tv) { sx = v.x; sy = v.y; sz = v.z; rhw = _rhw; color = _color; specular = _specular; tu = _tu; tv = _tv; }#endif} D3DTLVERTEX, *LPD3DTLVERTEX;
typedef struct _D3DLVERTEX { union { D3DVALUE x; D3DVALUE dvX; } DUMMYUNIONNAME1; union { D3DVALUE y; D3DVALUE dvY; } DUMMYUNIONNAME2; union { D3DVALUE z; D3DVALUE dvZ; } DUMMYUNIONNAME3; DWORD dwReserved; union { D3DCOLOR color; D3DCOLOR dcColor; } DUMMYUNIONNAME4; union { D3DCOLOR specular; D3DCOLOR dcSpecular; } DUMMYUNIONNAME5; union { D3DVALUE tu; D3DVALUE dvTU; } DUMMYUNIONNAME6; union { D3DVALUE tv; D3DVALUE dvTV; } DUMMYUNIONNAME7;} D3DLVERTEX, *LPD3DLVERTEX;
typedef struct _D3DVERTEX { union { D3DVALUE x; D3DVALUE dvX; } DUMMYUNIONNAME1; union { D3DVALUE y; D3DVALUE dvY; } DUMMYUNIONNAME2; union { D3DVALUE z; D3DVALUE dvZ; } DUMMYUNIONNAME3; union { D3DVALUE nx; D3DVALUE dvNX; } DUMMYUNIONNAME4; union { D3DVALUE ny; D3DVALUE dvNY; } DUMMYUNIONNAME5; union { D3DVALUE nz; D3DVALUE dvNZ; } DUMMYUNIONNAME6; union { D3DVALUE tu; D3DVALUE dvTU; } DUMMYUNIONNAME7; union { D3DVALUE tv; D3DVALUE dvTV; } DUMMYUNIONNAME8;#if defined(__cplusplus) && defined(D3D_OVERLOADS)public: _D3DVERTEX() {} _D3DVERTEX(const D3DVECTOR& v, const D3DVECTOR& n, float _tu, float _tv) { x = v.x; y = v.y; z = v.z; nx = n.x; ny = n.y; nz = n.z; tu = _tu; tv = _tv; }#endif} D3DVERTEX, *LPD3DVERTEX;
#ifndef D3DMATRIX_DEFINEDtypedef struct _D3DMATRIX { D3DVALUE _11, _12, _13, _14; D3DVALUE _21, _22, _23, _24; D3DVALUE _31, _32, _33, _34; D3DVALUE _41, _42, _43, _44;#if defined(__cplusplus) && defined(D3D_OVERLOADS) _D3DMATRIX() { }
/* This is different from MS, but avoids anonymous structs. */ D3DVALUE &operator () (int r, int c) { return (&_11)[r*4 + c]; } const D3DVALUE &operator() (int r, int c) const { return (&_11)[r*4 + c]; }#endif} D3DMATRIX, *LPD3DMATRIX;#endif
#if defined(__cplusplus) && defined(D3D_OVERLOADS)#include <d3dvec.inl>#endif
typedef struct _D3DVIEWPORT { DWORD dwSize; DWORD dwX; DWORD dwY; DWORD dwWidth; DWORD dwHeight; D3DVALUE dvScaleX; D3DVALUE dvScaleY; D3DVALUE dvMaxX; D3DVALUE dvMaxY; D3DVALUE dvMinZ; D3DVALUE dvMaxZ;} D3DVIEWPORT, *LPD3DVIEWPORT;
typedef struct _D3DVIEWPORT2 { DWORD dwSize; DWORD dwX; DWORD dwY; DWORD dwWidth; DWORD dwHeight; D3DVALUE dvClipX; D3DVALUE dvClipY; D3DVALUE dvClipWidth; D3DVALUE dvClipHeight; D3DVALUE dvMinZ; D3DVALUE dvMaxZ;} D3DVIEWPORT2, *LPD3DVIEWPORT2;
typedef struct _D3DVIEWPORT7 { DWORD dwX; DWORD dwY; DWORD dwWidth; DWORD dwHeight; D3DVALUE dvMinZ; D3DVALUE dvMaxZ;} D3DVIEWPORT7, *LPD3DVIEWPORT7;
#define D3DMAXUSERCLIPPLANES 32
#define D3DCLIPPLANE0 (1 << 0)#define D3DCLIPPLANE1 (1 << 1)#define D3DCLIPPLANE2 (1 << 2)#define D3DCLIPPLANE3 (1 << 3)#define D3DCLIPPLANE4 (1 << 4)#define D3DCLIPPLANE5 (1 << 5)
#define D3DCLIP_LEFT 0x00000001#define D3DCLIP_RIGHT 0x00000002#define D3DCLIP_TOP 0x00000004#define D3DCLIP_BOTTOM 0x00000008#define D3DCLIP_FRONT 0x00000010#define D3DCLIP_BACK 0x00000020#define D3DCLIP_GEN0 0x00000040#define D3DCLIP_GEN1 0x00000080#define D3DCLIP_GEN2 0x00000100#define D3DCLIP_GEN3 0x00000200#define D3DCLIP_GEN4 0x00000400#define D3DCLIP_GEN5 0x00000800
#define D3DSTATUS_CLIPUNIONLEFT D3DCLIP_LEFT#define D3DSTATUS_CLIPUNIONRIGHT D3DCLIP_RIGHT#define D3DSTATUS_CLIPUNIONTOP D3DCLIP_TOP#define D3DSTATUS_CLIPUNIONBOTTOM D3DCLIP_BOTTOM#define D3DSTATUS_CLIPUNIONFRONT D3DCLIP_FRONT#define D3DSTATUS_CLIPUNIONBACK D3DCLIP_BACK#define D3DSTATUS_CLIPUNIONGEN0 D3DCLIP_GEN0#define D3DSTATUS_CLIPUNIONGEN1 D3DCLIP_GEN1#define D3DSTATUS_CLIPUNIONGEN2 D3DCLIP_GEN2#define D3DSTATUS_CLIPUNIONGEN3 D3DCLIP_GEN3#define D3DSTATUS_CLIPUNIONGEN4 D3DCLIP_GEN4#define D3DSTATUS_CLIPUNIONGEN5 D3DCLIP_GEN5
#define D3DSTATUS_CLIPINTERSECTIONLEFT 0x00001000#define D3DSTATUS_CLIPINTERSECTIONRIGHT 0x00002000#define D3DSTATUS_CLIPINTERSECTIONTOP 0x00004000#define D3DSTATUS_CLIPINTERSECTIONBOTTOM 0x00008000#define D3DSTATUS_CLIPINTERSECTIONFRONT 0x00010000#define D3DSTATUS_CLIPINTERSECTIONBACK 0x00020000#define D3DSTATUS_CLIPINTERSECTIONGEN0 0x00040000#define D3DSTATUS_CLIPINTERSECTIONGEN1 0x00080000#define D3DSTATUS_CLIPINTERSECTIONGEN2 0x00100000#define D3DSTATUS_CLIPINTERSECTIONGEN3 0x00200000#define D3DSTATUS_CLIPINTERSECTIONGEN4 0x00400000#define D3DSTATUS_CLIPINTERSECTIONGEN5 0x00800000#define D3DSTATUS_ZNOTVISIBLE 0x01000000
#define D3DSTATUS_CLIPUNIONALL ( \ D3DSTATUS_CLIPUNIONLEFT | \ D3DSTATUS_CLIPUNIONRIGHT | \ D3DSTATUS_CLIPUNIONTOP | \ D3DSTATUS_CLIPUNIONBOTTOM | \ D3DSTATUS_CLIPUNIONFRONT | \ D3DSTATUS_CLIPUNIONBACK | \ D3DSTATUS_CLIPUNIONGEN0 | \ D3DSTATUS_CLIPUNIONGEN1 | \ D3DSTATUS_CLIPUNIONGEN2 | \ D3DSTATUS_CLIPUNIONGEN3 | \ D3DSTATUS_CLIPUNIONGEN4 | \ D3DSTATUS_CLIPUNIONGEN5 \ )
#define D3DSTATUS_CLIPINTERSECTIONALL ( \ D3DSTATUS_CLIPINTERSECTIONLEFT | \ D3DSTATUS_CLIPINTERSECTIONRIGHT | \ D3DSTATUS_CLIPINTERSECTIONTOP | \ D3DSTATUS_CLIPINTERSECTIONBOTTOM | \ D3DSTATUS_CLIPINTERSECTIONFRONT | \ D3DSTATUS_CLIPINTERSECTIONBACK | \ D3DSTATUS_CLIPINTERSECTIONGEN0 | \ D3DSTATUS_CLIPINTERSECTIONGEN1 | \ D3DSTATUS_CLIPINTERSECTIONGEN2 | \ D3DSTATUS_CLIPINTERSECTIONGEN3 | \ D3DSTATUS_CLIPINTERSECTIONGEN4 | \ D3DSTATUS_CLIPINTERSECTIONGEN5 \ )
#define D3DSTATUS_DEFAULT ( \ D3DSTATUS_CLIPINTERSECTIONALL | \ D3DSTATUS_ZNOTVISIBLE)
#define D3DTRANSFORM_CLIPPED 0x00000001#define D3DTRANSFORM_UNCLIPPED 0x00000002
typedef struct _D3DTRANSFORMDATA { DWORD dwSize; void *lpIn; DWORD dwInSize; void *lpOut; DWORD dwOutSize; D3DHVERTEX *lpHOut; DWORD dwClip; DWORD dwClipIntersection; DWORD dwClipUnion; D3DRECT drExtent;} D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA;
typedef struct _D3DLIGHTINGELEMENT { D3DVECTOR dvPosition; D3DVECTOR dvNormal;} D3DLIGHTINGELEMENT, *LPD3DLIGHTINGELEMENT;
typedef struct _D3DMATERIAL { DWORD dwSize; union { D3DCOLORVALUE diffuse; D3DCOLORVALUE dcvDiffuse; } DUMMYUNIONNAME; union { D3DCOLORVALUE ambient; D3DCOLORVALUE dcvAmbient; } DUMMYUNIONNAME1; union { D3DCOLORVALUE specular; D3DCOLORVALUE dcvSpecular; } DUMMYUNIONNAME2; union { D3DCOLORVALUE emissive; D3DCOLORVALUE dcvEmissive; } DUMMYUNIONNAME3; union { D3DVALUE power; D3DVALUE dvPower; } DUMMYUNIONNAME4; D3DTEXTUREHANDLE hTexture; DWORD dwRampSize;} D3DMATERIAL, *LPD3DMATERIAL;
typedef struct _D3DMATERIAL7 { union { D3DCOLORVALUE diffuse; D3DCOLORVALUE dcvDiffuse; } DUMMYUNIONNAME; union { D3DCOLORVALUE ambient; D3DCOLORVALUE dcvAmbient; } DUMMYUNIONNAME1; union { D3DCOLORVALUE specular; D3DCOLORVALUE dcvSpecular; } DUMMYUNIONNAME2; union { D3DCOLORVALUE emissive; D3DCOLORVALUE dcvEmissive; } DUMMYUNIONNAME3; union { D3DVALUE power; D3DVALUE dvPower; } DUMMYUNIONNAME4;} D3DMATERIAL7, *LPD3DMATERIAL7;
#if (DIRECT3D_VERSION < 0x0800)
typedef enum { D3DLIGHT_POINT = 1, D3DLIGHT_SPOT = 2, D3DLIGHT_DIRECTIONAL = 3, D3DLIGHT_PARALLELPOINT = 4, D3DLIGHT_GLSPOT = 5, D3DLIGHT_FORCE_DWORD = 0x7fffffff} D3DLIGHTTYPE;
#endif
typedef struct _D3DLIGHT { DWORD dwSize; D3DLIGHTTYPE dltType; D3DCOLORVALUE dcvColor; D3DVECTOR dvPosition; D3DVECTOR dvDirection; D3DVALUE dvRange; D3DVALUE dvFalloff; D3DVALUE dvAttenuation0; D3DVALUE dvAttenuation1; D3DVALUE dvAttenuation2; D3DVALUE dvTheta; D3DVALUE dvPhi;} D3DLIGHT,*LPD3DLIGHT;
typedef struct _D3DLIGHT7 { D3DLIGHTTYPE dltType; D3DCOLORVALUE dcvDiffuse; D3DCOLORVALUE dcvSpecular; D3DCOLORVALUE dcvAmbient; D3DVECTOR dvPosition; D3DVECTOR dvDirection; D3DVALUE dvRange; D3DVALUE dvFalloff; D3DVALUE dvAttenuation0; D3DVALUE dvAttenuation1; D3DVALUE dvAttenuation2; D3DVALUE dvTheta; D3DVALUE dvPhi;} D3DLIGHT7, *LPD3DLIGHT7;
#define D3DLIGHT_ACTIVE 0x00000001#define D3DLIGHT_NO_SPECULAR 0x00000002#define D3DLIGHT_ALL (D3DLIGHT_ACTIVE | D3DLIGHT_NO_SPECULAR) /* 0x3 */
#define D3DLIGHT_RANGE_MAX ((float)sqrt(FLT_MAX))
typedef struct _D3DLIGHT2 { DWORD dwSize; D3DLIGHTTYPE dltType; D3DCOLORVALUE dcvColor; D3DVECTOR dvPosition; D3DVECTOR dvDirection; D3DVALUE dvRange; D3DVALUE dvFalloff; D3DVALUE dvAttenuation0; D3DVALUE dvAttenuation1; D3DVALUE dvAttenuation2; D3DVALUE dvTheta; D3DVALUE dvPhi; DWORD dwFlags;} D3DLIGHT2, *LPD3DLIGHT2;
typedef struct _D3DLIGHTDATA { DWORD dwSize; D3DLIGHTINGELEMENT *lpIn; DWORD dwInSize; D3DTLVERTEX *lpOut; DWORD dwOutSize;} D3DLIGHTDATA, *LPD3DLIGHTDATA;
#define D3DCOLOR_MONO 1#define D3DCOLOR_RGB 2
typedef DWORD D3DCOLORMODEL;
#ifndef D3DCLEAR_TARGET#define D3DCLEAR_TARGET 0x00000001#endif
#ifndef D3DCLEAR_ZBUFFER#define D3DCLEAR_ZBUFFER 0x00000002#endif
#ifndef D3DCLEAR_STENCIL#define D3DCLEAR_STENCIL 0x00000004#endif
typedef enum _D3DOPCODE { D3DOP_POINT = 1, D3DOP_LINE = 2, D3DOP_TRIANGLE = 3, D3DOP_MATRIXLOAD = 4, D3DOP_MATRIXMULTIPLY = 5, D3DOP_STATETRANSFORM = 6, D3DOP_STATELIGHT = 7, D3DOP_STATERENDER = 8, D3DOP_PROCESSVERTICES = 9, D3DOP_TEXTURELOAD = 10, D3DOP_EXIT = 11, D3DOP_BRANCHFORWARD = 12, D3DOP_SPAN = 13, D3DOP_SETSTATUS = 14,
D3DOP_FORCE_DWORD = 0x7fffffff} D3DOPCODE;
typedef struct _D3DINSTRUCTION { BYTE bOpcode; BYTE bSize; WORD wCount;} D3DINSTRUCTION, *LPD3DINSTRUCTION;
typedef struct _D3DTEXTURELOAD { D3DTEXTUREHANDLE hDestTexture; D3DTEXTUREHANDLE hSrcTexture;} D3DTEXTURELOAD, *LPD3DTEXTURELOAD;
typedef struct _D3DPICKRECORD { BYTE bOpcode; BYTE bPad; DWORD dwOffset; D3DVALUE dvZ;} D3DPICKRECORD, *LPD3DPICKRECORD;
#if (DIRECT3D_VERSION < 0x0800)
typedef enum { D3DSHADE_FLAT = 1, D3DSHADE_GOURAUD = 2, D3DSHADE_PHONG = 3, D3DSHADE_FORCE_DWORD = 0x7fffffff} D3DSHADEMODE;
typedef enum { D3DFILL_POINT = 1, D3DFILL_WIREFRAME = 2, D3DFILL_SOLID = 3, D3DFILL_FORCE_DWORD = 0x7fffffff} D3DFILLMODE;
typedef struct _D3DLINEPATTERN { WORD wRepeatFactor; WORD wLinePattern;} D3DLINEPATTERN;
#endif /* (DIRECT3D_VERSION < 0x0800) */
typedef enum { D3DFILTER_NEAREST = 1, D3DFILTER_LINEAR = 2, D3DFILTER_MIPNEAREST = 3, D3DFILTER_MIPLINEAR = 4, D3DFILTER_LINEARMIPNEAREST = 5, D3DFILTER_LINEARMIPLINEAR = 6, D3DFILTER_FORCE_DWORD = 0x7fffffff} D3DTEXTUREFILTER;
#if (DIRECT3D_VERSION < 0x0800)
typedef enum { D3DBLEND_ZERO = 1, D3DBLEND_ONE = 2, D3DBLEND_SRCCOLOR = 3, D3DBLEND_INVSRCCOLOR = 4, D3DBLEND_SRCALPHA = 5, D3DBLEND_INVSRCALPHA = 6, D3DBLEND_DESTALPHA = 7, D3DBLEND_INVDESTALPHA = 8, D3DBLEND_DESTCOLOR = 9, D3DBLEND_INVDESTCOLOR = 10, D3DBLEND_SRCALPHASAT = 11, D3DBLEND_BOTHSRCALPHA = 12, D3DBLEND_BOTHINVSRCALPHA = 13, D3DBLEND_FORCE_DWORD = 0x7fffffff} D3DBLEND;
#endif /* (DIRECT3D_VERSION < 0x0800) */
typedef enum { D3DTBLEND_DECAL = 1, D3DTBLEND_MODULATE = 2, D3DTBLEND_DECALALPHA = 3, D3DTBLEND_MODULATEALPHA = 4, D3DTBLEND_DECALMASK = 5, D3DTBLEND_MODULATEMASK = 6, D3DTBLEND_COPY = 7, D3DTBLEND_ADD = 8, D3DTBLEND_FORCE_DWORD = 0x7fffffff} D3DTEXTUREBLEND;
#if (DIRECT3D_VERSION < 0x0800)
typedef enum _D3DTEXTUREADDRESS { D3DTADDRESS_WRAP = 1, D3DTADDRESS_MIRROR = 2, D3DTADDRESS_CLAMP = 3, D3DTADDRESS_BORDER = 4, D3DTADDRESS_FORCE_DWORD = 0x7fffffff} D3DTEXTUREADDRESS;
typedef enum { D3DCULL_NONE = 1, D3DCULL_CW = 2, D3DCULL_CCW = 3, D3DCULL_FORCE_DWORD = 0x7fffffff} D3DCULL;
typedef enum { D3DCMP_NEVER = 1, D3DCMP_LESS = 2, D3DCMP_EQUAL = 3, D3DCMP_LESSEQUAL = 4, D3DCMP_GREATER = 5, D3DCMP_NOTEQUAL = 6, D3DCMP_GREATEREQUAL = 7, D3DCMP_ALWAYS = 8, D3DCMP_FORCE_DWORD = 0x7fffffff} D3DCMPFUNC;
typedef enum _D3DSTENCILOP { D3DSTENCILOP_KEEP = 1, D3DSTENCILOP_ZERO = 2, D3DSTENCILOP_REPLACE = 3, D3DSTENCILOP_INCRSAT = 4, D3DSTENCILOP_DECRSAT = 5, D3DSTENCILOP_INVERT = 6, D3DSTENCILOP_INCR = 7, D3DSTENCILOP_DECR = 8, D3DSTENCILOP_FORCE_DWORD = 0x7fffffff} D3DSTENCILOP;
typedef enum _D3DFOGMODE { D3DFOG_NONE = 0, D3DFOG_EXP = 1, D3DFOG_EXP2 = 2, D3DFOG_LINEAR = 3, D3DFOG_FORCE_DWORD = 0x7fffffff} D3DFOGMODE;
typedef enum _D3DZBUFFERTYPE { D3DZB_FALSE = 0, D3DZB_TRUE = 1, D3DZB_USEW = 2, D3DZB_FORCE_DWORD = 0x7fffffff} D3DZBUFFERTYPE;
#endif /* (DIRECT3D_VERSION < 0x0800) */
typedef enum _D3DANTIALIASMODE { D3DANTIALIAS_NONE = 0, D3DANTIALIAS_SORTDEPENDENT = 1, D3DANTIALIAS_SORTINDEPENDENT = 2, D3DANTIALIAS_FORCE_DWORD = 0x7fffffff} D3DANTIALIASMODE;
typedef enum { D3DVT_VERTEX = 1, D3DVT_LVERTEX = 2, D3DVT_TLVERTEX = 3, D3DVT_FORCE_DWORD = 0x7fffffff} D3DVERTEXTYPE;
#if (DIRECT3D_VERSION < 0x0800)
typedef enum { D3DPT_POINTLIST = 1, D3DPT_LINELIST = 2, D3DPT_LINESTRIP = 3, D3DPT_TRIANGLELIST = 4, D3DPT_TRIANGLESTRIP = 5, D3DPT_TRIANGLEFAN = 6, D3DPT_FORCE_DWORD = 0x7fffffff} D3DPRIMITIVETYPE;
#endif /* (DIRECT3D_VERSION < 0x0800) */
#define D3DSTATE_OVERRIDE_BIAS 256
#define D3DSTATE_OVERRIDE(type) (D3DRENDERSTATETYPE)(((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS))
#if (DIRECT3D_VERSION < 0x0800)
typedef enum _D3DTRANSFORMSTATETYPE { D3DTRANSFORMSTATE_WORLD = 1, D3DTRANSFORMSTATE_VIEW = 2, D3DTRANSFORMSTATE_PROJECTION = 3, D3DTRANSFORMSTATE_WORLD1 = 4, D3DTRANSFORMSTATE_WORLD2 = 5, D3DTRANSFORMSTATE_WORLD3 = 6, D3DTRANSFORMSTATE_TEXTURE0 = 16, D3DTRANSFORMSTATE_TEXTURE1 = 17, D3DTRANSFORMSTATE_TEXTURE2 = 18, D3DTRANSFORMSTATE_TEXTURE3 = 19, D3DTRANSFORMSTATE_TEXTURE4 = 20, D3DTRANSFORMSTATE_TEXTURE5 = 21, D3DTRANSFORMSTATE_TEXTURE6 = 22, D3DTRANSFORMSTATE_TEXTURE7 = 23, D3DTRANSFORMSTATE_FORCE_DWORD = 0x7fffffff} D3DTRANSFORMSTATETYPE;
#endif /* (DIRECT3D_VERSION < 0x0800) */
typedef enum { D3DLIGHTSTATE_MATERIAL = 1, D3DLIGHTSTATE_AMBIENT = 2, D3DLIGHTSTATE_COLORMODEL = 3, D3DLIGHTSTATE_FOGMODE = 4, D3DLIGHTSTATE_FOGSTART = 5, D3DLIGHTSTATE_FOGEND = 6, D3DLIGHTSTATE_FOGDENSITY = 7, D3DLIGHTSTATE_COLORVERTEX = 8, D3DLIGHTSTATE_FORCE_DWORD = 0x7fffffff} D3DLIGHTSTATETYPE;
#if (DIRECT3D_VERSION < 0x0800)
typedef enum { D3DRENDERSTATE_TEXTUREHANDLE = 1, D3DRENDERSTATE_ANTIALIAS = 2, D3DRENDERSTATE_TEXTUREADDRESS = 3, D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4, D3DRENDERSTATE_WRAPU = 5, D3DRENDERSTATE_WRAPV = 6, D3DRENDERSTATE_ZENABLE = 7, D3DRENDERSTATE_FILLMODE = 8, D3DRENDERSTATE_SHADEMODE = 9, D3DRENDERSTATE_LINEPATTERN = 10, D3DRENDERSTATE_MONOENABLE = 11, D3DRENDERSTATE_ROP2 = 12, D3DRENDERSTATE_PLANEMASK = 13, D3DRENDERSTATE_ZWRITEENABLE = 14, D3DRENDERSTATE_ALPHATESTENABLE = 15, D3DRENDERSTATE_LASTPIXEL = 16, D3DRENDERSTATE_TEXTUREMAG = 17, D3DRENDERSTATE_TEXTUREMIN = 18, D3DRENDERSTATE_SRCBLEND = 19, D3DRENDERSTATE_DESTBLEND = 20, D3DRENDERSTATE_TEXTUREMAPBLEND = 21, D3DRENDERSTATE_CULLMODE = 22, D3DRENDERSTATE_ZFUNC = 23, D3DRENDERSTATE_ALPHAREF = 24, D3DRENDERSTATE_ALPHAFUNC = 25, D3DRENDERSTATE_DITHERENABLE = 26, D3DRENDERSTATE_ALPHABLENDENABLE = 27, D3DRENDERSTATE_FOGENABLE = 28, D3DRENDERSTATE_SPECULARENABLE = 29, D3DRENDERSTATE_ZVISIBLE = 30, D3DRENDERSTATE_SUBPIXEL = 31, D3DRENDERSTATE_SUBPIXELX = 32, D3DRENDERSTATE_STIPPLEDALPHA = 33, D3DRENDERSTATE_FOGCOLOR = 34, D3DRENDERSTATE_FOGTABLEMODE = 35, D3DRENDERSTATE_FOGTABLESTART = 36, D3DRENDERSTATE_FOGTABLEEND = 37, D3DRENDERSTATE_FOGTABLEDENSITY = 38, D3DRENDERSTATE_FOGSTART = 36, D3DRENDERSTATE_FOGEND = 37, D3DRENDERSTATE_FOGDENSITY = 38, D3DRENDERSTATE_STIPPLEENABLE = 39, D3DRENDERSTATE_EDGEANTIALIAS = 40, D3DRENDERSTATE_COLORKEYENABLE = 41, D3DRENDERSTATE_BORDERCOLOR = 43, D3DRENDERSTATE_TEXTUREADDRESSU = 44, D3DRENDERSTATE_TEXTUREADDRESSV = 45, D3DRENDERSTATE_MIPMAPLODBIAS = 46, D3DRENDERSTATE_ZBIAS = 47, D3DRENDERSTATE_RANGEFOGENABLE = 48, D3DRENDERSTATE_ANISOTROPY = 49, D3DRENDERSTATE_FLUSHBATCH = 50, D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT = 51,
D3DRENDERSTATE_STENCILENABLE = 52, D3DRENDERSTATE_STENCILFAIL = 53, D3DRENDERSTATE_STENCILZFAIL = 54, D3DRENDERSTATE_STENCILPASS = 55, D3DRENDERSTATE_STENCILFUNC = 56, D3DRENDERSTATE_STENCILREF = 57, D3DRENDERSTATE_STENCILMASK = 58, D3DRENDERSTATE_STENCILWRITEMASK = 59, D3DRENDERSTATE_TEXTUREFACTOR = 60,
D3DRENDERSTATE_STIPPLEPATTERN00 = 64, D3DRENDERSTATE_STIPPLEPATTERN01 = 65, D3DRENDERSTATE_STIPPLEPATTERN02 = 66, D3DRENDERSTATE_STIPPLEPATTERN03 = 67, D3DRENDERSTATE_STIPPLEPATTERN04 = 68, D3DRENDERSTATE_STIPPLEPATTERN05 = 69, D3DRENDERSTATE_STIPPLEPATTERN06 = 70, D3DRENDERSTATE_STIPPLEPATTERN07 = 71, D3DRENDERSTATE_STIPPLEPATTERN08 = 72, D3DRENDERSTATE_STIPPLEPATTERN09 = 73, D3DRENDERSTATE_STIPPLEPATTERN10 = 74, D3DRENDERSTATE_STIPPLEPATTERN11 = 75, D3DRENDERSTATE_STIPPLEPATTERN12 = 76, D3DRENDERSTATE_STIPPLEPATTERN13 = 77, D3DRENDERSTATE_STIPPLEPATTERN14 = 78, D3DRENDERSTATE_STIPPLEPATTERN15 = 79, D3DRENDERSTATE_STIPPLEPATTERN16 = 80, D3DRENDERSTATE_STIPPLEPATTERN17 = 81, D3DRENDERSTATE_STIPPLEPATTERN18 = 82, D3DRENDERSTATE_STIPPLEPATTERN19 = 83, D3DRENDERSTATE_STIPPLEPATTERN20 = 84, D3DRENDERSTATE_STIPPLEPATTERN21 = 85, D3DRENDERSTATE_STIPPLEPATTERN22 = 86, D3DRENDERSTATE_STIPPLEPATTERN23 = 87, D3DRENDERSTATE_STIPPLEPATTERN24 = 88, D3DRENDERSTATE_STIPPLEPATTERN25 = 89, D3DRENDERSTATE_STIPPLEPATTERN26 = 90, D3DRENDERSTATE_STIPPLEPATTERN27 = 91, D3DRENDERSTATE_STIPPLEPATTERN28 = 92, D3DRENDERSTATE_STIPPLEPATTERN29 = 93, D3DRENDERSTATE_STIPPLEPATTERN30 = 94, D3DRENDERSTATE_STIPPLEPATTERN31 = 95,
D3DRENDERSTATE_WRAP0 = 128, D3DRENDERSTATE_WRAP1 = 129, D3DRENDERSTATE_WRAP2 = 130, D3DRENDERSTATE_WRAP3 = 131, D3DRENDERSTATE_WRAP4 = 132, D3DRENDERSTATE_WRAP5 = 133, D3DRENDERSTATE_WRAP6 = 134, D3DRENDERSTATE_WRAP7 = 135, D3DRENDERSTATE_CLIPPING = 136, D3DRENDERSTATE_LIGHTING = 137, D3DRENDERSTATE_EXTENTS = 138, D3DRENDERSTATE_AMBIENT = 139, D3DRENDERSTATE_FOGVERTEXMODE = 140, D3DRENDERSTATE_COLORVERTEX = 141, D3DRENDERSTATE_LOCALVIEWER = 142, D3DRENDERSTATE_NORMALIZENORMALS = 143, D3DRENDERSTATE_COLORKEYBLENDENABLE = 144, D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145, D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146, D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147, D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148, D3DRENDERSTATE_VERTEXBLEND = 151, D3DRENDERSTATE_CLIPPLANEENABLE = 152,
D3DRENDERSTATE_FORCE_DWORD = 0x7fffffff
/* FIXME: We have some retired values that are being reused for DirectX 7 */} D3DRENDERSTATETYPE;
typedef enum _D3DMATERIALCOLORSOURCE{ D3DMCS_MATERIAL = 0, D3DMCS_COLOR1 = 1, D3DMCS_COLOR2 = 2, D3DMCS_FORCE_DWORD = 0x7fffffff} D3DMATERIALCOLORSOURCE;
#define D3DRENDERSTATE_BLENDENABLE D3DRENDERSTATE_ALPHABLENDENABLE#define D3DRENDERSTATE_WRAPBIAS 128UL#define D3DWRAP_U 0x00000001L#define D3DWRAP_V 0x00000002L
#define D3DWRAPCOORD_0 0x00000001L#define D3DWRAPCOORD_1 0x00000002L#define D3DWRAPCOORD_2 0x00000004L#define D3DWRAPCOORD_3 0x00000008L
#endif /* (DIRECT3D_VERSION < 0x0800) */
#define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y))
typedef struct _D3DSTATE { union { D3DTRANSFORMSTATETYPE dtstTransformStateType; D3DLIGHTSTATETYPE dlstLightStateType; D3DRENDERSTATETYPE drstRenderStateType; } DUMMYUNIONNAME1; union { DWORD dwArg[1]; D3DVALUE dvArg[1]; } DUMMYUNIONNAME2;} D3DSTATE, *LPD3DSTATE;
typedef struct _D3DMATRIXLOAD { D3DMATRIXHANDLE hDestMatrix; D3DMATRIXHANDLE hSrcMatrix;} D3DMATRIXLOAD, *LPD3DMATRIXLOAD;
typedef struct _D3DMATRIXMULTIPLY { D3DMATRIXHANDLE hDestMatrix; D3DMATRIXHANDLE hSrcMatrix1; D3DMATRIXHANDLE hSrcMatrix2;} D3DMATRIXMULTIPLY, *LPD3DMATRIXMULTIPLY;
typedef struct _D3DPROCESSVERTICES { DWORD dwFlags; WORD wStart; WORD wDest; DWORD dwCount; DWORD dwReserved;} D3DPROCESSVERTICES, *LPD3DPROCESSVERTICES;
#define D3DPROCESSVERTICES_TRANSFORMLIGHT 0x00000000L#define D3DPROCESSVERTICES_TRANSFORM 0x00000001L#define D3DPROCESSVERTICES_COPY 0x00000002L#define D3DPROCESSVERTICES_OPMASK 0x00000007L
#define D3DPROCESSVERTICES_UPDATEEXTENTS 0x00000008L#define D3DPROCESSVERTICES_NOCOLOR 0x00000010L
#if (DIRECT3D_VERSION < 0x0800)
typedef enum _D3DTEXTURESTAGESTATETYPE{ D3DTSS_COLOROP = 1, D3DTSS_COLORARG1 = 2, D3DTSS_COLORARG2 = 3, D3DTSS_ALPHAOP = 4, D3DTSS_ALPHAARG1 = 5, D3DTSS_ALPHAARG2 = 6, D3DTSS_BUMPENVMAT00 = 7, D3DTSS_BUMPENVMAT01 = 8, D3DTSS_BUMPENVMAT10 = 9, D3DTSS_BUMPENVMAT11 = 10, D3DTSS_TEXCOORDINDEX = 11, D3DTSS_ADDRESS = 12, D3DTSS_ADDRESSU = 13, D3DTSS_ADDRESSV = 14, D3DTSS_BORDERCOLOR = 15, D3DTSS_MAGFILTER = 16, D3DTSS_MINFILTER = 17, D3DTSS_MIPFILTER = 18, D3DTSS_MIPMAPLODBIAS = 19, D3DTSS_MAXMIPLEVEL = 20, D3DTSS_MAXANISOTROPY = 21, D3DTSS_BUMPENVLSCALE = 22, D3DTSS_BUMPENVLOFFSET = 23, D3DTSS_TEXTURETRANSFORMFLAGS = 24, D3DTSS_FORCE_DWORD = 0x7fffffff} D3DTEXTURESTAGESTATETYPE;
#define D3DTSS_TCI_PASSTHRU 0x00000000#define D3DTSS_TCI_CAMERASPACENORMAL 0x00010000#define D3DTSS_TCI_CAMERASPACEPOSITION 0x00020000#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x00030000
typedef enum _D3DTEXTUREOP{ D3DTOP_DISABLE = 1, D3DTOP_SELECTARG1 = 2, D3DTOP_SELECTARG2 = 3,
D3DTOP_MODULATE = 4, D3DTOP_MODULATE2X = 5, D3DTOP_MODULATE4X = 6,
D3DTOP_ADD = 7, D3DTOP_ADDSIGNED = 8, D3DTOP_ADDSIGNED2X = 9, D3DTOP_SUBTRACT = 10, D3DTOP_ADDSMOOTH = 11,
D3DTOP_BLENDDIFFUSEALPHA = 12, D3DTOP_BLENDTEXTUREALPHA = 13, D3DTOP_BLENDFACTORALPHA = 14, D3DTOP_BLENDTEXTUREALPHAPM = 15, D3DTOP_BLENDCURRENTALPHA = 16,
D3DTOP_PREMODULATE = 17, D3DTOP_MODULATEALPHA_ADDCOLOR = 18, D3DTOP_MODULATECOLOR_ADDALPHA = 19, D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
D3DTOP_BUMPENVMAP = 22, D3DTOP_BUMPENVMAPLUMINANCE = 23, D3DTOP_DOTPRODUCT3 = 24,
D3DTOP_FORCE_DWORD = 0x7fffffff} D3DTEXTUREOP;
#define D3DTA_SELECTMASK 0x0000000f#define D3DTA_DIFFUSE 0x00000000#define D3DTA_CURRENT 0x00000001#define D3DTA_TEXTURE 0x00000002#define D3DTA_TFACTOR 0x00000003#define D3DTA_SPECULAR 0x00000004#define D3DTA_COMPLEMENT 0x00000010#define D3DTA_ALPHAREPLICATE 0x00000020
#endif /* (DIRECT3D_VERSION < 0x0800) */
typedef enum _D3DTEXTUREMAGFILTER{ D3DTFG_POINT = 1, D3DTFG_LINEAR = 2, D3DTFG_FLATCUBIC = 3, D3DTFG_GAUSSIANCUBIC = 4, D3DTFG_ANISOTROPIC = 5, D3DTFG_FORCE_DWORD = 0x7fffffff} D3DTEXTUREMAGFILTER;
typedef enum _D3DTEXTUREMINFILTER{ D3DTFN_POINT = 1, D3DTFN_LINEAR = 2, D3DTFN_ANISOTROPIC = 3, D3DTFN_FORCE_DWORD = 0x7fffffff} D3DTEXTUREMINFILTER;
typedef enum _D3DTEXTUREMIPFILTER{ D3DTFP_NONE = 1, D3DTFP_POINT = 2, D3DTFP_LINEAR = 3, D3DTFP_FORCE_DWORD = 0x7fffffff} D3DTEXTUREMIPFILTER;
#define D3DTRIFLAG_START 0x00000000L#define D3DTRIFLAG_STARTFLAT(len) (len)#define D3DTRIFLAG_ODD 0x0000001eL#define D3DTRIFLAG_EVEN 0x0000001fL
#define D3DTRIFLAG_EDGEENABLE1 0x00000100L#define D3DTRIFLAG_EDGEENABLE2 0x00000200L#define D3DTRIFLAG_EDGEENABLE3 0x00000400L#define D3DTRIFLAG_EDGEENABLETRIANGLE \ (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3)
typedef struct _D3DTRIANGLE { union { WORD v1; WORD wV1; } DUMMYUNIONNAME1; union { WORD v2; WORD wV2; } DUMMYUNIONNAME2; union { WORD v3; WORD wV3; } DUMMYUNIONNAME3; WORD wFlags;} D3DTRIANGLE, *LPD3DTRIANGLE;
typedef struct _D3DLINE { union { WORD v1; WORD wV1; } DUMMYUNIONNAME1; union { WORD v2; WORD wV2; } DUMMYUNIONNAME2;} D3DLINE, *LPD3DLINE;
typedef struct _D3DSPAN { WORD wCount; WORD wFirst;} D3DSPAN, *LPD3DSPAN;
typedef struct _D3DPOINT { WORD wCount; WORD wFirst;} D3DPOINT, *LPD3DPOINT;
typedef struct _D3DBRANCH { DWORD dwMask; DWORD dwValue; BOOL bNegate; DWORD dwOffset;} D3DBRANCH, *LPD3DBRANCH;
typedef struct _D3DSTATUS { DWORD dwFlags; DWORD dwStatus; D3DRECT drExtent;} D3DSTATUS, *LPD3DSTATUS;
#define D3DSETSTATUS_STATUS 0x00000001L#define D3DSETSTATUS_EXTENTS 0x00000002L#define D3DSETSTATUS_ALL (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS)
typedef struct _D3DCLIPSTATUS { DWORD dwFlags; DWORD dwStatus; float minx, maxx; float miny, maxy; float minz, maxz;} D3DCLIPSTATUS, *LPD3DCLIPSTATUS;
#define D3DCLIPSTATUS_STATUS 0x00000001L#define D3DCLIPSTATUS_EXTENTS2 0x00000002L#define D3DCLIPSTATUS_EXTENTS3 0x00000004L
typedef struct { DWORD dwSize; DWORD dwTrianglesDrawn; DWORD dwLinesDrawn; DWORD dwPointsDrawn; DWORD dwSpansDrawn; DWORD dwVerticesProcessed;} D3DSTATS, *LPD3DSTATS;
#define D3DEXECUTE_CLIPPED 0x00000001l#define D3DEXECUTE_UNCLIPPED 0x00000002l
typedef struct _D3DEXECUTEDATA { DWORD dwSize; DWORD dwVertexOffset; DWORD dwVertexCount; DWORD dwInstructionOffset; DWORD dwInstructionLength; DWORD dwHVertexOffset; D3DSTATUS dsStatus;} D3DEXECUTEDATA, *LPD3DEXECUTEDATA;
#define D3DPAL_FREE 0x00#define D3DPAL_READONLY 0x40#define D3DPAL_RESERVED 0x80
typedef struct _D3DVERTEXBUFFERDESC { DWORD dwSize; DWORD dwCaps; DWORD dwFVF; DWORD dwNumVertices;} D3DVERTEXBUFFERDESC, *LPD3DVERTEXBUFFERDESC;
#define D3DVBCAPS_SYSTEMMEMORY 0x00000800l#define D3DVBCAPS_WRITEONLY 0x00010000l#define D3DVBCAPS_OPTIMIZED 0x80000000l#define D3DVBCAPS_DONOTCLIP 0x00000001l
#define D3DVOP_LIGHT (1 << 10)#define D3DVOP_TRANSFORM (1 << 0)#define D3DVOP_CLIP (1 << 2)#define D3DVOP_EXTENTS (1 << 3)
#if (DIRECT3D_VERSION < 0x0800)
#define D3DMAXNUMVERTICES ((1<<16) - 1)
#define D3DMAXNUMPRIMITIVES ((1<<16) - 1)
#define D3DPV_DONOTCOPYDATA (1 << 0)
#define D3DFVF_RESERVED0 0x001#define D3DFVF_POSITION_MASK 0x00E#define D3DFVF_XYZ 0x002#define D3DFVF_XYZRHW 0x004#define D3DFVF_XYZB1 0x006#define D3DFVF_XYZB2 0x008#define D3DFVF_XYZB3 0x00a#define D3DFVF_XYZB4 0x00c#define D3DFVF_XYZB5 0x00e
#define D3DFVF_NORMAL 0x010#define D3DFVF_RESERVED1 0x020#define D3DFVF_DIFFUSE 0x040#define D3DFVF_SPECULAR 0x080#define D3DFVF_TEXCOUNT_MASK 0xf00#define D3DFVF_TEXCOUNT_SHIFT 8#define D3DFVF_TEX0 0x000#define D3DFVF_TEX1 0x100#define D3DFVF_TEX2 0x200#define D3DFVF_TEX3 0x300#define D3DFVF_TEX4 0x400#define D3DFVF_TEX5 0x500#define D3DFVF_TEX6 0x600#define D3DFVF_TEX7 0x700#define D3DFVF_TEX8 0x800
#define D3DFVF_RESERVED2 0xf000
#endif /* (DIRECT3D_VERSION < 0x0800) */
#define D3DFVF_VERTEX ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1 )#define D3DFVF_LVERTEX ( D3DFVF_XYZ | D3DFVF_RESERVED1 | D3DFVF_DIFFUSE | \ D3DFVF_SPECULAR | D3DFVF_TEX1 )#define D3DFVF_TLVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | \ D3DFVF_TEX1 )
typedef struct _D3DDP_PTRSTRIDE{ void *lpvData; DWORD dwStride;} D3DDP_PTRSTRIDE;
#define D3DDP_MAXTEXCOORD 8
typedef struct _D3DDRAWPRIMITIVESTRIDEDDATA { D3DDP_PTRSTRIDE position; D3DDP_PTRSTRIDE normal; D3DDP_PTRSTRIDE diffuse; D3DDP_PTRSTRIDE specular; D3DDP_PTRSTRIDE textureCoords[D3DDP_MAXTEXCOORD];} D3DDRAWPRIMITIVESTRIDEDDATA ,*LPD3DDRAWPRIMITIVESTRIDEDDATA;
#define D3DVIS_INSIDE_FRUSTUM 0#define D3DVIS_INTERSECT_FRUSTUM 1#define D3DVIS_OUTSIDE_FRUSTUM 2#define D3DVIS_INSIDE_LEFT 0#define D3DVIS_INTERSECT_LEFT (1 << 2)#define D3DVIS_OUTSIDE_LEFT (2 << 2)#define D3DVIS_INSIDE_RIGHT 0#define D3DVIS_INTERSECT_RIGHT (1 << 4)#define D3DVIS_OUTSIDE_RIGHT (2 << 4)#define D3DVIS_INSIDE_TOP 0#define D3DVIS_INTERSECT_TOP (1 << 6)#define D3DVIS_OUTSIDE_TOP (2 << 6)#define D3DVIS_INSIDE_BOTTOM 0#define D3DVIS_INTERSECT_BOTTOM (1 << 8)#define D3DVIS_OUTSIDE_BOTTOM (2 << 8)#define D3DVIS_INSIDE_NEAR 0#define D3DVIS_INTERSECT_NEAR (1 << 10)#define D3DVIS_OUTSIDE_NEAR (2 << 10)#define D3DVIS_INSIDE_FAR 0#define D3DVIS_INTERSECT_FAR (1 << 12)#define D3DVIS_OUTSIDE_FAR (2 << 12)
#define D3DVIS_MASK_FRUSTUM (3 << 0)#define D3DVIS_MASK_LEFT (3 << 2)#define D3DVIS_MASK_RIGHT (3 << 4)#define D3DVIS_MASK_TOP (3 << 6)#define D3DVIS_MASK_BOTTOM (3 << 8)#define D3DVIS_MASK_NEAR (3 << 10)#define D3DVIS_MASK_FAR (3 << 12)
#if (DIRECT3D_VERSION < 0x0800)
#define D3DDEVINFOID_TEXTUREMANAGER 1#define D3DDEVINFOID_D3DTEXTUREMANAGER 2#define D3DDEVINFOID_TEXTURING 3
typedef enum _D3DSTATEBLOCKTYPE{ D3DSBT_ALL = 1, D3DSBT_PIXELSTATE = 2, D3DSBT_VERTEXSTATE = 3, D3DSBT_FORCE_DWORD = 0xffffffff} D3DSTATEBLOCKTYPE;
typedef enum _D3DVERTEXBLENDFLAGS{ D3DVBLEND_DISABLE = 0, D3DVBLEND_1WEIGHT = 1, D3DVBLEND_2WEIGHTS = 2, D3DVBLEND_3WEIGHTS = 3,} D3DVERTEXBLENDFLAGS;
typedef enum _D3DTEXTURETRANSFORMFLAGS { D3DTTFF_DISABLE = 0, D3DTTFF_COUNT1 = 1, D3DTTFF_COUNT2 = 2, D3DTTFF_COUNT3 = 3, D3DTTFF_COUNT4 = 4, D3DTTFF_PROJECTED = 256, D3DTTFF_FORCE_DWORD = 0x7fffffff} D3DTEXTURETRANSFORMFLAGS;
#define D3DFVF_TEXTUREFORMAT2 0#define D3DFVF_TEXTUREFORMAT1 3#define D3DFVF_TEXTUREFORMAT3 1#define D3DFVF_TEXTUREFORMAT4 2
#define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))#define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2)#define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))#define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))
#ifdef __i386__#include <poppack.h>#endif
#endif /* (DIRECT3D_VERSION < 0x0800) */
#endif