FS2_Open
Open source remastering of the Freespace 2 engine
vd3dtypes.h
Go to the documentation of this file.
1 /*==========================================================================;
2  *
3  * Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
4  *
5  * File: d3dtypes.h
6  * Content: Direct3D types include file
7  *
8  ***************************************************************************/
9 
10 #ifndef _D3DTYPES_H_
11 #define _D3DTYPES_H_
12 
13 #if (! defined _WIN32) && (! defined WIN95)
14 #include "subwtype.h"
15 #else
16 #include <windows.h>
17 #endif
18 
19 #include <float.h>
20 #include "directx/vddraw.h"
21 
22 #pragma pack(4)
23 
24 /* D3DVALUE is the fundamental Direct3D fractional data type */
25 
26 #define D3DVALP(val, prec) ((float)(val))
27 #define D3DVAL(val) ((float)(val))
28 typedef float D3DVALUE, *LPD3DVALUE;
29 #define D3DDivide(a, b) (float)((double) (a) / (double) (b))
30 #define D3DMultiply(a, b) ((a) * (b))
31 
32 typedef LONG D3DFIXED;
33 
34 #ifndef RGB_MAKE
35 /*
36  * Format of CI colors is
37  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
38  * | alpha | color index | fraction |
39  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
40  */
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))
47 
48 /*
49  * Format of RGBA colors is
50  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51  * | alpha | red | green | blue |
52  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53  */
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)))
59 
60 /* D3DRGB and D3DRGBA may be used as initialisers for D3DCOLORs
61  * The float values must be in the range 0..1
62  */
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) \
68  )
69 
70 /*
71  * Format of RGB colors is
72  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
73  * | ignored | red | green | blue |
74  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
75  */
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))
83 
84 #endif
85 
86 /*
87  * Flags for Enumerate functions
88  */
89 
90 /*
91  * Stop the enumeration
92  */
93 #define D3DENUMRET_CANCEL DDENUMRET_CANCEL
94 
95 /*
96  * Continue the enumeration
97  */
98 #define D3DENUMRET_OK DDENUMRET_OK
99 
100 typedef HRESULT (WINAPI* LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset);
102 
104 
108 
109 typedef struct _D3DCOLORVALUE {
110  union {
113  };
114  union {
117  };
118  union {
121  };
122  union {
125  };
127 
128 typedef struct _D3DRECT {
129  union {
132  };
133  union {
136  };
137  union {
140  };
141  union {
144  };
145 } D3DRECT, *LPD3DRECT;
146 
147 typedef struct _D3DVECTOR {
148  union {
151  };
152  union {
155  };
156  union {
159  };
160 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
161 
162 public:
163 
164  // =====================================
165  // Constructors
166  // =====================================
167 
168  _D3DVECTOR() { }
170  _D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z);
171  _D3DVECTOR(const D3DVALUE f[3]);
172 
173  // =====================================
174  // Access grants
175  // =====================================
176 
177  const D3DVALUE&operator[](int i) const;
178  D3DVALUE&operator[](int i);
179 
180  // =====================================
181  // Assignment operators
182  // =====================================
183 
184  _D3DVECTOR& operator += (const _D3DVECTOR& v);
185  _D3DVECTOR& operator -= (const _D3DVECTOR& v);
186  _D3DVECTOR& operator *= (const _D3DVECTOR& v);
187  _D3DVECTOR& operator /= (const _D3DVECTOR& v);
188  _D3DVECTOR& operator *= (D3DVALUE s);
189  _D3DVECTOR& operator /= (D3DVALUE s);
190 
191  // =====================================
192  // Unary operators
193  // =====================================
194 
195  friend _D3DVECTOR operator + (const _D3DVECTOR& v);
196  friend _D3DVECTOR operator - (const _D3DVECTOR& v);
197 
198 
199  // =====================================
200  // Binary operators
201  // =====================================
202 
203  // Addition and subtraction
204  friend _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
205  friend _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
206  // Scalar multiplication and division
207  friend _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s);
208  friend _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v);
209  friend _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s);
210  // Memberwise multiplication and division
211  friend _D3DVECTOR operator * (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
212  friend _D3DVECTOR operator / (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
213 
214  // Vector dominance
215  friend int operator < (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
216  friend int operator <= (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
217 
218  // Bitwise equality
219  friend int operator == (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
220 
221  // Length-related functions
222  friend D3DVALUE SquareMagnitude (const _D3DVECTOR& v);
223  friend D3DVALUE Magnitude (const _D3DVECTOR& v);
224 
225  // Returns vector with same direction and unit length
226  friend _D3DVECTOR Normalize (const _D3DVECTOR& v);
227 
228  // Return min/max component of the input vector
229  friend D3DVALUE Min (const _D3DVECTOR& v);
230  friend D3DVALUE Max (const _D3DVECTOR& v);
231 
232  // Return memberwise min/max of input vectors
233  friend _D3DVECTOR Minimize (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
234  friend _D3DVECTOR Maximize (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
235 
236  // Dot and cross product
237  friend D3DVALUE DotProduct (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
238  friend _D3DVECTOR CrossProduct (const _D3DVECTOR& v1, const _D3DVECTOR& v2);
239 
240 #endif
241 
243 
244 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
245 #include "vd3dvec.inl"
246 #endif
247 
248 /*
249  * Vertex data types supported in an ExecuteBuffer.
250  */
251 
252 /*
253  * Homogeneous vertices
254  */
255 
256 typedef struct _D3DHVERTEX {
257  DWORD dwFlags; /* Homogeneous clipping flags */
258  union {
261  };
262  union {
265  };
266  union {
269  };
271 
272 /*
273  * Transformed/lit vertices
274  */
275 typedef struct _D3DTLVERTEX {
276  union {
277  D3DVALUE sx; /* Screen coordinates */
279  };
280  union {
283  };
284  union {
287  };
288  union {
289  D3DVALUE rhw; /* Reciprocal of homogeneous w */
291  };
292  union {
293  D3DCOLOR color; /* Vertex color */
295  };
296  union {
297  D3DCOLOR specular; /* Specular component of vertex */
299  };
300  union {
301  D3DVALUE tu; /* Texture coordinates */
303  };
304  union {
307  };
308  union {
309  D3DVALUE env_u; /* Texture coordinates */
311  };
312  union {
315  };
316 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
317  _D3DTLVERTEX() { }
318  _D3DTLVERTEX(const D3DVECTOR& v, float _rhw,
319  D3DCOLOR _color, D3DCOLOR _specular,
320  float _tu, float _tv)
321  { sx = v.x; sy = v.y; sz = v.z; rhw = _rhw;
322  color = _color; specular = _specular;
323  tu = _tu; tv = _tv;
324  }
325 #endif
327 
328 /*
329  * Untransformed/lit vertices
330  */
331 //(D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1)
332 typedef struct _D3DLVERTEX {
333  union {
334  D3DVALUE x; /* Homogeneous coordinates */
336  };
337  union {
340  };
341  union {
344  };
346  union {
347  D3DCOLOR color; /* Vertex color */
349  };
350  union {
351  D3DCOLOR specular; /* Specular component of vertex */
353  };
354  union {
355  D3DVALUE tu; /* Texture coordinates */
357  };
358  union {
361  };
362 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
363  _D3DLVERTEX() { }
364  _D3DLVERTEX(const D3DVECTOR& v,
365  D3DCOLOR _color, D3DCOLOR _specular,
366  float _tu, float _tv)
367  { x = v.x; y = v.y; z = v.z; dwReserved = 0;
368  color = _color; specular = _specular;
369  tu = _tu; tv = _tv;
370  }
371 #endif
373 
374 /*
375  * Untransformed/unlit vertices
376  */
377 
378 typedef struct _D3DVERTEX {
379  union {
380  D3DVALUE x; /* Homogeneous coordinates */
382  };
383  union {
386  };
387  union {
390  };
391  union {
392  D3DVALUE nx; /* Normal */
394  };
395  union {
398  };
399  union {
402  };
403  union {
404  D3DVALUE tu; /* Texture coordinates */
406  };
407  union {
410  };
411  union {
412  D3DVALUE tu2; /* Texture coordinates */
414  };
415  union {
418  };
419 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
420  _D3DVERTEX() { }
421  _D3DVERTEX(const D3DVECTOR& v, const D3DVECTOR& n, float _tu, float _tv, float _tu2=_tu, float _tv2=_tv)
422  { x = v.x; y = v.y; z = v.z;
423  nx = n.x; ny = n.y; nz = n.z;
424  tu = _tu; tv = _tv;
425  tu2 = _tu2; tv2 = _tv2;
426  }
427 #endif
429 
430 /*
431  * Matrix, viewport, and tranformation structures and definitions.
432  */
433 
434 typedef struct _D3DMATRIX {
435 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
436  union {
437  struct {
438 #endif
439 
444 
445 #if (defined __cplusplus) && (defined D3D_OVERLOADS)
446  };
447  D3DVALUE m[4][4];
448  };
449  _D3DMATRIX() { }
450  _D3DMATRIX( D3DVALUE _m00, D3DVALUE _m01, D3DVALUE _m02, D3DVALUE _m03,
451  D3DVALUE _m10, D3DVALUE _m11, D3DVALUE _m12, D3DVALUE _m13,
452  D3DVALUE _m20, D3DVALUE _m21, D3DVALUE _m22, D3DVALUE _m23,
453  D3DVALUE _m30, D3DVALUE _m31, D3DVALUE _m32, D3DVALUE _m33
454  )
455  {
456  m[0][0] = _m00; m[0][1] = _m01; m[0][2] = _m02; m[0][3] = _m03;
457  m[1][0] = _m10; m[1][1] = _m11; m[1][2] = _m12; m[1][3] = _m13;
458  m[2][0] = _m20; m[2][1] = _m21; m[2][2] = _m22; m[2][3] = _m23;
459  m[3][0] = _m30; m[3][1] = _m31; m[3][2] = _m32; m[3][3] = _m33;
460  }
461 
462  D3DVALUE& operator()(int iRow, int iColumn) { return m[iRow][iColumn]; }
463  const D3DVALUE& operator()(int iRow, int iColumn) const { return m[iRow][iColumn]; }
464 #endif
466 
467 typedef struct _D3DVIEWPORT {
470  DWORD dwY; /* Top left */
472  DWORD dwHeight; /* Dimensions */
473  D3DVALUE dvScaleX; /* Scale homogeneous to screen */
474  D3DVALUE dvScaleY; /* Scale homogeneous to screen */
475  D3DVALUE dvMaxX; /* Min/max homogeneous x coord */
476  D3DVALUE dvMaxY; /* Min/max homogeneous y coord */
478  D3DVALUE dvMaxZ; /* Min/max homogeneous z coord */
480 
481 typedef struct _D3DVIEWPORT2 {
484  DWORD dwY; /* Viewport Top left */
486  DWORD dwHeight; /* Viewport Dimensions */
487  D3DVALUE dvClipX; /* Top left of clip volume */
489  D3DVALUE dvClipWidth; /* Clip Volume Dimensions */
491  D3DVALUE dvMinZ; /* Min/max of clip Volume */
494 
495 /*
496  * Values for clip fields.
497  */
498 #define D3DCLIP_LEFT 0x00000001L
499 #define D3DCLIP_RIGHT 0x00000002L
500 #define D3DCLIP_TOP 0x00000004L
501 #define D3DCLIP_BOTTOM 0x00000008L
502 #define D3DCLIP_FRONT 0x00000010L
503 #define D3DCLIP_BACK 0x00000020L
504 #define D3DCLIP_GEN0 0x00000040L
505 #define D3DCLIP_GEN1 0x00000080L
506 #define D3DCLIP_GEN2 0x00000100L
507 #define D3DCLIP_GEN3 0x00000200L
508 #define D3DCLIP_GEN4 0x00000400L
509 #define D3DCLIP_GEN5 0x00000800L
510 
511 /*
512  * Values for d3d status.
513  */
514 #define D3DSTATUS_CLIPUNIONLEFT D3DCLIP_LEFT
515 #define D3DSTATUS_CLIPUNIONRIGHT D3DCLIP_RIGHT
516 #define D3DSTATUS_CLIPUNIONTOP D3DCLIP_TOP
517 #define D3DSTATUS_CLIPUNIONBOTTOM D3DCLIP_BOTTOM
518 #define D3DSTATUS_CLIPUNIONFRONT D3DCLIP_FRONT
519 #define D3DSTATUS_CLIPUNIONBACK D3DCLIP_BACK
520 #define D3DSTATUS_CLIPUNIONGEN0 D3DCLIP_GEN0
521 #define D3DSTATUS_CLIPUNIONGEN1 D3DCLIP_GEN1
522 #define D3DSTATUS_CLIPUNIONGEN2 D3DCLIP_GEN2
523 #define D3DSTATUS_CLIPUNIONGEN3 D3DCLIP_GEN3
524 #define D3DSTATUS_CLIPUNIONGEN4 D3DCLIP_GEN4
525 #define D3DSTATUS_CLIPUNIONGEN5 D3DCLIP_GEN5
526 
527 #define D3DSTATUS_CLIPINTERSECTIONLEFT 0x00001000L
528 #define D3DSTATUS_CLIPINTERSECTIONRIGHT 0x00002000L
529 #define D3DSTATUS_CLIPINTERSECTIONTOP 0x00004000L
530 #define D3DSTATUS_CLIPINTERSECTIONBOTTOM 0x00008000L
531 #define D3DSTATUS_CLIPINTERSECTIONFRONT 0x00010000L
532 #define D3DSTATUS_CLIPINTERSECTIONBACK 0x00020000L
533 #define D3DSTATUS_CLIPINTERSECTIONGEN0 0x00040000L
534 #define D3DSTATUS_CLIPINTERSECTIONGEN1 0x00080000L
535 #define D3DSTATUS_CLIPINTERSECTIONGEN2 0x00100000L
536 #define D3DSTATUS_CLIPINTERSECTIONGEN3 0x00200000L
537 #define D3DSTATUS_CLIPINTERSECTIONGEN4 0x00400000L
538 #define D3DSTATUS_CLIPINTERSECTIONGEN5 0x00800000L
539 #define D3DSTATUS_ZNOTVISIBLE 0x01000000L
540 /* Do not use 0x80000000 for any status flags in future as it is reserved */
541 
542 #define D3DSTATUS_CLIPUNIONALL ( \
543  D3DSTATUS_CLIPUNIONLEFT | \
544  D3DSTATUS_CLIPUNIONRIGHT | \
545  D3DSTATUS_CLIPUNIONTOP | \
546  D3DSTATUS_CLIPUNIONBOTTOM | \
547  D3DSTATUS_CLIPUNIONFRONT | \
548  D3DSTATUS_CLIPUNIONBACK | \
549  D3DSTATUS_CLIPUNIONGEN0 | \
550  D3DSTATUS_CLIPUNIONGEN1 | \
551  D3DSTATUS_CLIPUNIONGEN2 | \
552  D3DSTATUS_CLIPUNIONGEN3 | \
553  D3DSTATUS_CLIPUNIONGEN4 | \
554  D3DSTATUS_CLIPUNIONGEN5 \
555  )
556 
557 #define D3DSTATUS_CLIPINTERSECTIONALL ( \
558  D3DSTATUS_CLIPINTERSECTIONLEFT | \
559  D3DSTATUS_CLIPINTERSECTIONRIGHT | \
560  D3DSTATUS_CLIPINTERSECTIONTOP | \
561  D3DSTATUS_CLIPINTERSECTIONBOTTOM | \
562  D3DSTATUS_CLIPINTERSECTIONFRONT | \
563  D3DSTATUS_CLIPINTERSECTIONBACK | \
564  D3DSTATUS_CLIPINTERSECTIONGEN0 | \
565  D3DSTATUS_CLIPINTERSECTIONGEN1 | \
566  D3DSTATUS_CLIPINTERSECTIONGEN2 | \
567  D3DSTATUS_CLIPINTERSECTIONGEN3 | \
568  D3DSTATUS_CLIPINTERSECTIONGEN4 | \
569  D3DSTATUS_CLIPINTERSECTIONGEN5 \
570  )
571 
572 #define D3DSTATUS_DEFAULT ( \
573  D3DSTATUS_CLIPINTERSECTIONALL | \
574  D3DSTATUS_ZNOTVISIBLE)
575 
576 
577 /*
578  * Options for direct transform calls
579  */
580 #define D3DTRANSFORM_CLIPPED 0x00000001l
581 #define D3DTRANSFORM_UNCLIPPED 0x00000002l
582 
583 typedef struct _D3DTRANSFORMDATA {
585  LPVOID lpIn; /* Input vertices */
586  DWORD dwInSize; /* Stride of input vertices */
587  LPVOID lpOut; /* Output vertices */
588  DWORD dwOutSize; /* Stride of output vertices */
589  LPD3DHVERTEX lpHOut; /* Output homogeneous vertices */
590  DWORD dwClip; /* Clipping hint */
592  DWORD dwClipUnion; /* Union of all clip flags */
593  D3DRECT drExtent; /* Extent of transformed vertices */
595 
596 /*
597  * Structure defining position and direction properties for lighting.
598  */
599 typedef struct _D3DLIGHTINGELEMENT {
600  D3DVECTOR dvPosition; /* Lightable point in model space */
601  D3DVECTOR dvNormal; /* Normalised unit vector */
603 
604 /*
605  * Structure defining material properties for lighting.
606  */
607 typedef struct _D3DMATERIAL {
609  union {
610  D3DCOLORVALUE diffuse; /* Diffuse color RGBA */
612  };
613  union {
614  D3DCOLORVALUE ambient; /* Ambient color RGB */
616  };
617  union {
618  D3DCOLORVALUE specular; /* Specular 'shininess' */
620  };
621  union {
622  D3DCOLORVALUE emissive; /* Emissive color RGB */
624  };
625  union {
626  D3DVALUE power; /* Sharpness if specular highlight */
628  };
629  D3DTEXTUREHANDLE hTexture; /* Handle to texture map */
632 
633 typedef enum _D3DLIGHTTYPE {
638  D3DLIGHT_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
639 } D3DLIGHTTYPE;
640 
641 /*
642  * Structure defining a light source and its properties.
643  */
644 typedef struct _D3DLIGHT {
646  D3DLIGHTTYPE dltType; /* Type of light source */
647  D3DCOLORVALUE dcvColor; /* Color of light */
648  D3DVECTOR dvPosition; /* Position in world space */
649  D3DVECTOR dvDirection; /* Direction in world space */
650  D3DVALUE dvRange; /* Cutoff range */
651  D3DVALUE dvFalloff; /* Falloff */
652  D3DVALUE dvAttenuation0; /* Constant attenuation */
653  D3DVALUE dvAttenuation1; /* Linear attenuation */
654  D3DVALUE dvAttenuation2; /* Quadratic attenuation */
655  D3DVALUE dvTheta; /* Inner angle of spotlight cone */
656  D3DVALUE dvPhi; /* Outer angle of spotlight cone */
657 } D3DLIGHT, *LPD3DLIGHT;
658 
659 /*
660  * Structure defining a light source and its properties.
661  */
662 
663 /* flags bits */
664 #define D3DLIGHT_ACTIVE 0x00000001
665 #define D3DLIGHT_NO_SPECULAR 0x00000002
666 
667 /* maximum valid light range */
668 #define D3DLIGHT_RANGE_MAX ((float)sqrt(FLT_MAX))
669 
670 typedef struct _D3DLIGHT2 {
672  D3DLIGHTTYPE dltType; /* Type of light source */
673  D3DCOLORVALUE dcvColor; /* Color of light */
674  D3DVECTOR dvPosition; /* Position in world space */
675  D3DVECTOR dvDirection; /* Direction in world space */
676  D3DVALUE dvRange; /* Cutoff range */
677  D3DVALUE dvFalloff; /* Falloff */
678  D3DVALUE dvAttenuation0; /* Constant attenuation */
679  D3DVALUE dvAttenuation1; /* Linear attenuation */
680  D3DVALUE dvAttenuation2; /* Quadratic attenuation */
681  D3DVALUE dvTheta; /* Inner angle of spotlight cone */
682  D3DVALUE dvPhi; /* Outer angle of spotlight cone */
685 
686 typedef struct _D3DLIGHTDATA {
688  LPD3DLIGHTINGELEMENT lpIn; /* Input positions and normals */
689  DWORD dwInSize; /* Stride of input elements */
690  LPD3DTLVERTEX lpOut; /* Output colors */
691  DWORD dwOutSize; /* Stride of output colors */
693 
694 /*
695  * Before DX5, these values were in an enum called
696  * D3DCOLORMODEL. This was not correct, since they are
697  * bit flags. A driver can surface either or both flags
698  * in the dcmColorModel member of D3DDEVICEDESC.
699  */
700 #define D3DCOLOR_MONO 1
701 #define D3DCOLOR_RGB 2
702 
704 
705 /*
706  * Options for clearing
707  */
708 #define D3DCLEAR_TARGET 0x00000001l /* Clear target surface */
709 #define D3DCLEAR_ZBUFFER 0x00000002l /* Clear target z buffer */
710 
711 /*
712  * Execute buffers are allocated via Direct3D. These buffers may then
713  * be filled by the application with instructions to execute along with
714  * vertex data.
715  */
716 
717 /*
718  * Supported op codes for execute instructions.
719  */
720 typedef enum _D3DOPCODE {
735  D3DOP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
736 } D3DOPCODE;
737 
738 typedef struct _D3DINSTRUCTION {
739  BYTE bOpcode; /* Instruction opcode */
740  BYTE bSize; /* Size of each instruction data unit */
741  WORD wCount; /* Count of instruction data units to follow */
743 
744 /*
745  * Structure for texture loads
746  */
747 typedef struct _D3DTEXTURELOAD {
751 
752 /*
753  * Structure for picking
754  */
755 typedef struct _D3DPICKRECORD {
756  BYTE bOpcode;
757  BYTE bPad;
761 
762 /*
763  * The following defines the rendering states which can be set in the
764  * execute buffer.
765  */
766 
767 typedef enum _D3DSHADEMODE {
771  D3DSHADE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
772 } D3DSHADEMODE;
773 
774 typedef enum _D3DFILLMODE {
778  D3DFILL_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
779 } D3DFILLMODE;
780 
781 typedef struct _D3DLINEPATTERN {
785 
786 typedef enum _D3DTEXTUREFILTER {
793  D3DFILTER_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
795 
796 typedef enum _D3DBLEND {
810  D3DBLEND_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
811 } D3DBLEND;
812 
813 typedef enum _D3DTEXTUREBLEND {
822  D3DTBLEND_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
824 
825 typedef enum _D3DTEXTUREADDRESS {
830  D3DTADDRESS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
832 
833 typedef enum _D3DCULL {
837  D3DCULL_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
838 } D3DCULL;
839 
840 typedef enum _D3DCMPFUNC {
849  D3DCMP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
850 } D3DCMPFUNC;
851 
852 typedef enum _D3DFOGMODE {
857  D3DFOG_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
858 } D3DFOGMODE;
859 
860 typedef enum _D3DANTIALIASMODE {
864  D3DANTIALIAS_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
866 
867 // Vertex types supported by Direct3D
868 typedef enum _D3DVERTEXTYPE {
872  D3DVT_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
873 } D3DVERTEXTYPE;
874 
875 // Primitives supported by draw-primitive API
876 typedef enum _D3DPRIMITIVETYPE {
883  D3DPT_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
885 
886 /*
887  * Amount to add to a state to generate the override for that state.
888  */
889 #define D3DSTATE_OVERRIDE_BIAS 256
890 
891 /*
892  * A state which sets the override flag for the specified state type.
893  */
894 #define D3DSTATE_OVERRIDE(type) ((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS)
895 
900  D3DTRANSFORMSTATE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
902 
903 typedef enum _D3DLIGHTSTATETYPE {
911  D3DLIGHTSTATE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
913 
914 typedef enum _D3DRENDERSTATETYPE {
915  D3DRENDERSTATE_TEXTUREHANDLE = 1, /* Texture handle */
916  D3DRENDERSTATE_ANTIALIAS = 2, /* D3DANTIALIASMODE */
917  D3DRENDERSTATE_TEXTUREADDRESS = 3, /* D3DTEXTUREADDRESS */
918  D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4, /* TRUE for perspective correction */
919  D3DRENDERSTATE_WRAPU = 5, /* TRUE for wrapping in u */
920  D3DRENDERSTATE_WRAPV = 6, /* TRUE for wrapping in v */
921  D3DRENDERSTATE_ZENABLE = 7, /* TRUE to enable z test */
922  D3DRENDERSTATE_FILLMODE = 8, /* D3DFILL_MODE */
923  D3DRENDERSTATE_SHADEMODE = 9, /* D3DSHADEMODE */
924  D3DRENDERSTATE_LINEPATTERN = 10, /* D3DLINEPATTERN */
925  D3DRENDERSTATE_MONOENABLE = 11, /* TRUE to enable mono rasterization */
926  D3DRENDERSTATE_ROP2 = 12, /* ROP2 */
927  D3DRENDERSTATE_PLANEMASK = 13, /* DWORD physical plane mask */
928  D3DRENDERSTATE_ZWRITEENABLE = 14, /* TRUE to enable z writes */
929  D3DRENDERSTATE_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */
930  D3DRENDERSTATE_LASTPIXEL = 16, /* TRUE for last-pixel on lines */
931  D3DRENDERSTATE_TEXTUREMAG = 17, /* D3DTEXTUREFILTER */
932  D3DRENDERSTATE_TEXTUREMIN = 18, /* D3DTEXTUREFILTER */
933  D3DRENDERSTATE_SRCBLEND = 19, /* D3DBLEND */
934  D3DRENDERSTATE_DESTBLEND = 20, /* D3DBLEND */
935  D3DRENDERSTATE_TEXTUREMAPBLEND = 21, /* D3DTEXTUREBLEND */
936  D3DRENDERSTATE_CULLMODE = 22, /* D3DCULL */
937  D3DRENDERSTATE_ZFUNC = 23, /* D3DCMPFUNC */
938  D3DRENDERSTATE_ALPHAREF = 24, /* D3DFIXED */
939  D3DRENDERSTATE_ALPHAFUNC = 25, /* D3DCMPFUNC */
940  D3DRENDERSTATE_DITHERENABLE = 26, /* TRUE to enable dithering */
941  D3DRENDERSTATE_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */
942  D3DRENDERSTATE_FOGENABLE = 28, /* TRUE to enable fog */
943  D3DRENDERSTATE_SPECULARENABLE = 29, /* TRUE to enable specular */
944  D3DRENDERSTATE_ZVISIBLE = 30, /* TRUE to enable z checking */
945  D3DRENDERSTATE_SUBPIXEL = 31, /* TRUE to enable subpixel correction */
946  D3DRENDERSTATE_SUBPIXELX = 32, /* TRUE to enable correction in X only */
947  D3DRENDERSTATE_STIPPLEDALPHA = 33, /* TRUE to enable stippled alpha */
948  D3DRENDERSTATE_FOGCOLOR = 34, /* D3DCOLOR */
949  D3DRENDERSTATE_FOGTABLEMODE = 35, /* D3DFOGMODE */
950  D3DRENDERSTATE_FOGTABLESTART = 36, /* Fog table start */
951  D3DRENDERSTATE_FOGTABLEEND = 37, /* Fog table end */
952  D3DRENDERSTATE_FOGTABLEDENSITY = 38, /* Fog table density */
953  D3DRENDERSTATE_STIPPLEENABLE = 39, /* TRUE to enable stippling */
954  D3DRENDERSTATE_EDGEANTIALIAS = 40, /* TRUE to enable edge antialiasing */
955  D3DRENDERSTATE_COLORKEYENABLE = 41, /* TRUE to enable source colorkeyed textures */
956  D3DRENDERSTATE_BORDERCOLOR = 43, /* Border color for texturing w/border */
957  D3DRENDERSTATE_TEXTUREADDRESSU = 44, /* Texture addressing mode for U coordinate */
958  D3DRENDERSTATE_TEXTUREADDRESSV = 45, /* Texture addressing mode for V coordinate */
959  D3DRENDERSTATE_MIPMAPLODBIAS = 46, /* D3DVALUE Mipmap LOD bias */
960  D3DRENDERSTATE_ZBIAS = 47, /* LONG Z bias */
961  D3DRENDERSTATE_RANGEFOGENABLE = 48, /* Enables range-based fog */
962  D3DRENDERSTATE_ANISOTROPY = 49, /* Max. anisotropy. 1 = no anisotropy */
963  D3DRENDERSTATE_FLUSHBATCH = 50, /* Explicit flush for DP batching (DX5 Only) */
964  D3DRENDERSTATE_STIPPLEPATTERN00 = 64, /* Stipple pattern 01... */
996  D3DRENDERSTATE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
998 
999 // For back-compatibility with legacy compilations
1000 #define D3DRENDERSTATE_BLENDENABLE D3DRENDERSTATE_ALPHABLENDENABLE
1001 
1002 #define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y))
1003 
1004 typedef struct _D3DSTATE {
1005  union {
1009  };
1010  union {
1013  };
1014 } D3DSTATE, *LPD3DSTATE;
1015 
1016 /*
1017  * Operation used to load matrices
1018  * hDstMat = hSrcMat
1019  */
1020 typedef struct _D3DMATRIXLOAD {
1021  D3DMATRIXHANDLE hDestMatrix; /* Destination matrix */
1022  D3DMATRIXHANDLE hSrcMatrix; /* Source matrix */
1024 
1025 /*
1026  * Operation used to multiply matrices
1027  * hDstMat = hSrcMat1 * hSrcMat2
1028  */
1029 typedef struct _D3DMATRIXMULTIPLY {
1030  D3DMATRIXHANDLE hDestMatrix; /* Destination matrix */
1031  D3DMATRIXHANDLE hSrcMatrix1; /* First source matrix */
1032  D3DMATRIXHANDLE hSrcMatrix2; /* Second source matrix */
1034 
1035 /*
1036  * Operation used to transform and light vertices.
1037  */
1038 typedef struct _D3DPROCESSVERTICES {
1039  DWORD dwFlags; /* Do we transform or light or just copy? */
1040  WORD wStart; /* Index to first vertex in source */
1041  WORD wDest; /* Index to first vertex in local buffer */
1042  DWORD dwCount; /* Number of vertices to be processed */
1043  DWORD dwReserved; /* Must be zero */
1045 
1046 #define D3DPROCESSVERTICES_TRANSFORMLIGHT 0x00000000L
1047 #define D3DPROCESSVERTICES_TRANSFORM 0x00000001L
1048 #define D3DPROCESSVERTICES_COPY 0x00000002L
1049 #define D3DPROCESSVERTICES_OPMASK 0x00000007L
1050 
1051 #define D3DPROCESSVERTICES_UPDATEEXTENTS 0x00000008L
1052 #define D3DPROCESSVERTICES_NOCOLOR 0x00000010L
1053 
1054 
1055 /*
1056  * Triangle flags
1057  */
1058 
1059 /*
1060  * Tri strip and fan flags.
1061  * START loads all three vertices
1062  * EVEN and ODD load just v3 with even or odd culling
1063  * START_FLAT contains a count from 0 to 29 that allows the
1064  * whole strip or fan to be culled in one hit.
1065  * e.g. for a quad len = 1
1066  */
1067 #define D3DTRIFLAG_START 0x00000000L
1068 #define D3DTRIFLAG_STARTFLAT(len) (len) /* 0 < len < 30 */
1069 #define D3DTRIFLAG_ODD 0x0000001eL
1070 #define D3DTRIFLAG_EVEN 0x0000001fL
1071 
1072 /*
1073  * Triangle edge flags
1074  * enable edges for wireframe or antialiasing
1075  */
1076 #define D3DTRIFLAG_EDGEENABLE1 0x00000100L /* v0-v1 edge */
1077 #define D3DTRIFLAG_EDGEENABLE2 0x00000200L /* v1-v2 edge */
1078 #define D3DTRIFLAG_EDGEENABLE3 0x00000400L /* v2-v0 edge */
1079 #define D3DTRIFLAG_EDGEENABLETRIANGLE \
1080  (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3)
1081 
1082 /*
1083  * Primitive structures and related defines. Vertex offsets are to types
1084  * D3DVERTEX, D3DLVERTEX, or D3DTLVERTEX.
1085  */
1086 
1087 /*
1088  * Triangle list primitive structure
1089  */
1090 typedef struct _D3DTRIANGLE {
1091  union {
1092  WORD v1; /* Vertex indices */
1094  };
1095  union {
1098  };
1099  union {
1102  };
1103  WORD wFlags; /* Edge (and other) flags */
1105 
1106 /*
1107  * Line list structure.
1108  * The instruction count defines the number of line segments.
1109  */
1110 typedef struct _D3DLINE {
1111  union {
1112  WORD v1; /* Vertex indices */
1114  };
1115  union {
1118  };
1119 } D3DLINE, *LPD3DLINE;
1120 
1121 /*
1122  * Span structure
1123  * Spans join a list of points with the same y value.
1124  * If the y value changes, a new span is started.
1125  */
1126 typedef struct _D3DSPAN {
1127  WORD wCount; /* Number of spans */
1128  WORD wFirst; /* Index to first vertex */
1129 } D3DSPAN, *LPD3DSPAN;
1130 
1131 /*
1132  * Point structure
1133  */
1134 typedef struct _D3DPOINT {
1135  WORD wCount; /* number of points */
1136  WORD wFirst; /* index to first vertex */
1137 } D3DPOINT, *LPD3DPOINT;
1138 
1139 
1140 /*
1141  * Forward branch structure.
1142  * Mask is logically anded with the driver status mask
1143  * if the result equals 'value', the branch is taken.
1144  */
1145 typedef struct _D3DBRANCH {
1146  DWORD dwMask; /* Bitmask against D3D status */
1148  BOOL bNegate; /* TRUE to negate comparison */
1149  DWORD dwOffset; /* How far to branch forward (0 for exit)*/
1151 
1152 /*
1153  * Status used for set status instruction.
1154  * The D3D status is initialised on device creation
1155  * and is modified by all execute calls.
1156  */
1157 typedef struct _D3DSTATUS {
1158  DWORD dwFlags; /* Do we set extents or status */
1159  DWORD dwStatus; /* D3D status */
1162 
1163 #define D3DSETSTATUS_STATUS 0x00000001L
1164 #define D3DSETSTATUS_EXTENTS 0x00000002L
1165 #define D3DSETSTATUS_ALL (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS)
1166 
1167 typedef struct _D3DCLIPSTATUS {
1168  DWORD dwFlags; /* Do we set 2d extents, 3D extents or status */
1169  DWORD dwStatus; /* Clip status */
1170  float minx, maxx; /* X extents */
1171  float miny, maxy; /* Y extents */
1172  float minz, maxz; /* Z extents */
1174 
1175 #define D3DCLIPSTATUS_STATUS 0x00000001L
1176 #define D3DCLIPSTATUS_EXTENTS2 0x00000002L
1177 #define D3DCLIPSTATUS_EXTENTS3 0x00000004L
1178 
1179 /*
1180  * Statistics structure
1181  */
1182 typedef struct _D3DSTATS {
1189 } D3DSTATS, *LPD3DSTATS;
1190 
1191 /*
1192  * Execute options.
1193  * When calling using D3DEXECUTE_UNCLIPPED all the primitives
1194  * inside the buffer must be contained within the viewport.
1195  */
1196 #define D3DEXECUTE_CLIPPED 0x00000001l
1197 #define D3DEXECUTE_UNCLIPPED 0x00000002l
1198 
1199 typedef struct _D3DEXECUTEDATA {
1206  D3DSTATUS dsStatus; /* Status after execute */
1208 
1209 /*
1210  * Palette flags.
1211  * This are or'ed with the peFlags in the PALETTEENTRYs passed to DirectDraw.
1212  */
1213 #define D3DPAL_FREE 0x00 /* Renderer may use this entry freely */
1214 #define D3DPAL_READONLY 0x40 /* Renderer may not set this entry */
1215 #define D3DPAL_RESERVED 0x80 /* Renderer may not use this entry */
1216 
1217 #pragma pack()
1218 
1219 #endif /* _D3DTYPES_H_ */
D3DVALUE dvMinZ
Definition: vd3dtypes.h:477
WORD wCount
Definition: vd3dtypes.h:1127
struct _D3DPOINT D3DPOINT
D3DVALUE dvR
Definition: vd3dtypes.h:112
struct _D3DEXECUTEDATA D3DEXECUTEDATA
struct _D3DPROCESSVERTICES D3DPROCESSVERTICES
WORD wFirst
Definition: vd3dtypes.h:1136
enum _D3DCMPFUNC D3DCMPFUNC
int i
Definition: multi_pxo.cpp:466
D3DVALUE _42
Definition: vd3dtypes.h:443
struct _D3DLVERTEX D3DLVERTEX
struct _D3DTLVERTEX D3DTLVERTEX
#define WINAPI
Definition: config.h:76
struct _D3DLINE D3DLINE
_D3DBLEND
Definition: vd3dtypes.h:796
struct _D3DPICKRECORD D3DPICKRECORD
D3DVALUE _13
Definition: vd3dtypes.h:440
D3DVALUE dvB
Definition: vd3dtypes.h:120
D3DVALUE power
Definition: vd3dtypes.h:626
struct _D3DPICKRECORD * LPD3DPICKRECORD
struct _D3DMATRIXMULTIPLY D3DMATRIXMULTIPLY
D3DVECTOR dvPosition
Definition: vd3dtypes.h:600
bool operator==(const vec3d &self, const vec3d &other)
Definition: pstypes.h:98
D3DVALUE dvZ
Definition: vd3dtypes.h:759
DWORD dwSize
Definition: vd3dtypes.h:671
D3DVALUE dvPhi
Definition: vd3dtypes.h:682
struct _D3DLIGHT2 * LPD3DLIGHT2
D3DVALUE tu
Definition: vd3dtypes.h:404
D3DVALUE dvTV
Definition: vd3dtypes.h:360
D3DVALUE dvAttenuation1
Definition: vd3dtypes.h:653
DWORD dwVerticesProcessed
Definition: vd3dtypes.h:1188
D3DRENDERSTATETYPE drstRenderStateType
Definition: vd3dtypes.h:1008
D3DVECTOR dvNormal
Definition: vd3dtypes.h:601
enum _D3DPRIMITIVETYPE D3DPRIMITIVETYPE
struct _D3DBRANCH D3DBRANCH
D3DVALUE dvMaxZ
Definition: vd3dtypes.h:492
_D3DPRIMITIVETYPE
Definition: vd3dtypes.h:876
struct _D3DPROCESSVERTICES * LPD3DPROCESSVERTICES
struct _D3DLINEPATTERN D3DLINEPATTERN
struct _D3DSPAN D3DSPAN
D3DVALUE tv
Definition: vd3dtypes.h:408
WORD wFirst
Definition: vd3dtypes.h:1128
DWORD * LPD3DCOLOR
Definition: vd3dtypes.h:103
DWORD dwVertexOffset
Definition: vd3dtypes.h:1201
struct _D3DLIGHTDATA * LPD3DLIGHTDATA
DWORD dwHVertexOffset
Definition: vd3dtypes.h:1205
D3DVALUE sz
Definition: vd3dtypes.h:285
DWORD dwFlags
Definition: vd3dtypes.h:1158
struct _D3DMATRIXLOAD * LPD3DMATRIXLOAD
D3DVALUE dvY
Definition: vd3dtypes.h:154
struct _D3DTEXTURELOAD * LPD3DTEXTURELOAD
struct _D3DSTATS * LPD3DSTATS
BOOL bNegate
Definition: vd3dtypes.h:1148
D3DVALUE dvPhi
Definition: vd3dtypes.h:656
struct _D3DTEXTURELOAD D3DTEXTURELOAD
D3DVALUE _31
Definition: vd3dtypes.h:442
DWORD dwRampSize
Definition: vd3dtypes.h:630
struct _D3DMATERIAL D3DMATERIAL
D3DVALUE dvClipWidth
Definition: vd3dtypes.h:489
DWORD D3DTEXTUREHANDLE
Definition: vd3dtypes.h:106
D3DVALUE dvTV
Definition: vd3dtypes.h:409
_D3DFILLMODE
Definition: vd3dtypes.h:774
DWORD D3DMATRIXHANDLE
Definition: vd3dtypes.h:107
enum _D3DSHADEMODE D3DSHADEMODE
WORD v1
Definition: vd3dtypes.h:1112
Definition: 2d.h:95
LPD3DLIGHTINGELEMENT lpIn
Definition: vd3dtypes.h:688
D3DVALUE dvAttenuation2
Definition: vd3dtypes.h:680
D3DCOLOR color
Definition: vd3dtypes.h:347
GLclampf f
Definition: Glext.h:7097
DWORD dwTrianglesDrawn
Definition: vd3dtypes.h:1184
D3DVALUE dvPower
Definition: vd3dtypes.h:627
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
struct _D3DLVERTEX * LPD3DLVERTEX
DWORD dwHeight
Definition: vd3dtypes.h:472
struct _D3DSTATUS D3DSTATUS
D3DVALUE dvX
Definition: vd3dtypes.h:381
struct _D3DMATRIXLOAD D3DMATRIXLOAD
D3DLIGHTSTATETYPE dlstLightStateType
Definition: vd3dtypes.h:1007
_D3DANTIALIASMODE
Definition: vd3dtypes.h:860
D3DVALUE _33
Definition: vd3dtypes.h:442
struct _D3DSPAN * LPD3DSPAN
D3DVALUE y
Definition: vd3dtypes.h:153
D3DVALUE dvZ
Definition: vd3dtypes.h:389
D3DVALUE z
Definition: vd3dtypes.h:342
struct _D3DVERTEX * LPD3DVERTEX
GLfloat GLfloat GLfloat v2
Definition: Glext.h:5640
DWORD dwInstructionOffset
Definition: vd3dtypes.h:1203
D3DCOLOR color
Definition: vd3dtypes.h:293
DWORD dwWidth
Definition: vd3dtypes.h:471
D3DTRANSFORMSTATETYPE dtstTransformStateType
Definition: vd3dtypes.h:1006
D3DVALUE env_v
Definition: vd3dtypes.h:313
D3DVALUE dvScaleX
Definition: vd3dtypes.h:473
D3DVALUE tv
Definition: vd3dtypes.h:359
struct _D3DCLIPSTATUS D3DCLIPSTATUS
LONG y2
Definition: vd3dtypes.h:142
struct _D3DEXECUTEDATA * LPD3DEXECUTEDATA
enum _D3DFILLMODE D3DFILLMODE
_D3DLIGHTSTATETYPE
Definition: vd3dtypes.h:903
struct _D3DSTATUS * LPD3DSTATUS
D3DCOLOR specular
Definition: vd3dtypes.h:297
D3DVALUE _22
Definition: vd3dtypes.h:441
D3DCOLORVALUE diffuse
Definition: vd3dtypes.h:610
D3DRECT drExtent
Definition: vd3dtypes.h:593
D3DVALUE dvZ
Definition: vd3dtypes.h:343
DWORD dwSize
Definition: vd3dtypes.h:468
D3DVALUE dvenv_V
Definition: vd3dtypes.h:314
D3DVALUE z
Definition: vd3dtypes.h:388
D3DVALUE dvSY
Definition: vd3dtypes.h:282
struct _D3DTRIANGLE D3DTRIANGLE
DWORD dwReserved
Definition: vd3dtypes.h:345
D3DVALUE dvSX
Definition: vd3dtypes.h:278
DWORD dwInSize
Definition: vd3dtypes.h:689
struct _D3DVECTOR D3DVECTOR
D3DVALUE hz
Definition: vd3dtypes.h:267
struct _D3DHVERTEX * LPD3DHVERTEX
struct _D3DCOLORVALUE D3DCOLORVALUE
D3DVALUE dvMaxX
Definition: vd3dtypes.h:475
D3DCOLOR dcSpecular
Definition: vd3dtypes.h:352
D3DVECTOR dvPosition
Definition: vd3dtypes.h:674
GLfloat ny
Definition: Glext.h:8367
struct _D3DLIGHTDATA D3DLIGHTDATA
enum _D3DLIGHTTYPE D3DLIGHTTYPE
D3DCOLORVALUE dcvEmissive
Definition: vd3dtypes.h:623
D3DCOLORVALUE dcvAmbient
Definition: vd3dtypes.h:615
D3DVALUE dvA
Definition: vd3dtypes.h:124
D3DVALUE y
Definition: vd3dtypes.h:384
DWORD dwVertexCount
Definition: vd3dtypes.h:1202
D3DMATRIXHANDLE hDestMatrix
Definition: vd3dtypes.h:1021
D3DVALUE dvRHW
Definition: vd3dtypes.h:290
D3DTEXTUREHANDLE hTexture
Definition: vd3dtypes.h:629
D3DVALUE _24
Definition: vd3dtypes.h:441
D3DVALUE dvTheta
Definition: vd3dtypes.h:655
DWORD dwSize
Definition: vd3dtypes.h:1183
D3DVALUE dvTheta
Definition: vd3dtypes.h:681
DWORD dwOutSize
Definition: vd3dtypes.h:691
DWORD dwValue
Definition: vd3dtypes.h:1147
D3DVALUE sx
Definition: vd3dtypes.h:277
struct _D3DCLIPSTATUS * LPD3DCLIPSTATUS
WORD wRepeatFactor
Definition: vd3dtypes.h:782
HWND DWORD LPVOID lpContext
Definition: vddraw.h:425
D3DVALUE dvMaxY
Definition: vd3dtypes.h:476
_D3DSHADEMODE
Definition: vd3dtypes.h:767
D3DVALUE dvMinZ
Definition: vd3dtypes.h:491
_D3DTEXTUREFILTER
Definition: vd3dtypes.h:786
struct _D3DVIEWPORT2 * LPD3DVIEWPORT2
GLdouble GLdouble z
Definition: Glext.h:5451
LPD3DTLVERTEX lpOut
Definition: vd3dtypes.h:690
DWORD dwSize
Definition: vd3dtypes.h:608
float D3DVALUE
Definition: vd3dtypes.h:28
WORD v2
Definition: vd3dtypes.h:1116
struct _D3DHVERTEX D3DHVERTEX
D3DCOLORVALUE specular
Definition: vd3dtypes.h:618
D3DVALUE dvHZ
Definition: vd3dtypes.h:268
GLdouble s
Definition: Glext.h:5321
D3DVALUE tv2
Definition: vd3dtypes.h:416
LONG lX2
Definition: vd3dtypes.h:139
D3DVALUE rhw
Definition: vd3dtypes.h:289
D3DVALUE dvTU2
Definition: vd3dtypes.h:413
D3DCOLORVALUE dcvDiffuse
Definition: vd3dtypes.h:611
LONG x1
Definition: vd3dtypes.h:130
D3DVALUE dvTV2
Definition: vd3dtypes.h:417
D3DVALUE dvFalloff
Definition: vd3dtypes.h:677
DWORD dwHeight
Definition: vd3dtypes.h:486
D3DTEXTUREHANDLE hDestTexture
Definition: vd3dtypes.h:748
D3DVALUE ny
Definition: vd3dtypes.h:396
struct _D3DSTATS D3DSTATS
unsigned long DWORD
Definition: config.h:90
D3DVALUE dvAttenuation2
Definition: vd3dtypes.h:654
struct _D3DTRIANGLE * LPD3DTRIANGLE
enum _D3DTEXTUREBLEND D3DTEXTUREBLEND
D3DVALUE _34
Definition: vd3dtypes.h:442
DWORD dwArg[1]
Definition: vd3dtypes.h:1011
D3DVALUE dvClipHeight
Definition: vd3dtypes.h:490
DWORD dwSize
Definition: vd3dtypes.h:645
D3DVALUE dvNZ
Definition: vd3dtypes.h:401
float * LPD3DVALUE
Definition: vd3dtypes.h:28
struct _D3DVERTEX D3DVERTEX
D3DVALUE b
Definition: vd3dtypes.h:119
_D3DTEXTUREADDRESS
Definition: vd3dtypes.h:825
D3DVALUE dvTV
Definition: vd3dtypes.h:306
DWORD dwLinesDrawn
Definition: vd3dtypes.h:1185
enum _D3DANTIALIASMODE D3DANTIALIASMODE
D3DVALUE r
Definition: vd3dtypes.h:111
GLint GLint GLint GLint GLint x
Definition: Glext.h:5182
_D3DCMPFUNC
Definition: vd3dtypes.h:840
D3DVALUE nx
Definition: vd3dtypes.h:392
GLclampd n
Definition: Glext.h:7286
long HRESULT
Definition: vddraw.h:115
struct _D3DTRANSFORMDATA * LPD3DTRANSFORMDATA
DWORD dwWidth
Definition: vd3dtypes.h:485
D3DVALUE dvTU
Definition: vd3dtypes.h:405
D3DVALUE _41
Definition: vd3dtypes.h:443
_D3DFOGMODE
Definition: vd3dtypes.h:852
D3DSTATUS dsStatus
Definition: vd3dtypes.h:1206
LPD3DHVERTEX lpHOut
Definition: vd3dtypes.h:589
D3DVALUE nz
Definition: vd3dtypes.h:400
D3DCOLORVALUE dcvColor
Definition: vd3dtypes.h:673
long LONG
Definition: config.h:95
enum _D3DRENDERSTATETYPE D3DRENDERSTATETYPE
D3DRECT drExtent
Definition: vd3dtypes.h:1160
D3DVALUE _23
Definition: vd3dtypes.h:441
GLfloat GLfloat v1
Definition: Glext.h:5639
struct _D3DVIEWPORT2 D3DVIEWPORT2
D3DVALUE z
Definition: vd3dtypes.h:157
LONG lY1
Definition: vd3dtypes.h:135
D3DVALUE x
Definition: vd3dtypes.h:149
enum _D3DTEXTUREADDRESS D3DTEXTUREADDRESS
_D3DRENDERSTATETYPE
Definition: vd3dtypes.h:914
HRESULT(WINAPI * LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext)
Definition: vd3dtypes.h:101
struct _D3DINSTRUCTION D3DINSTRUCTION
DWORD D3DCOLORMODEL
Definition: vd3dtypes.h:703
int BOOL
Definition: config.h:80
D3DVALUE tu2
Definition: vd3dtypes.h:412
D3DVALUE sy
Definition: vd3dtypes.h:281
WORD wCount
Definition: vd3dtypes.h:1135
LONG y1
Definition: vd3dtypes.h:134
struct _D3DPOINT * LPD3DPOINT
D3DVALUE hy
Definition: vd3dtypes.h:263
struct _D3DLIGHTINGELEMENT D3DLIGHTINGELEMENT
enum _D3DCULL D3DCULL
D3DVALUE dvClipY
Definition: vd3dtypes.h:488
struct _D3DMATERIAL * LPD3DMATERIAL
D3DCOLOR dcColor
Definition: vd3dtypes.h:348
unsigned short WORD
Definition: config.h:81
DWORD dwInstructionLength
Definition: vd3dtypes.h:1204
_D3DTEXTUREBLEND
Definition: vd3dtypes.h:813
LONG lX1
Definition: vd3dtypes.h:131
_D3DCULL
Definition: vd3dtypes.h:833
struct _D3DLINE * LPD3DLINE
D3DCOLORVALUE dcvColor
Definition: vd3dtypes.h:647
_D3DLIGHTTYPE
Definition: vd3dtypes.h:633
D3DVALUE dvSZ
Definition: vd3dtypes.h:286
WORD wV2
Definition: vd3dtypes.h:1117
struct _D3DTLVERTEX * LPD3DTLVERTEX
D3DVALUE _21
Definition: vd3dtypes.h:441
D3DCOLOR dcSpecular
Definition: vd3dtypes.h:298
GLfloat GLfloat GLfloat GLfloat nx
Definition: Glext.h:8369
struct _DDSURFACEDESC FAR * LPDDSURFACEDESC
Definition: vddraw.h:83
enum _D3DBLEND D3DBLEND
DWORD dwFlags
Definition: vd3dtypes.h:257
D3DVALUE env_u
Definition: vd3dtypes.h:309
enum _D3DFOGMODE D3DFOGMODE
enum _D3DLIGHTSTATETYPE D3DLIGHTSTATETYPE
struct _D3DLIGHT2 D3DLIGHT2
D3DVALUE tv
Definition: vd3dtypes.h:305
D3DMATRIXHANDLE hSrcMatrix
Definition: vd3dtypes.h:1022
D3DVECTOR dvDirection
Definition: vd3dtypes.h:649
D3DVALUE _12
Definition: vd3dtypes.h:440
DWORD dwOffset
Definition: vd3dtypes.h:1149
D3DVALUE dvX
Definition: vd3dtypes.h:335
D3DVECTOR dvPosition
Definition: vd3dtypes.h:648
DWORD * LPD3DTEXTUREHANDLE
Definition: vd3dtypes.h:106
D3DMATRIXHANDLE hDestMatrix
Definition: vd3dtypes.h:1030
struct _D3DINSTRUCTION * LPD3DINSTRUCTION
D3DVALUE g
Definition: vd3dtypes.h:115
DWORD D3DMATERIALHANDLE
Definition: vd3dtypes.h:105
DWORD dwClipIntersection
Definition: vd3dtypes.h:591
LONG x2
Definition: vd3dtypes.h:138
DWORD dwMask
Definition: vd3dtypes.h:1146
D3DVALUE dvTU
Definition: vd3dtypes.h:302
D3DVALUE dvHX
Definition: vd3dtypes.h:260
D3DCOLOR dcColor
Definition: vd3dtypes.h:294
struct _D3DCOLORVALUE * LPD3DCOLORVALUE
D3DVALUE tu
Definition: vd3dtypes.h:301
D3DVALUE dvClipX
Definition: vd3dtypes.h:487
const GLfloat * m
Definition: Glext.h:10319
struct _D3DSTATE D3DSTATE
GLfloat GLfloat nz
Definition: Glext.h:8367
typedef LPVOID
Definition: vddraw.h:119
D3DVALUE _43
Definition: vd3dtypes.h:443
_D3DVERTEXTYPE
Definition: vd3dtypes.h:868
D3DVALUE y
Definition: vd3dtypes.h:338
D3DLIGHTTYPE dltType
Definition: vd3dtypes.h:646
DWORD dwStatus
Definition: vd3dtypes.h:1159
struct _D3DSTATE * LPD3DSTATE
D3DVALUE x
Definition: vd3dtypes.h:334
DWORD dwSize
Definition: vd3dtypes.h:687
D3DCOLOR specular
Definition: vd3dtypes.h:351
DWORD dwSize
Definition: vd3dtypes.h:482
struct _D3DRECT D3DRECT
struct _D3DVECTOR * LPD3DVECTOR
D3DVALUE x
Definition: vd3dtypes.h:380
DWORD * LPD3DMATRIXHANDLE
Definition: vd3dtypes.h:107
D3DVALUE dvX
Definition: vd3dtypes.h:150
D3DMATRIXHANDLE hSrcMatrix2
Definition: vd3dtypes.h:1032
D3DVALUE a
Definition: vd3dtypes.h:123
D3DVALUE dvNY
Definition: vd3dtypes.h:397
struct _D3DBRANCH * LPD3DBRANCH
D3DVALUE hx
Definition: vd3dtypes.h:259
LONG D3DFIXED
Definition: vd3dtypes.h:32
D3DVALUE dvArg[1]
Definition: vd3dtypes.h:1012
D3DVALUE dvG
Definition: vd3dtypes.h:116
D3DVALUE tu
Definition: vd3dtypes.h:355
DWORD * LPD3DMATERIALHANDLE
Definition: vd3dtypes.h:105
D3DVALUE dvAttenuation0
Definition: vd3dtypes.h:678
D3DVALUE dvTU
Definition: vd3dtypes.h:356
D3DVALUE _14
Definition: vd3dtypes.h:440
D3DVALUE dvNX
Definition: vd3dtypes.h:393
D3DVALUE dvAttenuation0
Definition: vd3dtypes.h:652
DWORD dwFlags
Definition: vd3dtypes.h:683
D3DVALUE dvMaxZ
Definition: vd3dtypes.h:478
D3DCOLORVALUE dcvSpecular
Definition: vd3dtypes.h:619
D3DVECTOR dvDirection
Definition: vd3dtypes.h:675
struct _D3DTRANSFORMDATA D3DTRANSFORMDATA
enum _D3DTEXTUREFILTER D3DTEXTUREFILTER
struct _D3DVIEWPORT * LPD3DVIEWPORT
DWORD dwPointsDrawn
Definition: vd3dtypes.h:1186
LONG lY2
Definition: vd3dtypes.h:143
DWORD dwSpansDrawn
Definition: vd3dtypes.h:1187
struct _D3DLIGHTINGELEMENT * LPD3DLIGHTINGELEMENT
D3DVALUE _32
Definition: vd3dtypes.h:442
D3DVALUE dvRange
Definition: vd3dtypes.h:650
D3DVALUE dvFalloff
Definition: vd3dtypes.h:651
struct _D3DRECT * LPD3DRECT
DWORD D3DCOLOR
Definition: vd3dtypes.h:103
WORD wV1
Definition: vd3dtypes.h:1113
struct _D3DMATRIX D3DMATRIX
struct _D3DVIEWPORT D3DVIEWPORT
D3DVALUE _44
Definition: vd3dtypes.h:443
D3DTEXTUREHANDLE hSrcTexture
Definition: vd3dtypes.h:749
D3DCOLORVALUE ambient
Definition: vd3dtypes.h:614
D3DVALUE dvY
Definition: vd3dtypes.h:339
const GLdouble * v
Definition: Glext.h:5322
_D3DTRANSFORMSTATETYPE
Definition: vd3dtypes.h:896
struct _D3DLIGHT D3DLIGHT
struct _D3DLIGHT * LPD3DLIGHT
enum _D3DVERTEXTYPE D3DVERTEXTYPE
D3DCOLORVALUE emissive
Definition: vd3dtypes.h:622
struct _D3DMATRIX * LPD3DMATRIX
D3DVALUE dvRange
Definition: vd3dtypes.h:676
D3DMATRIXHANDLE hSrcMatrix1
Definition: vd3dtypes.h:1031
D3DVALUE _11
Definition: vd3dtypes.h:440
DWORD dwOffset
Definition: vd3dtypes.h:758
D3DVALUE dvAttenuation1
Definition: vd3dtypes.h:679
HRESULT(WINAPI * LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset)
Definition: vd3dtypes.h:100
struct _D3DMATRIXMULTIPLY * LPD3DMATRIXMULTIPLY
enum _D3DOPCODE D3DOPCODE
D3DLIGHTTYPE dltType
Definition: vd3dtypes.h:672
GLint y
Definition: Gl.h:1505
D3DVALUE dvScaleY
Definition: vd3dtypes.h:474
D3DVALUE dvY
Definition: vd3dtypes.h:385
_D3DOPCODE
Definition: vd3dtypes.h:720
D3DVALUE dvenv_U
Definition: vd3dtypes.h:310
D3DVALUE dvHY
Definition: vd3dtypes.h:264
D3DVALUE dvZ
Definition: vd3dtypes.h:158