13#if (! defined WIN32) && (! defined WIN95)
26#define D3DVALP(val, prec) ((float)(val))
27#define D3DVAL(val) ((float)(val))
29#define D3DDivide(a, b) (float)((double) (a) / (double) (b))
30#define D3DMultiply(a, b) ((a) * (b))
41#define CI_GETALPHA(ci) ((ci) >> 24)
42#define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff)
43#define CI_GETFRACTION(ci) ((ci) & 0xff)
44#define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80)
45#define CI_MASKALPHA(ci) ((ci) & 0xffffff)
46#define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f))
54#define RGBA_GETALPHA(rgb) ((rgb) >> 24)
55#define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff)
56#define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff)
57#define RGBA_GETBLUE(rgb) ((rgb) & 0xff)
58#define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
63#define D3DRGB(r, g, b) \
64 (0xff000000L | ( ((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255))
65#define D3DRGBA(r, g, b, a) \
66 ( (((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) \
67 | (((long)((g) * 255)) << 8) | (long)((b) * 255) \
76#define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff)
77#define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff)
78#define RGB_GETBLUE(rgb) ((rgb) & 0xff)
79#define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff))
80#define RGB_MAKE(r, g, b) ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b)))
81#define RGBA_TORGB(rgba) ((D3DCOLOR) ((rgba) & 0xffffff))
82#define RGB_TORGBA(rgb) ((D3DCOLOR) ((rgb) | 0xff000000))
93#define D3DENUMRET_CANCEL DDENUMRET_CANCEL
98#define D3DENUMRET_OK DDENUMRET_OK
160#if (defined __cplusplus) && (defined D3D_OVERLOADS)
177 const D3DVALUE&operator[](
int i)
const;
244#if (defined __cplusplus) && (defined D3D_OVERLOADS)
308#if (defined __cplusplus) && (defined D3D_OVERLOADS)
312 float _tu,
float _tv)
353#if (defined __cplusplus) && (defined D3D_OVERLOADS)
357 float _tu,
float _tv)
402#if (defined __cplusplus) && (defined D3D_OVERLOADS)
405 {
x = v.
x;
y = v.
y;
z = v.
z;
417#if (defined __cplusplus) && (defined D3D_OVERLOADS)
427#if (defined __cplusplus) && (defined D3D_OVERLOADS)
438 m[0][0] = _m00; m[0][1] = _m01; m[0][2] = _m02; m[0][3] = _m03;
439 m[1][0] = _m10; m[1][1] = _m11; m[1][2] = _m12; m[1][3] = _m13;
440 m[2][0] = _m20; m[2][1] = _m21; m[2][2] = _m22; m[2][3] = _m23;
441 m[3][0] = _m30; m[3][1] = _m31; m[3][2] = _m32; m[3][3] = _m33;
444 D3DVALUE& operator()(
int iRow,
int iColumn) {
return m[iRow][iColumn]; }
445 const D3DVALUE& operator()(
int iRow,
int iColumn)
const {
return m[iRow][iColumn]; }
480#define D3DCLIP_LEFT 0x00000001L
481#define D3DCLIP_RIGHT 0x00000002L
482#define D3DCLIP_TOP 0x00000004L
483#define D3DCLIP_BOTTOM 0x00000008L
484#define D3DCLIP_FRONT 0x00000010L
485#define D3DCLIP_BACK 0x00000020L
486#define D3DCLIP_GEN0 0x00000040L
487#define D3DCLIP_GEN1 0x00000080L
488#define D3DCLIP_GEN2 0x00000100L
489#define D3DCLIP_GEN3 0x00000200L
490#define D3DCLIP_GEN4 0x00000400L
491#define D3DCLIP_GEN5 0x00000800L
496#define D3DSTATUS_CLIPUNIONLEFT D3DCLIP_LEFT
497#define D3DSTATUS_CLIPUNIONRIGHT D3DCLIP_RIGHT
498#define D3DSTATUS_CLIPUNIONTOP D3DCLIP_TOP
499#define D3DSTATUS_CLIPUNIONBOTTOM D3DCLIP_BOTTOM
500#define D3DSTATUS_CLIPUNIONFRONT D3DCLIP_FRONT
501#define D3DSTATUS_CLIPUNIONBACK D3DCLIP_BACK
502#define D3DSTATUS_CLIPUNIONGEN0 D3DCLIP_GEN0
503#define D3DSTATUS_CLIPUNIONGEN1 D3DCLIP_GEN1
504#define D3DSTATUS_CLIPUNIONGEN2 D3DCLIP_GEN2
505#define D3DSTATUS_CLIPUNIONGEN3 D3DCLIP_GEN3
506#define D3DSTATUS_CLIPUNIONGEN4 D3DCLIP_GEN4
507#define D3DSTATUS_CLIPUNIONGEN5 D3DCLIP_GEN5
509#define D3DSTATUS_CLIPINTERSECTIONLEFT 0x00001000L
510#define D3DSTATUS_CLIPINTERSECTIONRIGHT 0x00002000L
511#define D3DSTATUS_CLIPINTERSECTIONTOP 0x00004000L
512#define D3DSTATUS_CLIPINTERSECTIONBOTTOM 0x00008000L
513#define D3DSTATUS_CLIPINTERSECTIONFRONT 0x00010000L
514#define D3DSTATUS_CLIPINTERSECTIONBACK 0x00020000L
515#define D3DSTATUS_CLIPINTERSECTIONGEN0 0x00040000L
516#define D3DSTATUS_CLIPINTERSECTIONGEN1 0x00080000L
517#define D3DSTATUS_CLIPINTERSECTIONGEN2 0x00100000L
518#define D3DSTATUS_CLIPINTERSECTIONGEN3 0x00200000L
519#define D3DSTATUS_CLIPINTERSECTIONGEN4 0x00400000L
520#define D3DSTATUS_CLIPINTERSECTIONGEN5 0x00800000L
521#define D3DSTATUS_ZNOTVISIBLE 0x01000000L
524#define D3DSTATUS_CLIPUNIONALL ( \
525 D3DSTATUS_CLIPUNIONLEFT | \
526 D3DSTATUS_CLIPUNIONRIGHT | \
527 D3DSTATUS_CLIPUNIONTOP | \
528 D3DSTATUS_CLIPUNIONBOTTOM | \
529 D3DSTATUS_CLIPUNIONFRONT | \
530 D3DSTATUS_CLIPUNIONBACK | \
531 D3DSTATUS_CLIPUNIONGEN0 | \
532 D3DSTATUS_CLIPUNIONGEN1 | \
533 D3DSTATUS_CLIPUNIONGEN2 | \
534 D3DSTATUS_CLIPUNIONGEN3 | \
535 D3DSTATUS_CLIPUNIONGEN4 | \
536 D3DSTATUS_CLIPUNIONGEN5 \
539#define D3DSTATUS_CLIPINTERSECTIONALL ( \
540 D3DSTATUS_CLIPINTERSECTIONLEFT | \
541 D3DSTATUS_CLIPINTERSECTIONRIGHT | \
542 D3DSTATUS_CLIPINTERSECTIONTOP | \
543 D3DSTATUS_CLIPINTERSECTIONBOTTOM | \
544 D3DSTATUS_CLIPINTERSECTIONFRONT | \
545 D3DSTATUS_CLIPINTERSECTIONBACK | \
546 D3DSTATUS_CLIPINTERSECTIONGEN0 | \
547 D3DSTATUS_CLIPINTERSECTIONGEN1 | \
548 D3DSTATUS_CLIPINTERSECTIONGEN2 | \
549 D3DSTATUS_CLIPINTERSECTIONGEN3 | \
550 D3DSTATUS_CLIPINTERSECTIONGEN4 | \
551 D3DSTATUS_CLIPINTERSECTIONGEN5 \
554#define D3DSTATUS_DEFAULT ( \
555 D3DSTATUS_CLIPINTERSECTIONALL | \
556 D3DSTATUS_ZNOTVISIBLE)
562#define D3DTRANSFORM_CLIPPED 0x00000001l
563#define D3DTRANSFORM_UNCLIPPED 0x00000002l
646#define D3DLIGHT_ACTIVE 0x00000001
647#define D3DLIGHT_NO_SPECULAR 0x00000002
650#define D3DLIGHT_RANGE_MAX ((float)sqrt(FLT_MAX))
682#define D3DCOLOR_MONO 1
683#define D3DCOLOR_RGB 2
690#define D3DCLEAR_TARGET 0x00000001l
691#define D3DCLEAR_ZBUFFER 0x00000002l
871#define D3DSTATE_OVERRIDE_BIAS 256
876#define D3DSTATE_OVERRIDE(type) ((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS)
982#define D3DRENDERSTATE_BLENDENABLE D3DRENDERSTATE_ALPHABLENDENABLE
984#define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y))
1028#define D3DPROCESSVERTICES_TRANSFORMLIGHT 0x00000000L
1029#define D3DPROCESSVERTICES_TRANSFORM 0x00000001L
1030#define D3DPROCESSVERTICES_COPY 0x00000002L
1031#define D3DPROCESSVERTICES_OPMASK 0x00000007L
1033#define D3DPROCESSVERTICES_UPDATEEXTENTS 0x00000008L
1034#define D3DPROCESSVERTICES_NOCOLOR 0x00000010L
1049#define D3DTRIFLAG_START 0x00000000L
1050#define D3DTRIFLAG_STARTFLAT(len) (len)
1051#define D3DTRIFLAG_ODD 0x0000001eL
1052#define D3DTRIFLAG_EVEN 0x0000001fL
1058#define D3DTRIFLAG_EDGEENABLE1 0x00000100L
1059#define D3DTRIFLAG_EDGEENABLE2 0x00000200L
1060#define D3DTRIFLAG_EDGEENABLE3 0x00000400L
1061#define D3DTRIFLAG_EDGEENABLETRIANGLE \
1062 (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3)
1145#define D3DSETSTATUS_STATUS 0x00000001L
1146#define D3DSETSTATUS_EXTENTS 0x00000002L
1147#define D3DSETSTATUS_ALL (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS)
1157#define D3DCLIPSTATUS_STATUS 0x00000001L
1158#define D3DCLIPSTATUS_EXTENTS2 0x00000002L
1159#define D3DCLIPSTATUS_EXTENTS3 0x00000004L
1178#define D3DEXECUTE_CLIPPED 0x00000001l
1179#define D3DEXECUTE_UNCLIPPED 0x00000002l
1195#define D3DPAL_FREE 0x00
1196#define D3DPAL_READONLY 0x40
1197#define D3DPAL_RESERVED 0x80
@ D3DRENDERSTATE_STIPPLEPATTERN26
@ D3DRENDERSTATE_STIPPLEDALPHA
@ D3DRENDERSTATE_STIPPLEPATTERN28
@ D3DRENDERSTATE_STIPPLEPATTERN14
@ D3DRENDERSTATE_FOGCOLOR
@ D3DRENDERSTATE_STIPPLEPATTERN22
@ D3DRENDERSTATE_STIPPLEPATTERN19
@ D3DRENDERSTATE_ALPHABLENDENABLE
@ D3DRENDERSTATE_FLUSHBATCH
@ D3DRENDERSTATE_STIPPLEPATTERN25
@ D3DRENDERSTATE_STIPPLEPATTERN24
@ D3DRENDERSTATE_STIPPLEENABLE
@ D3DRENDERSTATE_BORDERCOLOR
@ D3DRENDERSTATE_FOGTABLEEND
@ D3DRENDERSTATE_COLORKEYENABLE
@ D3DRENDERSTATE_STIPPLEPATTERN05
@ D3DRENDERSTATE_LASTPIXEL
@ D3DRENDERSTATE_RANGEFOGENABLE
@ D3DRENDERSTATE_DITHERENABLE
@ D3DRENDERSTATE_STIPPLEPATTERN10
@ D3DRENDERSTATE_STIPPLEPATTERN31
@ D3DRENDERSTATE_FILLMODE
@ D3DRENDERSTATE_STIPPLEPATTERN18
@ D3DRENDERSTATE_STIPPLEPATTERN02
@ D3DRENDERSTATE_EDGEANTIALIAS
@ D3DRENDERSTATE_SPECULARENABLE
@ D3DRENDERSTATE_TEXTUREMAG
@ D3DRENDERSTATE_TEXTUREMIN
@ D3DRENDERSTATE_FOGTABLESTART
@ D3DRENDERSTATE_STIPPLEPATTERN07
@ D3DRENDERSTATE_STIPPLEPATTERN29
@ D3DRENDERSTATE_STIPPLEPATTERN01
@ D3DRENDERSTATE_ZWRITEENABLE
@ D3DRENDERSTATE_TEXTUREADDRESS
@ D3DRENDERSTATE_ANTIALIAS
@ D3DRENDERSTATE_MONOENABLE
@ D3DRENDERSTATE_STIPPLEPATTERN13
@ D3DRENDERSTATE_DESTBLEND
@ D3DRENDERSTATE_FOGTABLEDENSITY
@ D3DRENDERSTATE_ALPHAFUNC
@ D3DRENDERSTATE_SUBPIXEL
@ D3DRENDERSTATE_STIPPLEPATTERN09
@ D3DRENDERSTATE_TEXTUREHANDLE
@ D3DRENDERSTATE_FOGTABLEMODE
@ D3DRENDERSTATE_STIPPLEPATTERN04
@ D3DRENDERSTATE_STIPPLEPATTERN16
@ D3DRENDERSTATE_TEXTUREADDRESSU
@ D3DRENDERSTATE_TEXTUREADDRESSV
@ D3DRENDERSTATE_STIPPLEPATTERN30
@ D3DRENDERSTATE_SUBPIXELX
@ D3DRENDERSTATE_STIPPLEPATTERN17
@ D3DRENDERSTATE_STIPPLEPATTERN15
@ D3DRENDERSTATE_TEXTUREPERSPECTIVE
@ D3DRENDERSTATE_ALPHATESTENABLE
@ D3DRENDERSTATE_STIPPLEPATTERN11
@ D3DRENDERSTATE_STIPPLEPATTERN12
@ D3DRENDERSTATE_CULLMODE
@ D3DRENDERSTATE_FORCE_DWORD
@ D3DRENDERSTATE_STIPPLEPATTERN21
@ D3DRENDERSTATE_ZVISIBLE
@ D3DRENDERSTATE_STIPPLEPATTERN23
@ D3DRENDERSTATE_STIPPLEPATTERN20
@ D3DRENDERSTATE_SRCBLEND
@ D3DRENDERSTATE_FOGENABLE
@ D3DRENDERSTATE_STIPPLEPATTERN03
@ D3DRENDERSTATE_ALPHAREF
@ D3DRENDERSTATE_TEXTUREMAPBLEND
@ D3DRENDERSTATE_PLANEMASK
@ D3DRENDERSTATE_MIPMAPLODBIAS
@ D3DRENDERSTATE_STIPPLEPATTERN08
@ D3DRENDERSTATE_SHADEMODE
@ D3DRENDERSTATE_LINEPATTERN
@ D3DRENDERSTATE_ANISOTROPY
@ D3DRENDERSTATE_STIPPLEPATTERN06
@ D3DRENDERSTATE_STIPPLEPATTERN00
@ D3DRENDERSTATE_STIPPLEPATTERN27
struct _D3DBRANCH D3DBRANCH
struct _D3DMATRIXLOAD D3DMATRIXLOAD
struct _D3DMATRIXLOAD * LPD3DMATRIXLOAD
struct _D3DHVERTEX D3DHVERTEX
DWORD * LPD3DMATERIALHANDLE
@ D3DTADDRESS_FORCE_DWORD
struct _D3DLINEPATTERN D3DLINEPATTERN
struct _D3DPICKRECORD D3DPICKRECORD
struct _D3DMATERIAL * LPD3DMATERIAL
struct _D3DPOINT * LPD3DPOINT
struct _D3DVIEWPORT2 * LPD3DVIEWPORT2
struct _D3DTLVERTEX * LPD3DTLVERTEX
DWORD * LPD3DMATRIXHANDLE
@ D3DBLEND_BOTHINVSRCALPHA
struct _D3DBRANCH * LPD3DBRANCH
struct _D3DVERTEX D3DVERTEX
enum _D3DTEXTUREADDRESS D3DTEXTUREADDRESS
struct _D3DVECTOR D3DVECTOR
struct _D3DTEXTURELOAD * LPD3DTEXTURELOAD
struct _D3DLIGHTDATA * LPD3DLIGHTDATA
enum _D3DSHADEMODE D3DSHADEMODE
struct _D3DTRIANGLE * LPD3DTRIANGLE
enum _D3DLIGHTSTATETYPE D3DLIGHTSTATETYPE
struct _D3DVIEWPORT2 D3DVIEWPORT2
HRESULT(WINAPI * LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset)
struct _D3DCLIPSTATUS * LPD3DCLIPSTATUS
struct _D3DTEXTURELOAD D3DTEXTURELOAD
enum _D3DVERTEXTYPE D3DVERTEXTYPE
enum _D3DFILLMODE D3DFILLMODE
struct _D3DMATRIXMULTIPLY D3DMATRIXMULTIPLY
enum _D3DTEXTUREFILTER D3DTEXTUREFILTER
struct _D3DSTATE * LPD3DSTATE
struct _D3DTRANSFORMDATA * LPD3DTRANSFORMDATA
struct _D3DSTATS * LPD3DSTATS
struct _D3DPOINT D3DPOINT
struct _D3DLIGHTINGELEMENT D3DLIGHTINGELEMENT
struct _D3DLIGHT2 * LPD3DLIGHT2
enum _D3DCMPFUNC D3DCMPFUNC
enum _D3DPRIMITIVETYPE D3DPRIMITIVETYPE
struct _D3DLIGHT * LPD3DLIGHT
struct _D3DINSTRUCTION D3DINSTRUCTION
struct _D3DLIGHT D3DLIGHT
struct _D3DPROCESSVERTICES D3DPROCESSVERTICES
struct _D3DLIGHTINGELEMENT * LPD3DLIGHTINGELEMENT
struct _D3DLVERTEX D3DLVERTEX
struct _D3DCLIPSTATUS D3DCLIPSTATUS
enum _D3DTEXTUREBLEND D3DTEXTUREBLEND
enum _D3DRENDERSTATETYPE D3DRENDERSTATETYPE
struct _D3DSTATS D3DSTATS
struct _D3DPROCESSVERTICES * LPD3DPROCESSVERTICES
struct _D3DCOLORVALUE D3DCOLORVALUE
struct _D3DMATRIX * LPD3DMATRIX
struct _D3DMATRIX D3DMATRIX
struct _D3DPICKRECORD * LPD3DPICKRECORD
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
struct _D3DSTATE D3DSTATE
struct _D3DVIEWPORT * LPD3DVIEWPORT
struct _D3DMATRIXMULTIPLY * LPD3DMATRIXMULTIPLY
enum _D3DOPCODE D3DOPCODE
struct _D3DINSTRUCTION * LPD3DINSTRUCTION
struct _D3DLVERTEX * LPD3DLVERTEX
@ D3DLIGHTSTATE_COLORMODEL
@ D3DLIGHTSTATE_FOGDENSITY
@ D3DLIGHTSTATE_FORCE_DWORD
@ D3DANTIALIAS_SORTINDEPENDENT
@ D3DANTIALIAS_SORTDEPENDENT
@ D3DANTIALIAS_FORCE_DWORD
struct _D3DEXECUTEDATA D3DEXECUTEDATA
struct _D3DHVERTEX * LPD3DHVERTEX
enum _D3DANTIALIASMODE D3DANTIALIASMODE
@ D3DTBLEND_MODULATEALPHA
struct _D3DLINE * LPD3DLINE
struct _D3DSTATUS * LPD3DSTATUS
struct _D3DTLVERTEX D3DTLVERTEX
struct _D3DMATERIAL D3DMATERIAL
struct _D3DVECTOR * LPD3DVECTOR
struct _D3DLIGHTDATA D3DLIGHTDATA
@ D3DTRANSFORMSTATE_PROJECTION
@ D3DTRANSFORMSTATE_WORLD
@ D3DTRANSFORMSTATE_FORCE_DWORD
DWORD * LPD3DTEXTUREHANDLE
struct _D3DTRIANGLE D3DTRIANGLE
struct _D3DVIEWPORT D3DVIEWPORT
struct _D3DVERTEX * LPD3DVERTEX
struct _D3DSPAN * LPD3DSPAN
struct _D3DCOLORVALUE * LPD3DCOLORVALUE
struct _D3DLIGHT2 D3DLIGHT2
struct _D3DSTATUS D3DSTATUS
enum _D3DLIGHTTYPE D3DLIGHTTYPE
struct _D3DRECT * LPD3DRECT
struct _D3DEXECUTEDATA * LPD3DEXECUTEDATA
struct _D3DTRANSFORMDATA D3DTRANSFORMDATA
HRESULT(WINAPI * LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext)
@ D3DFILTER_LINEARMIPLINEAR
@ D3DFILTER_LINEARMIPNEAREST
enum _D3DFOGMODE D3DFOGMODE
struct _DDSURFACEDESC FAR * LPDDSURFACEDESC
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
HWND DWORD LPVOID lpContext
T Max(T p_t1, T p_t2)
[AI] Returns the maximum of two values.
T Min(T p_t1, T p_t2)
[AI] Returns the minimum of two values.
DWORD dwInstructionOffset
DWORD dwInstructionLength
LPD3DLIGHTINGELEMENT lpIn
D3DCOLORVALUE dcvEmissive
D3DCOLORVALUE dcvSpecular
D3DTEXTUREHANDLE hTexture
D3DMATRIXHANDLE hSrcMatrix
D3DMATRIXHANDLE hDestMatrix
D3DMATRIXHANDLE hDestMatrix
D3DMATRIXHANDLE hSrcMatrix1
D3DMATRIXHANDLE hSrcMatrix2
D3DLIGHTSTATETYPE dlstLightStateType
D3DTRANSFORMSTATETYPE dtstTransformStateType
D3DRENDERSTATETYPE drstRenderStateType
DWORD dwVerticesProcessed
D3DTEXTUREHANDLE hSrcTexture
D3DTEXTUREHANDLE hDestTexture