Hex Artifact Content

Not logged in

Artifact 2c1af0c93353982726fce07894a59e7f363b5e26:


0000: 2f 2a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  /*==============
0010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3b 0d 0a 20  ============;.. 
0050: 2a 0d 0a 20 2a 20 20 43 6f 70 79 72 69 67 68 74  *.. *  Copyright
0060: 20 28 43 29 20 4d 69 63 72 6f 73 6f 66 74 20 43   (C) Microsoft C
0070: 6f 72 70 6f 72 61 74 69 6f 6e 2e 20 20 41 6c 6c  orporation.  All
0080: 20 52 69 67 68 74 73 20 52 65 73 65 72 76 65 64   Rights Reserved
0090: 2e 0d 0a 20 2a 0d 0a 20 2a 20 20 46 69 6c 65 3a  ... *.. *  File:
00a0: 20 20 20 20 20 20 20 64 33 64 39 74 79 70 65 73         d3d9types
00b0: 2e 68 0d 0a 20 2a 20 20 43 6f 6e 74 65 6e 74 3a  .h.. *  Content:
00c0: 20 20 20 20 44 69 72 65 63 74 33 44 20 63 61 70      Direct3D cap
00d0: 61 62 69 6c 69 74 69 65 73 20 69 6e 63 6c 75 64  abilities includ
00e0: 65 20 66 69 6c 65 0d 0a 20 2a 0d 0a 20 2a 2a 2a  e file.. *.. ***
00f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0100: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0110: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a 6d 6f 64  ********/....mod
0140: 75 6c 65 20 77 69 6e 33 32 2e 64 69 72 65 63 74  ule win32.direct
0150: 78 2e 64 33 64 39 74 79 70 65 73 3b 0d 0a 0d 0a  x.d3d9types;....
0160: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77  private import w
0170: 69 6e 33 32 2e 77 69 6e 64 6f 77 73 3b 0d 0a 0d  in32.windows;...
0180: 0a 2f 2f 20 41 6c 69 67 6e 6d 65 6e 74 20 63 6f  .// Alignment co
0190: 6d 70 61 74 69 62 69 6c 69 74 79 0d 0a 61 6c 69  mpatibility..ali
01a0: 67 6e 28 34 29 3a 0d 0a 0d 0a 2f 2f 20 44 33 44  gn(4):....// D3D
01b0: 43 4f 4c 4f 52 20 69 73 20 65 71 75 69 76 61 6c  COLOR is equival
01c0: 65 6e 74 20 74 6f 20 44 33 44 46 4d 54 5f 41 38  ent to D3DFMT_A8
01d0: 52 38 47 38 42 38 0d 0a 61 6c 69 61 73 20 54 79  R8G8B8..alias Ty
01e0: 70 65 44 65 66 21 28 75 69 6e 74 29 20 44 33 44  peDef!(uint) D3D
01f0: 43 4f 4c 4f 52 3b 0d 0a 0d 0a 2f 2f 20 6d 61 70  COLOR;....// map
0200: 73 20 75 6e 73 69 67 6e 65 64 20 38 20 62 69 74  s unsigned 8 bit
0210: 73 2f 63 68 61 6e 6e 65 6c 20 74 6f 20 44 33 44  s/channel to D3D
0220: 43 4f 4c 4f 52 0d 0a 44 33 44 43 4f 4c 4f 52 20  COLOR..D3DCOLOR 
0230: 44 33 44 43 4f 4c 4f 52 5f 41 52 47 42 28 75 62  D3DCOLOR_ARGB(ub
0240: 79 74 65 20 61 2c 75 62 79 74 65 20 72 2c 75 62  yte a,ubyte r,ub
0250: 79 74 65 20 67 2c 75 62 79 74 65 20 62 29 20 7b  yte g,ubyte b) {
0260: 20 72 65 74 75 72 6e 20 63 61 73 74 28 44 33 44   return cast(D3D
0270: 43 4f 4c 4f 52 29 28 28 61 3c 3c 32 34 29 7c 28  COLOR)((a<<24)|(
0280: 72 3c 3c 31 36 29 7c 28 67 3c 3c 38 29 7c 62 29  r<<16)|(g<<8)|b)
0290: 3b 20 7d 0d 0a 44 33 44 43 4f 4c 4f 52 20 44 33  ; }..D3DCOLOR D3
02a0: 44 43 4f 4c 4f 52 5f 52 47 42 41 28 75 62 79 74  DCOLOR_RGBA(ubyt
02b0: 65 20 72 2c 75 62 79 74 65 20 67 2c 75 62 79 74  e r,ubyte g,ubyt
02c0: 65 20 62 2c 75 62 79 74 65 20 61 29 20 7b 20 72  e b,ubyte a) { r
02d0: 65 74 75 72 6e 20 44 33 44 43 4f 4c 4f 52 5f 41  eturn D3DCOLOR_A
02e0: 52 47 42 28 61 2c 72 2c 67 2c 62 29 3b 20 7d 0d  RGB(a,r,g,b); }.
02f0: 0a 44 33 44 43 4f 4c 4f 52 20 44 33 44 43 4f 4c  .D3DCOLOR D3DCOL
0300: 4f 52 5f 58 52 47 42 28 75 62 79 74 65 20 72 2c  OR_XRGB(ubyte r,
0310: 75 62 79 74 65 20 67 2c 75 62 79 74 65 20 62 29  ubyte g,ubyte b)
0320: 20 7b 20 72 65 74 75 72 6e 20 44 33 44 43 4f 4c   { return D3DCOL
0330: 4f 52 5f 41 52 47 42 28 30 78 66 66 2c 72 2c 67  OR_ARGB(0xff,r,g
0340: 2c 62 29 3b 20 7d 0d 0a 0d 0a 44 33 44 43 4f 4c  ,b); }....D3DCOL
0350: 4f 52 20 44 33 44 43 4f 4c 4f 52 5f 58 59 55 56  OR D3DCOLOR_XYUV
0360: 28 75 62 79 74 65 20 79 2c 20 75 62 79 74 65 20  (ubyte y, ubyte 
0370: 75 2c 20 75 62 79 74 65 20 76 29 20 7b 20 72 65  u, ubyte v) { re
0380: 74 75 72 6e 20 44 33 44 43 4f 4c 4f 52 5f 41 52  turn D3DCOLOR_AR
0390: 47 42 28 30 78 66 66 2c 79 2c 75 2c 76 29 3b 20  GB(0xff,y,u,v); 
03a0: 7d 0d 0a 44 33 44 43 4f 4c 4f 52 20 44 33 44 43  }..D3DCOLOR D3DC
03b0: 4f 4c 4f 52 5f 41 59 55 56 28 20 75 62 79 74 65  OLOR_AYUV( ubyte
03c0: 20 61 2c 20 75 62 79 74 65 20 79 2c 20 75 62 79   a, ubyte y, uby
03d0: 74 65 20 75 2c 20 75 62 79 74 65 20 76 29 20 7b  te u, ubyte v) {
03e0: 20 72 65 74 75 72 6e 20 44 33 44 43 4f 4c 4f 52   return D3DCOLOR
03f0: 5f 41 52 47 42 28 61 2c 79 2c 75 2c 76 29 3b 20  _ARGB(a,y,u,v); 
0400: 7d 0d 0a 0d 0a 2f 2f 20 6d 61 70 73 20 66 6c 6f  }....// maps flo
0410: 61 74 69 6e 67 20 70 6f 69 6e 74 20 63 68 61 6e  ating point chan
0420: 6e 65 6c 73 20 28 30 2e 66 20 74 6f 20 31 2e 66  nels (0.f to 1.f
0430: 20 72 61 6e 67 65 29 20 74 6f 20 44 33 44 43 4f   range) to D3DCO
0440: 4c 4f 52 0d 0a 44 33 44 43 4f 4c 4f 52 20 44 33  LOR..D3DCOLOR D3
0450: 44 43 4f 4c 4f 52 5f 43 4f 4c 4f 52 56 41 4c 55  DCOLOR_COLORVALU
0460: 45 28 66 6c 6f 61 74 20 72 2c 20 66 6c 6f 61 74  E(float r, float
0470: 20 67 2c 20 66 6c 6f 61 74 20 62 2c 20 66 6c 6f   g, float b, flo
0480: 61 74 20 61 29 20 7b 20 72 65 74 75 72 6e 20 44  at a) { return D
0490: 33 44 43 4f 4c 4f 52 5f 52 47 42 41 28 63 61 73  3DCOLOR_RGBA(cas
04a0: 74 28 75 62 79 74 65 29 28 72 2a 32 35 35 2e 30  t(ubyte)(r*255.0
04b0: 66 29 2c 63 61 73 74 28 75 62 79 74 65 29 28 67  f),cast(ubyte)(g
04c0: 2a 32 35 35 2e 30 66 29 2c 63 61 73 74 28 75 62  *255.0f),cast(ub
04d0: 79 74 65 29 28 62 2a 32 35 35 2e 30 66 29 2c 63  yte)(b*255.0f),c
04e0: 61 73 74 28 75 62 79 74 65 29 28 61 2a 32 35 35  ast(ubyte)(a*255
04f0: 2e 30 66 29 29 3b 20 7d 0d 0a 0d 0a 73 74 72 75  .0f)); }....stru
0500: 63 74 20 44 33 44 56 45 43 54 4f 52 20 7b 0d 0a  ct D3DVECTOR {..
0510: 20 20 20 20 66 6c 6f 61 74 20 78 3b 0d 0a 20 20      float x;..  
0520: 20 20 66 6c 6f 61 74 20 79 3b 0d 0a 20 20 20 20    float y;..    
0530: 66 6c 6f 61 74 20 7a 3b 0d 0a 7d 0d 0a 0d 0a 73  float z;..}....s
0540: 74 72 75 63 74 20 44 33 44 43 4f 4c 4f 52 56 41  truct D3DCOLORVA
0550: 4c 55 45 20 7b 0d 0a 20 20 20 20 66 6c 6f 61 74  LUE {..    float
0560: 20 72 3b 0d 0a 20 20 20 20 66 6c 6f 61 74 20 67   r;..    float g
0570: 3b 0d 0a 20 20 20 20 66 6c 6f 61 74 20 62 3b 0d  ;..    float b;.
0580: 0a 20 20 20 20 66 6c 6f 61 74 20 61 3b 0d 0a 7d  .    float a;..}
0590: 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 52 45  ....struct D3DRE
05a0: 43 54 20 7b 0d 0a 20 20 20 20 4c 4f 4e 47 20 78  CT {..    LONG x
05b0: 31 3b 0d 0a 20 20 20 20 4c 4f 4e 47 20 79 31 3b  1;..    LONG y1;
05c0: 0d 0a 20 20 20 20 4c 4f 4e 47 20 78 32 3b 0d 0a  ..    LONG x2;..
05d0: 20 20 20 20 4c 4f 4e 47 20 79 32 3b 0d 0a 7d 0d      LONG y2;..}.
05e0: 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 4d 41 54  ...struct D3DMAT
05f0: 52 49 58 20 7b 0d 0a 20 20 20 20 75 6e 69 6f 6e  RIX {..    union
0600: 20 7b 0d 0a 20 20 20 20 20 20 20 20 73 74 72 75   {..        stru
0610: 63 74 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20  ct {..          
0620: 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20 20 5f    float        _
0630: 31 31 2c 20 5f 31 32 2c 20 5f 31 33 2c 20 5f 31  11, _12, _13, _1
0640: 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  4;..            
0650: 66 6c 6f 61 74 20 20 20 20 20 20 20 20 5f 32 31  float        _21
0660: 2c 20 5f 32 32 2c 20 5f 32 33 2c 20 5f 32 34 3b  , _22, _23, _24;
0670: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6c  ..            fl
0680: 6f 61 74 20 20 20 20 20 20 20 20 5f 33 31 2c 20  oat        _31, 
0690: 5f 33 32 2c 20 5f 33 33 2c 20 5f 33 34 3b 0d 0a  _32, _33, _34;..
06a0: 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61              floa
06b0: 74 20 20 20 20 20 20 20 20 5f 34 31 2c 20 5f 34  t        _41, _4
06c0: 32 2c 20 5f 34 33 2c 20 5f 34 34 3b 0d 0a 20 20  2, _43, _44;..  
06d0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
06e0: 20 66 6c 6f 61 74 5b 34 5d 5b 34 5d 20 6d 3b 0d   float[4][4] m;.
06f0: 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 73 74 72  .    }..}....str
0700: 75 63 74 20 44 33 44 56 49 45 57 50 4f 52 54 39  uct D3DVIEWPORT9
0710: 20 7b 0d 0a 20 20 20 20 75 69 6e 74 20 20 20 20   {..    uint    
0720: 20 20 20 20 58 3b 0d 0a 20 20 20 20 75 69 6e 74      X;..    uint
0730: 20 20 20 20 20 20 20 20 59 3b 20 20 20 20 20 20          Y;      
0740: 20 20 20 20 20 20 2f 2a 20 56 69 65 77 70 6f 72        /* Viewpor
0750: 74 20 54 6f 70 20 6c 65 66 74 20 2a 2f 0d 0a 20  t Top left */.. 
0760: 20 20 20 75 69 6e 74 20 20 20 20 20 20 20 20 57     uint        W
0770: 69 64 74 68 3b 0d 0a 20 20 20 20 75 69 6e 74 20  idth;..    uint 
0780: 20 20 20 20 20 20 20 48 65 69 67 68 74 3b 20 20         Height;  
0790: 20 20 20 20 20 2f 2a 20 56 69 65 77 70 6f 72 74       /* Viewport
07a0: 20 44 69 6d 65 6e 73 69 6f 6e 73 20 2a 2f 0d 0a   Dimensions */..
07b0: 20 20 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20      float       
07c0: 4d 69 6e 5a 3b 20 20 20 20 20 20 20 20 20 2f 2a  MinZ;         /*
07d0: 20 4d 69 6e 2f 6d 61 78 20 6f 66 20 63 6c 69 70   Min/max of clip
07e0: 20 56 6f 6c 75 6d 65 20 2a 2f 0d 0a 20 20 20 20   Volume */..    
07f0: 66 6c 6f 61 74 20 20 20 20 20 20 20 4d 61 78 5a  float       MaxZ
0800: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 0d 0a 20 2a 20 56  ;..}..../*.. * V
0810: 61 6c 75 65 73 20 66 6f 72 20 63 6c 69 70 20 66  alues for clip f
0820: 69 65 6c 64 73 2e 0d 0a 20 2a 2f 0d 0a 0d 0a 2f  ields... */..../
0830: 2f 20 4d 61 78 20 6e 75 6d 62 65 72 20 6f 66 20  / Max number of 
0840: 75 73 65 72 20 63 6c 69 70 70 69 6e 67 20 70 6c  user clipping pl
0850: 61 6e 65 73 2c 20 73 75 70 70 6f 72 74 65 64 20  anes, supported 
0860: 69 6e 20 44 33 44 2e 0d 0a 63 6f 6e 73 74 20 44  in D3D...const D
0870: 33 44 4d 41 58 55 53 45 52 43 4c 49 50 50 4c 41  3DMAXUSERCLIPPLA
0880: 4e 45 53 20 3d 20 33 32 3b 0d 0a 0d 0a 2f 2f 20  NES = 32;....// 
0890: 54 68 65 73 65 20 62 69 74 73 20 63 6f 75 6c 64  These bits could
08a0: 20 62 65 20 4f 52 65 64 20 74 6f 67 65 74 68 65   be ORed togethe
08b0: 72 20 74 6f 20 75 73 65 20 77 69 74 68 20 44 33  r to use with D3
08c0: 44 52 53 5f 43 4c 49 50 50 4c 41 4e 45 45 4e 41  DRS_CLIPPLANEENA
08d0: 42 4c 45 0d 0a 2f 2f 0d 0a 63 6f 6e 73 74 20 44  BLE..//..const D
08e0: 33 44 43 4c 49 50 50 4c 41 4e 45 30 20 3d 20 28  3DCLIPPLANE0 = (
08f0: 31 3c 3c 30 29 3b 0d 0a 63 6f 6e 73 74 20 44 33  1<<0);..const D3
0900: 44 43 4c 49 50 50 4c 41 4e 45 31 20 3d 20 28 31  DCLIPPLANE1 = (1
0910: 3c 3c 31 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  <<1);..const D3D
0920: 43 4c 49 50 50 4c 41 4e 45 32 20 3d 20 28 31 3c  CLIPPLANE2 = (1<
0930: 3c 32 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43  <2);..const D3DC
0940: 4c 49 50 50 4c 41 4e 45 33 20 3d 20 28 31 3c 3c  LIPPLANE3 = (1<<
0950: 33 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43 4c  3);..const D3DCL
0960: 49 50 50 4c 41 4e 45 34 20 3d 20 28 31 3c 3c 34  IPPLANE4 = (1<<4
0970: 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43 4c 49  );..const D3DCLI
0980: 50 50 4c 41 4e 45 35 20 3d 20 28 31 3c 3c 35 29  PPLANE5 = (1<<5)
0990: 3b 0d 0a 0d 0a 2f 2f 20 54 68 65 20 66 6f 6c 6c  ;....// The foll
09a0: 6f 77 69 6e 67 20 62 69 74 73 20 61 72 65 20 75  owing bits are u
09b0: 73 65 64 20 69 6e 20 74 68 65 20 43 6c 69 70 55  sed in the ClipU
09c0: 6e 69 6f 6e 20 61 6e 64 20 43 6c 69 70 49 6e 74  nion and ClipInt
09d0: 65 72 73 65 63 74 69 6f 6e 0d 0a 2f 2f 20 6d 65  ersection..// me
09e0: 6d 62 65 72 73 20 6f 66 20 74 68 65 20 44 33 44  mbers of the D3D
09f0: 43 4c 49 50 53 54 41 54 55 53 39 0d 0a 2f 2f 0d  CLIPSTATUS9..//.
0a00: 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 43 53 5f 4c  ...const D3DCS_L
0a10: 45 46 54 20 3d 20 30 78 30 30 30 30 30 30 30 31  EFT = 0x00000001
0a20: 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43 53 5f  L;..const D3DCS_
0a30: 52 49 47 48 54 20 3d 20 30 78 30 30 30 30 30 30  RIGHT = 0x000000
0a40: 30 32 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43  02L;..const D3DC
0a50: 53 5f 54 4f 50 20 3d 20 30 78 30 30 30 30 30 30  S_TOP = 0x000000
0a60: 30 34 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43  04L;..const D3DC
0a70: 53 5f 42 4f 54 54 4f 4d 20 3d 20 30 78 30 30 30  S_BOTTOM = 0x000
0a80: 30 30 30 30 38 4c 3b 0d 0a 63 6f 6e 73 74 20 44  00008L;..const D
0a90: 33 44 43 53 5f 46 52 4f 4e 54 20 3d 20 30 78 30  3DCS_FRONT = 0x0
0aa0: 30 30 30 30 30 31 30 4c 3b 0d 0a 63 6f 6e 73 74  0000010L;..const
0ab0: 20 44 33 44 43 53 5f 42 41 43 4b 20 3d 20 30 78   D3DCS_BACK = 0x
0ac0: 30 30 30 30 30 30 32 30 4c 3b 0d 0a 63 6f 6e 73  00000020L;..cons
0ad0: 74 20 44 33 44 43 53 5f 50 4c 41 4e 45 30 20 3d  t D3DCS_PLANE0 =
0ae0: 20 30 78 30 30 30 30 30 30 34 30 4c 3b 0d 0a 63   0x00000040L;..c
0af0: 6f 6e 73 74 20 44 33 44 43 53 5f 50 4c 41 4e 45  onst D3DCS_PLANE
0b00: 31 20 3d 20 30 78 30 30 30 30 30 30 38 30 4c 3b  1 = 0x00000080L;
0b10: 0d 0a 63 6f 6e 73 74 20 44 33 44 43 53 5f 50 4c  ..const D3DCS_PL
0b20: 41 4e 45 32 20 3d 20 30 78 30 30 30 30 30 31 30  ANE2 = 0x0000010
0b30: 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43 53  0L;..const D3DCS
0b40: 5f 50 4c 41 4e 45 33 20 3d 20 30 78 30 30 30 30  _PLANE3 = 0x0000
0b50: 30 32 30 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33  0200L;..const D3
0b60: 44 43 53 5f 50 4c 41 4e 45 34 20 3d 20 30 78 30  DCS_PLANE4 = 0x0
0b70: 30 30 30 30 34 30 30 4c 3b 0d 0a 63 6f 6e 73 74  0000400L;..const
0b80: 20 44 33 44 43 53 5f 50 4c 41 4e 45 35 20 3d 20   D3DCS_PLANE5 = 
0b90: 30 78 30 30 30 30 30 38 30 30 4c 3b 0d 0a 0d 0a  0x00000800L;....
0ba0: 63 6f 6e 73 74 20 44 33 44 43 53 5f 41 4c 4c 20  const D3DCS_ALL 
0bb0: 3d 20 44 33 44 43 53 5f 4c 45 46 54 20 20 20 7c  = D3DCS_LEFT   |
0bc0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0bd0: 20 20 20 20 44 33 44 43 53 5f 52 49 47 48 54 20      D3DCS_RIGHT 
0be0: 20 7c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   |..            
0bf0: 20 20 20 20 20 20 44 33 44 43 53 5f 54 4f 50 20        D3DCS_TOP 
0c00: 20 20 20 7c 0d 0a 20 20 20 20 20 20 20 20 20 20     |..          
0c10: 20 20 20 20 20 20 20 20 44 33 44 43 53 5f 42 4f          D3DCS_BO
0c20: 54 54 4f 4d 20 7c 0d 0a 20 20 20 20 20 20 20 20  TTOM |..        
0c30: 20 20 20 20 20 20 20 20 20 20 44 33 44 43 53 5f            D3DCS_
0c40: 46 52 4f 4e 54 20 20 7c 0d 0a 20 20 20 20 20 20  FRONT  |..      
0c50: 20 20 20 20 20 20 20 20 20 20 20 20 44 33 44 43              D3DC
0c60: 53 5f 42 41 43 4b 20 20 20 7c 0d 0a 20 20 20 20  S_BACK   |..    
0c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 33                D3
0c80: 44 43 53 5f 50 4c 41 4e 45 30 20 7c 0d 0a 20 20  DCS_PLANE0 |..  
0c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ca0: 44 33 44 43 53 5f 50 4c 41 4e 45 31 20 7c 0d 0a  D3DCS_PLANE1 |..
0cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0cc0: 20 20 44 33 44 43 53 5f 50 4c 41 4e 45 32 20 7c    D3DCS_PLANE2 |
0cd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
0ce0: 20 20 20 20 44 33 44 43 53 5f 50 4c 41 4e 45 33      D3DCS_PLANE3
0cf0: 20 7c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   |..            
0d00: 20 20 20 20 20 20 44 33 44 43 53 5f 50 4c 41 4e        D3DCS_PLAN
0d10: 45 34 20 7c 0d 0a 20 20 20 20 20 20 20 20 20 20  E4 |..          
0d20: 20 20 20 20 20 20 20 20 44 33 44 43 53 5f 50 4c          D3DCS_PL
0d30: 41 4e 45 35 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  ANE5;....struct 
0d40: 44 33 44 43 4c 49 50 53 54 41 54 55 53 39 20 7b  D3DCLIPSTATUS9 {
0d50: 0d 0a 20 20 20 20 75 69 6e 74 20 43 6c 69 70 55  ..    uint ClipU
0d60: 6e 69 6f 6e 3b 0d 0a 20 20 20 20 75 69 6e 74 20  nion;..    uint 
0d70: 43 6c 69 70 49 6e 74 65 72 73 65 63 74 69 6f 6e  ClipIntersection
0d80: 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44  ;..}....struct D
0d90: 33 44 4d 41 54 45 52 49 41 4c 39 20 7b 0d 0a 20  3DMATERIAL9 {.. 
0da0: 20 20 20 44 33 44 43 4f 4c 4f 52 56 41 4c 55 45     D3DCOLORVALUE
0db0: 20 20 20 44 69 66 66 75 73 65 3b 20 20 20 20 20     Diffuse;     
0dc0: 20 20 20 2f 2a 20 44 69 66 66 75 73 65 20 63 6f     /* Diffuse co
0dd0: 6c 6f 72 20 52 47 42 41 20 2a 2f 0d 0a 20 20 20  lor RGBA */..   
0de0: 20 44 33 44 43 4f 4c 4f 52 56 41 4c 55 45 20 20   D3DCOLORVALUE  
0df0: 20 41 6d 62 69 65 6e 74 3b 20 20 20 20 20 20 20   Ambient;       
0e00: 20 2f 2a 20 41 6d 62 69 65 6e 74 20 63 6f 6c 6f   /* Ambient colo
0e10: 72 20 52 47 42 20 2a 2f 0d 0a 20 20 20 20 44 33  r RGB */..    D3
0e20: 44 43 4f 4c 4f 52 56 41 4c 55 45 20 20 20 53 70  DCOLORVALUE   Sp
0e30: 65 63 75 6c 61 72 3b 20 20 20 20 20 20 20 2f 2a  ecular;       /*
0e40: 20 53 70 65 63 75 6c 61 72 20 27 73 68 69 6e 69   Specular 'shini
0e50: 6e 65 73 73 27 20 2a 2f 0d 0a 20 20 20 20 44 33  ness' */..    D3
0e60: 44 43 4f 4c 4f 52 56 41 4c 55 45 20 20 20 45 6d  DCOLORVALUE   Em
0e70: 69 73 73 69 76 65 3b 20 20 20 20 20 20 20 2f 2a  issive;       /*
0e80: 20 45 6d 69 73 73 69 76 65 20 63 6f 6c 6f 72 20   Emissive color 
0e90: 52 47 42 20 2a 2f 0d 0a 20 20 20 20 66 6c 6f 61  RGB */..    floa
0ea0: 74 20 20 20 20 20 20 20 20 20 20 20 50 6f 77 65  t           Powe
0eb0: 72 3b 20 20 20 20 20 20 20 20 20 20 2f 2a 20 53  r;          /* S
0ec0: 68 61 72 70 6e 65 73 73 20 69 66 20 73 70 65 63  harpness if spec
0ed0: 75 6c 61 72 20 68 69 67 68 6c 69 67 68 74 20 2a  ular highlight *
0ee0: 2f 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  /..}....enum : u
0ef0: 69 6e 74 20 7b 0d 0a 20 20 20 20 44 33 44 4c 49  int {..    D3DLI
0f00: 47 48 54 5f 50 4f 49 4e 54 20 20 20 20 20 20 20  GHT_POINT       
0f10: 20 20 20 3d 20 31 2c 0d 0a 20 20 20 20 44 33 44     = 1,..    D3D
0f20: 4c 49 47 48 54 5f 53 50 4f 54 20 20 20 20 20 20  LIGHT_SPOT      
0f30: 20 20 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44       = 2,..    D
0f40: 33 44 4c 49 47 48 54 5f 44 49 52 45 43 54 49 4f  3DLIGHT_DIRECTIO
0f50: 4e 41 4c 20 20 20 20 3d 20 33 0d 0a 7d 0d 0a 61  NAL    = 3..}..a
0f60: 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 75 69  lias TypeDef!(ui
0f70: 6e 74 29 20 44 33 44 4c 49 47 48 54 54 59 50 45  nt) D3DLIGHTTYPE
0f80: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 4c  ;....struct D3DL
0f90: 49 47 48 54 39 20 7b 0d 0a 20 20 20 20 44 33 44  IGHT9 {..    D3D
0fa0: 4c 49 47 48 54 54 59 50 45 20 20 20 20 54 79 70  LIGHTTYPE    Typ
0fb0: 65 3b 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a  e;            /*
0fc0: 20 54 79 70 65 20 6f 66 20 6c 69 67 68 74 20 73   Type of light s
0fd0: 6f 75 72 63 65 20 2a 2f 0d 0a 20 20 20 20 44 33  ource */..    D3
0fe0: 44 43 4f 4c 4f 52 56 41 4c 55 45 20 20 20 44 69  DCOLORVALUE   Di
0ff0: 66 66 75 73 65 3b 20 20 20 20 20 20 20 20 20 2f  ffuse;         /
1000: 2a 20 44 69 66 66 75 73 65 20 63 6f 6c 6f 72 20  * Diffuse color 
1010: 6f 66 20 6c 69 67 68 74 20 2a 2f 0d 0a 20 20 20  of light */..   
1020: 20 44 33 44 43 4f 4c 4f 52 56 41 4c 55 45 20 20   D3DCOLORVALUE  
1030: 20 53 70 65 63 75 6c 61 72 3b 20 20 20 20 20 20   Specular;      
1040: 20 20 2f 2a 20 53 70 65 63 75 6c 61 72 20 63 6f    /* Specular co
1050: 6c 6f 72 20 6f 66 20 6c 69 67 68 74 20 2a 2f 0d  lor of light */.
1060: 0a 20 20 20 20 44 33 44 43 4f 4c 4f 52 56 41 4c  .    D3DCOLORVAL
1070: 55 45 20 20 20 41 6d 62 69 65 6e 74 3b 20 20 20  UE   Ambient;   
1080: 20 20 20 20 20 20 2f 2a 20 41 6d 62 69 65 6e 74        /* Ambient
1090: 20 63 6f 6c 6f 72 20 6f 66 20 6c 69 67 68 74 20   color of light 
10a0: 2a 2f 0d 0a 20 20 20 20 44 33 44 56 45 43 54 4f  */..    D3DVECTO
10b0: 52 20 20 20 20 20 20 20 50 6f 73 69 74 69 6f 6e  R       Position
10c0: 3b 20 20 20 20 20 20 20 20 20 2f 2a 20 50 6f 73  ;         /* Pos
10d0: 69 74 69 6f 6e 20 69 6e 20 77 6f 72 6c 64 20 73  ition in world s
10e0: 70 61 63 65 20 2a 2f 0d 0a 20 20 20 20 44 33 44  pace */..    D3D
10f0: 56 45 43 54 4f 52 20 20 20 20 20 20 20 44 69 72  VECTOR       Dir
1100: 65 63 74 69 6f 6e 3b 20 20 20 20 20 20 20 20 2f  ection;        /
1110: 2a 20 44 69 72 65 63 74 69 6f 6e 20 69 6e 20 77  * Direction in w
1120: 6f 72 6c 64 20 73 70 61 63 65 20 2a 2f 0d 0a 20  orld space */.. 
1130: 20 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20 20     float        
1140: 20 20 20 52 61 6e 67 65 3b 20 20 20 20 20 20 20     Range;       
1150: 20 20 20 20 20 2f 2a 20 43 75 74 6f 66 66 20 72       /* Cutoff r
1160: 61 6e 67 65 20 2a 2f 0d 0a 20 20 20 20 66 6c 6f  ange */..    flo
1170: 61 74 20 20 20 20 20 20 20 20 20 20 20 46 61 6c  at           Fal
1180: 6c 6f 66 66 3b 20 20 20 20 20 20 20 20 20 20 2f  loff;          /
1190: 2a 20 46 61 6c 6c 6f 66 66 20 2a 2f 0d 0a 20 20  * Falloff */..  
11a0: 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20 20 20    float         
11b0: 20 20 41 74 74 65 6e 75 61 74 69 6f 6e 30 3b 20    Attenuation0; 
11c0: 20 20 20 20 2f 2a 20 43 6f 6e 73 74 61 6e 74 20      /* Constant 
11d0: 61 74 74 65 6e 75 61 74 69 6f 6e 20 2a 2f 0d 0a  attenuation */..
11e0: 20 20 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20      float       
11f0: 20 20 20 20 41 74 74 65 6e 75 61 74 69 6f 6e 31      Attenuation1
1200: 3b 20 20 20 20 20 2f 2a 20 4c 69 6e 65 61 72 20  ;     /* Linear 
1210: 61 74 74 65 6e 75 61 74 69 6f 6e 20 2a 2f 0d 0a  attenuation */..
1220: 20 20 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20      float       
1230: 20 20 20 20 41 74 74 65 6e 75 61 74 69 6f 6e 32      Attenuation2
1240: 3b 20 20 20 20 20 2f 2a 20 51 75 61 64 72 61 74  ;     /* Quadrat
1250: 69 63 20 61 74 74 65 6e 75 61 74 69 6f 6e 20 2a  ic attenuation *
1260: 2f 0d 0a 20 20 20 20 66 6c 6f 61 74 20 20 20 20  /..    float    
1270: 20 20 20 20 20 20 20 54 68 65 74 61 3b 20 20 20         Theta;   
1280: 20 20 20 20 20 20 20 20 20 2f 2a 20 49 6e 6e 65           /* Inne
1290: 72 20 61 6e 67 6c 65 20 6f 66 20 73 70 6f 74 6c  r angle of spotl
12a0: 69 67 68 74 20 63 6f 6e 65 20 2a 2f 0d 0a 20 20  ight cone */..  
12b0: 20 20 66 6c 6f 61 74 20 20 20 20 20 20 20 20 20    float         
12c0: 20 20 50 68 69 3b 20 20 20 20 20 20 20 20 20 20    Phi;          
12d0: 20 20 20 20 2f 2a 20 4f 75 74 65 72 20 61 6e 67      /* Outer ang
12e0: 6c 65 20 6f 66 20 73 70 6f 74 6c 69 67 68 74 20  le of spotlight 
12f0: 63 6f 6e 65 20 2a 2f 0d 0a 7d 0d 0a 0d 0a 2f 2a  cone */..}..../*
1300: 0d 0a 20 2a 20 4f 70 74 69 6f 6e 73 20 66 6f 72  .. * Options for
1310: 20 63 6c 65 61 72 69 6e 67 0d 0a 20 2a 2f 0d 0a   clearing.. */..
1320: 63 6f 6e 73 74 20 44 33 44 43 4c 45 41 52 5f 54  const D3DCLEAR_T
1330: 41 52 47 45 54 20 3d 20 30 78 30 30 30 30 30 30  ARGET = 0x000000
1340: 30 31 4c 3b 20 20 2f 2a 20 43 6c 65 61 72 20 74  01L;  /* Clear t
1350: 61 72 67 65 74 20 73 75 72 66 61 63 65 20 2a 2f  arget surface */
1360: 0d 0a 63 6f 6e 73 74 20 44 33 44 43 4c 45 41 52  ..const D3DCLEAR
1370: 5f 5a 42 55 46 46 45 52 20 3d 20 30 78 30 30 30  _ZBUFFER = 0x000
1380: 30 30 30 30 32 4c 3b 20 20 2f 2a 20 43 6c 65 61  00002L;  /* Clea
1390: 72 20 74 61 72 67 65 74 20 7a 20 62 75 66 66 65  r target z buffe
13a0: 72 20 2a 2f 0d 0a 63 6f 6e 73 74 20 44 33 44 43  r */..const D3DC
13b0: 4c 45 41 52 5f 53 54 45 4e 43 49 4c 20 3d 20 30  LEAR_STENCIL = 0
13c0: 78 30 30 30 30 30 30 30 34 4c 3b 20 20 2f 2a 20  x00000004L;  /* 
13d0: 43 6c 65 61 72 20 73 74 65 6e 63 69 6c 20 70 6c  Clear stencil pl
13e0: 61 6e 65 73 20 2a 2f 0d 0a 0d 0a 2f 2a 0d 0a 20  anes */..../*.. 
13f0: 2a 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  * The following 
1400: 64 65 66 69 6e 65 73 20 74 68 65 20 72 65 6e 64  defines the rend
1410: 65 72 69 6e 67 20 73 74 61 74 65 73 0d 0a 20 2a  ering states.. *
1420: 2f 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 53  /....enum : D3DS
1430: 48 41 44 45 4d 4f 44 45 20 7b 0d 0a 20 20 20 20  HADEMODE {..    
1440: 44 33 44 53 48 41 44 45 5f 46 4c 41 54 20 20 20  D3DSHADE_FLAT   
1450: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 2c              = 1,
1460: 0d 0a 20 20 20 20 44 33 44 53 48 41 44 45 5f 47  ..    D3DSHADE_G
1470: 4f 55 52 41 55 44 20 20 20 20 20 20 20 20 20 20  OURAUD          
1480: 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44 53    = 2,..    D3DS
1490: 48 41 44 45 5f 50 48 4f 4e 47 20 20 20 20 20 20  HADE_PHONG      
14a0: 20 20 20 20 20 20 20 20 3d 20 33 0d 0a 7d 20 0d          = 3..} .
14b0: 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28  .alias TypeDef!(
14c0: 75 69 6e 74 29 20 44 33 44 53 48 41 44 45 4d 4f  uint) D3DSHADEMO
14d0: 44 45 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 33  DE;....enum : D3
14e0: 44 46 49 4c 4c 4d 4f 44 45 20 7b 0d 0a 20 20 20  DFILLMODE {..   
14f0: 20 44 33 44 46 49 4c 4c 5f 50 4f 49 4e 54 20 20   D3DFILL_POINT  
1500: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
1510: 2c 0d 0a 20 20 20 20 44 33 44 46 49 4c 4c 5f 57  ,..    D3DFILL_W
1520: 49 52 45 46 52 41 4d 45 20 20 20 20 20 20 20 20  IREFRAME        
1530: 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44     = 2,..    D3D
1540: 46 49 4c 4c 5f 53 4f 4c 49 44 20 20 20 20 20 20  FILL_SOLID      
1550: 20 20 20 20 20 20 20 20 20 3d 20 33 0d 0a 7d 0d           = 3..}.
1560: 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28  .alias TypeDef!(
1570: 75 69 6e 74 29 20 44 33 44 46 49 4c 4c 4d 4f 44  uint) D3DFILLMOD
1580: 45 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 33 44  E;....enum : D3D
1590: 42 4c 45 4e 44 20 7b 0d 0a 20 20 20 20 44 33 44  BLEND {..    D3D
15a0: 42 4c 45 4e 44 5f 5a 45 52 4f 20 20 20 20 20 20  BLEND_ZERO      
15b0: 20 20 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 20           = 1,.. 
15c0: 20 20 20 44 33 44 42 4c 45 4e 44 5f 4f 4e 45 20     D3DBLEND_ONE 
15d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
15e0: 20 32 2c 0d 0a 20 20 20 20 44 33 44 42 4c 45 4e   2,..    D3DBLEN
15f0: 44 5f 53 52 43 43 4f 4c 4f 52 20 20 20 20 20 20  D_SRCCOLOR      
1600: 20 20 20 20 20 3d 20 33 2c 0d 0a 20 20 20 20 44       = 3,..    D
1610: 33 44 42 4c 45 4e 44 5f 49 4e 56 53 52 43 43 4f  3DBLEND_INVSRCCO
1620: 4c 4f 52 20 20 20 20 20 20 20 20 3d 20 34 2c 0d  LOR        = 4,.
1630: 0a 20 20 20 20 44 33 44 42 4c 45 4e 44 5f 53 52  .    D3DBLEND_SR
1640: 43 41 4c 50 48 41 20 20 20 20 20 20 20 20 20 20  CALPHA          
1650: 20 3d 20 35 2c 0d 0a 20 20 20 20 44 33 44 42 4c   = 5,..    D3DBL
1660: 45 4e 44 5f 49 4e 56 53 52 43 41 4c 50 48 41 20  END_INVSRCALPHA 
1670: 20 20 20 20 20 20 20 3d 20 36 2c 0d 0a 20 20 20         = 6,..   
1680: 20 44 33 44 42 4c 45 4e 44 5f 44 45 53 54 41 4c   D3DBLEND_DESTAL
1690: 50 48 41 20 20 20 20 20 20 20 20 20 20 3d 20 37  PHA          = 7
16a0: 2c 0d 0a 20 20 20 20 44 33 44 42 4c 45 4e 44 5f  ,..    D3DBLEND_
16b0: 49 4e 56 44 45 53 54 41 4c 50 48 41 20 20 20 20  INVDESTALPHA    
16c0: 20 20 20 3d 20 38 2c 0d 0a 20 20 20 20 44 33 44     = 8,..    D3D
16d0: 42 4c 45 4e 44 5f 44 45 53 54 43 4f 4c 4f 52 20  BLEND_DESTCOLOR 
16e0: 20 20 20 20 20 20 20 20 20 3d 20 39 2c 0d 0a 20           = 9,.. 
16f0: 20 20 20 44 33 44 42 4c 45 4e 44 5f 49 4e 56 44     D3DBLEND_INVD
1700: 45 53 54 43 4f 4c 4f 52 20 20 20 20 20 20 20 3d  ESTCOLOR       =
1710: 20 31 30 2c 0d 0a 20 20 20 20 44 33 44 42 4c 45   10,..    D3DBLE
1720: 4e 44 5f 53 52 43 41 4c 50 48 41 53 41 54 20 20  ND_SRCALPHASAT  
1730: 20 20 20 20 20 20 3d 20 31 31 2c 0d 0a 20 20 20        = 11,..   
1740: 20 44 33 44 42 4c 45 4e 44 5f 42 4f 54 48 53 52   D3DBLEND_BOTHSR
1750: 43 41 4c 50 48 41 20 20 20 20 20 20 20 3d 20 31  CALPHA       = 1
1760: 32 2c 0d 0a 20 20 20 20 44 33 44 42 4c 45 4e 44  2,..    D3DBLEND
1770: 5f 42 4f 54 48 49 4e 56 53 52 43 41 4c 50 48 41  _BOTHINVSRCALPHA
1780: 20 20 20 20 3d 20 31 33 2c 0d 0a 20 20 20 20 44      = 13,..    D
1790: 33 44 42 4c 45 4e 44 5f 42 4c 45 4e 44 46 41 43  3DBLEND_BLENDFAC
17a0: 54 4f 52 20 20 20 20 20 20 20 20 3d 20 31 34 2c  TOR        = 14,
17b0: 20 2f 2a 20 4f 6e 6c 79 20 73 75 70 70 6f 72 74   /* Only support
17c0: 65 64 20 69 66 20 44 33 44 50 42 4c 45 4e 44 43  ed if D3DPBLENDC
17d0: 41 50 53 5f 42 4c 45 4e 44 46 41 43 54 4f 52 20  APS_BLENDFACTOR 
17e0: 69 73 20 6f 6e 20 2a 2f 0d 0a 20 20 20 20 44 33  is on */..    D3
17f0: 44 42 4c 45 4e 44 5f 49 4e 56 42 4c 45 4e 44 46  DBLEND_INVBLENDF
1800: 41 43 54 4f 52 20 20 20 20 20 3d 20 31 35 2c 20  ACTOR     = 15, 
1810: 2f 2a 20 4f 6e 6c 79 20 73 75 70 70 6f 72 74 65  /* Only supporte
1820: 64 20 69 66 20 44 33 44 50 42 4c 45 4e 44 43 41  d if D3DPBLENDCA
1830: 50 53 5f 42 4c 45 4e 44 46 41 43 54 4f 52 20 69  PS_BLENDFACTOR i
1840: 73 20 6f 6e 20 2a 2f 0d 0a 20 20 20 20 44 33 44  s on */..    D3D
1850: 42 4c 45 4e 44 5f 53 52 43 43 4f 4c 4f 52 32 20  BLEND_SRCCOLOR2 
1860: 20 20 20 20 20 20 20 20 20 3d 20 31 36 2c 0d 0a           = 16,..
1870: 20 20 20 20 44 33 44 42 4c 45 4e 44 5f 49 4e 56      D3DBLEND_INV
1880: 53 52 43 43 4f 4c 4f 52 32 20 20 20 20 20 20 20  SRCCOLOR2       
1890: 3d 20 31 37 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54  = 17..}..alias T
18a0: 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44 33  ypeDef!(uint) D3
18b0: 44 42 4c 45 4e 44 3b 0d 0a 0d 0a 65 6e 75 6d 20  DBLEND;....enum 
18c0: 3a 20 44 33 44 42 4c 45 4e 44 4f 50 20 7b 0d 0a  : D3DBLENDOP {..
18d0: 20 20 20 20 44 33 44 42 4c 45 4e 44 4f 50 5f 41      D3DBLENDOP_A
18e0: 44 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  DD              
18f0: 3d 20 31 2c 0d 0a 20 20 20 20 44 33 44 42 4c 45  = 1,..    D3DBLE
1900: 4e 44 4f 50 5f 53 55 42 54 52 41 43 54 20 20 20  NDOP_SUBTRACT   
1910: 20 20 20 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20        = 2,..    
1920: 44 33 44 42 4c 45 4e 44 4f 50 5f 52 45 56 53 55  D3DBLENDOP_REVSU
1930: 42 54 52 41 43 54 20 20 20 20 20 20 3d 20 33 2c  BTRACT      = 3,
1940: 0d 0a 20 20 20 20 44 33 44 42 4c 45 4e 44 4f 50  ..    D3DBLENDOP
1950: 5f 4d 49 4e 20 20 20 20 20 20 20 20 20 20 20 20  _MIN            
1960: 20 20 3d 20 34 2c 0d 0a 20 20 20 20 44 33 44 42    = 4,..    D3DB
1970: 4c 45 4e 44 4f 50 5f 4d 41 58 20 20 20 20 20 20  LENDOP_MAX      
1980: 20 20 20 20 20 20 20 20 3d 20 35 0d 0a 7d 0d 0a          = 5..}..
1990: 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 75  alias TypeDef!(u
19a0: 69 6e 74 29 20 44 33 44 42 4c 45 4e 44 4f 50 3b  int) D3DBLENDOP;
19b0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 54 45  ....enum : D3DTE
19c0: 58 54 55 52 45 41 44 44 52 45 53 53 20 7b 0d 0a  XTUREADDRESS {..
19d0: 20 20 20 20 44 33 44 54 41 44 44 52 45 53 53 5f      D3DTADDRESS_
19e0: 57 52 41 50 20 20 20 20 20 20 20 20 20 20 20 20  WRAP            
19f0: 3d 20 31 2c 0d 0a 20 20 20 20 44 33 44 54 41 44  = 1,..    D3DTAD
1a00: 44 52 45 53 53 5f 4d 49 52 52 4f 52 20 20 20 20  DRESS_MIRROR    
1a10: 20 20 20 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20        = 2,..    
1a20: 44 33 44 54 41 44 44 52 45 53 53 5f 43 4c 41 4d  D3DTADDRESS_CLAM
1a30: 50 20 20 20 20 20 20 20 20 20 20 20 3d 20 33 2c  P           = 3,
1a40: 0d 0a 20 20 20 20 44 33 44 54 41 44 44 52 45 53  ..    D3DTADDRES
1a50: 53 5f 42 4f 52 44 45 52 20 20 20 20 20 20 20 20  S_BORDER        
1a60: 20 20 3d 20 34 2c 0d 0a 20 20 20 20 44 33 44 54    = 4,..    D3DT
1a70: 41 44 44 52 45 53 53 5f 4d 49 52 52 4f 52 4f 4e  ADDRESS_MIRRORON
1a80: 43 45 20 20 20 20 20 20 3d 20 35 0d 0a 7d 0d 0a  CE      = 5..}..
1a90: 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 75  alias TypeDef!(u
1aa0: 69 6e 74 29 20 44 33 44 54 45 58 54 55 52 45 41  int) D3DTEXTUREA
1ab0: 44 44 52 45 53 53 3b 0d 0a 0d 0a 65 6e 75 6d 20  DDRESS;....enum 
1ac0: 3a 20 44 33 44 43 55 4c 4c 20 7b 0d 0a 20 20 20  : D3DCULL {..   
1ad0: 20 44 33 44 43 55 4c 4c 5f 4e 4f 4e 45 20 20 20   D3DCULL_NONE   
1ae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
1af0: 2c 0d 0a 20 20 20 20 44 33 44 43 55 4c 4c 5f 43  ,..    D3DCULL_C
1b00: 57 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  W               
1b10: 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44     = 2,..    D3D
1b20: 43 55 4c 4c 5f 43 43 57 20 20 20 20 20 20 20 20  CULL_CCW        
1b30: 20 20 20 20 20 20 20 20 20 3d 20 33 0d 0a 7d 0d           = 3..}.
1b40: 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28  .alias TypeDef!(
1b50: 75 69 6e 74 29 20 44 33 44 43 55 4c 4c 3b 0d 0a  uint) D3DCULL;..
1b60: 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 43 4d 50 46  ..enum : D3DCMPF
1b70: 55 4e 43 20 7b 0d 0a 20 20 20 20 44 33 44 43 4d  UNC {..    D3DCM
1b80: 50 5f 4e 45 56 45 52 20 20 20 20 20 20 20 20 20  P_NEVER         
1b90: 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20         = 1,..   
1ba0: 20 44 33 44 43 4d 50 5f 4c 45 53 53 20 20 20 20   D3DCMP_LESS    
1bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32               = 2
1bc0: 2c 0d 0a 20 20 20 20 44 33 44 43 4d 50 5f 45 51  ,..    D3DCMP_EQ
1bd0: 55 41 4c 20 20 20 20 20 20 20 20 20 20 20 20 20  UAL             
1be0: 20 20 20 3d 20 33 2c 0d 0a 20 20 20 20 44 33 44     = 3,..    D3D
1bf0: 43 4d 50 5f 4c 45 53 53 45 51 55 41 4c 20 20 20  CMP_LESSEQUAL   
1c00: 20 20 20 20 20 20 20 20 20 3d 20 34 2c 0d 0a 20           = 4,.. 
1c10: 20 20 20 44 33 44 43 4d 50 5f 47 52 45 41 54 45     D3DCMP_GREATE
1c20: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  R              =
1c30: 20 35 2c 0d 0a 20 20 20 20 44 33 44 43 4d 50 5f   5,..    D3DCMP_
1c40: 4e 4f 54 45 51 55 41 4c 20 20 20 20 20 20 20 20  NOTEQUAL        
1c50: 20 20 20 20 20 3d 20 36 2c 0d 0a 20 20 20 20 44       = 6,..    D
1c60: 33 44 43 4d 50 5f 47 52 45 41 54 45 52 45 51 55  3DCMP_GREATEREQU
1c70: 41 4c 20 20 20 20 20 20 20 20 20 3d 20 37 2c 0d  AL         = 7,.
1c80: 0a 20 20 20 20 44 33 44 43 4d 50 5f 41 4c 57 41  .    D3DCMP_ALWA
1c90: 59 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20  YS              
1ca0: 20 3d 20 38 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54   = 8..}..alias T
1cb0: 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44 33  ypeDef!(uint) D3
1cc0: 44 43 4d 50 46 55 4e 43 3b 0d 0a 0d 0a 65 6e 75  DCMPFUNC;....enu
1cd0: 6d 20 3a 20 44 33 44 53 54 45 4e 43 49 4c 4f 50  m : D3DSTENCILOP
1ce0: 20 7b 0d 0a 20 20 20 20 44 33 44 53 54 45 4e 43   {..    D3DSTENC
1cf0: 49 4c 4f 50 5f 4b 45 45 50 20 20 20 20 20 20 20  ILOP_KEEP       
1d00: 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20 20 44 33      = 1,..    D3
1d10: 44 53 54 45 4e 43 49 4c 4f 50 5f 5a 45 52 4f 20  DSTENCILOP_ZERO 
1d20: 20 20 20 20 20 20 20 20 20 20 3d 20 32 2c 0d 0a            = 2,..
1d30: 20 20 20 20 44 33 44 53 54 45 4e 43 49 4c 4f 50      D3DSTENCILOP
1d40: 5f 52 45 50 4c 41 43 45 20 20 20 20 20 20 20 20  _REPLACE        
1d50: 3d 20 33 2c 0d 0a 20 20 20 20 44 33 44 53 54 45  = 3,..    D3DSTE
1d60: 4e 43 49 4c 4f 50 5f 49 4e 43 52 53 41 54 20 20  NCILOP_INCRSAT  
1d70: 20 20 20 20 20 20 3d 20 34 2c 0d 0a 20 20 20 20        = 4,..    
1d80: 44 33 44 53 54 45 4e 43 49 4c 4f 50 5f 44 45 43  D3DSTENCILOP_DEC
1d90: 52 53 41 54 20 20 20 20 20 20 20 20 3d 20 35 2c  RSAT        = 5,
1da0: 0d 0a 20 20 20 20 44 33 44 53 54 45 4e 43 49 4c  ..    D3DSTENCIL
1db0: 4f 50 5f 49 4e 56 45 52 54 20 20 20 20 20 20 20  OP_INVERT       
1dc0: 20 20 3d 20 36 2c 0d 0a 20 20 20 20 44 33 44 53    = 6,..    D3DS
1dd0: 54 45 4e 43 49 4c 4f 50 5f 49 4e 43 52 20 20 20  TENCILOP_INCR   
1de0: 20 20 20 20 20 20 20 20 3d 20 37 2c 0d 0a 20 20          = 7,..  
1df0: 20 20 44 33 44 53 54 45 4e 43 49 4c 4f 50 5f 44    D3DSTENCILOP_D
1e00: 45 43 52 20 20 20 20 20 20 20 20 20 20 20 3d 20  ECR           = 
1e10: 38 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65  8..}..alias Type
1e20: 44 65 66 21 28 75 69 6e 74 29 20 44 33 44 53 54  Def!(uint) D3DST
1e30: 45 4e 43 49 4c 4f 50 3b 0d 0a 0d 0a 65 6e 75 6d  ENCILOP;....enum
1e40: 20 3a 20 44 33 44 46 4f 47 4d 4f 44 45 20 7b 0d   : D3DFOGMODE {.
1e50: 0a 20 20 20 20 44 33 44 46 4f 47 5f 4e 4f 4e 45  .    D3DFOG_NONE
1e60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e70: 20 3d 20 30 2c 0d 0a 20 20 20 20 44 33 44 46 4f   = 0,..    D3DFO
1e80: 47 5f 45 58 50 20 20 20 20 20 20 20 20 20 20 20  G_EXP           
1e90: 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20         = 1,..   
1ea0: 20 44 33 44 46 4f 47 5f 45 58 50 32 20 20 20 20   D3DFOG_EXP2    
1eb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32               = 2
1ec0: 2c 0d 0a 20 20 20 20 44 33 44 46 4f 47 5f 4c 49  ,..    D3DFOG_LI
1ed0: 4e 45 41 52 20 20 20 20 20 20 20 20 20 20 20 20  NEAR            
1ee0: 20 20 20 3d 20 33 0d 0a 7d 0d 0a 61 6c 69 61 73     = 3..}..alias
1ef0: 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20   TypeDef!(uint) 
1f00: 44 33 44 46 4f 47 4d 4f 44 45 3b 0d 0a 0d 0a 65  D3DFOGMODE;....e
1f10: 6e 75 6d 20 3a 20 44 33 44 5a 42 55 46 46 45 52  num : D3DZBUFFER
1f20: 54 59 50 45 20 7b 0d 0a 20 20 20 20 44 33 44 5a  TYPE {..    D3DZ
1f30: 42 5f 46 41 4c 53 45 20 20 20 20 20 20 20 20 20  B_FALSE         
1f40: 20 20 20 20 20 20 20 20 3d 20 30 2c 0d 0a 20 20          = 0,..  
1f50: 20 20 44 33 44 5a 42 5f 54 52 55 45 20 20 20 20    D3DZB_TRUE    
1f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
1f70: 31 2c 20 2f 2f 20 5a 20 62 75 66 66 65 72 69 6e  1, // Z bufferin
1f80: 67 0d 0a 20 20 20 20 44 33 44 5a 42 5f 55 53 45  g..    D3DZB_USE
1f90: 57 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  W               
1fa0: 20 20 20 3d 20 32 20 2f 2f 20 57 20 62 75 66 66     = 2 // W buff
1fb0: 65 72 69 6e 67 0d 0a 7d 0d 0a 61 6c 69 61 73 20  ering..}..alias 
1fc0: 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44  TypeDef!(uint) D
1fd0: 33 44 5a 42 55 46 46 45 52 54 59 50 45 3b 0d 0a  3DZBUFFERTYPE;..
1fe0: 0d 0a 2f 2f 20 50 72 69 6d 69 74 69 76 65 73 20  ..// Primitives 
1ff0: 73 75 70 70 6f 72 74 65 64 20 62 79 20 64 72 61  supported by dra
2000: 77 2d 70 72 69 6d 69 74 69 76 65 20 41 50 49 0d  w-primitive API.
2010: 0a 65 6e 75 6d 20 3a 20 44 33 44 50 52 49 4d 49  .enum : D3DPRIMI
2020: 54 49 56 45 54 59 50 45 20 7b 0d 0a 20 20 20 20  TIVETYPE {..    
2030: 44 33 44 50 54 5f 50 4f 49 4e 54 4c 49 53 54 20  D3DPT_POINTLIST 
2040: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 2c              = 1,
2050: 0d 0a 20 20 20 20 44 33 44 50 54 5f 4c 49 4e 45  ..    D3DPT_LINE
2060: 4c 49 53 54 20 20 20 20 20 20 20 20 20 20 20 20  LIST            
2070: 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44 50    = 2,..    D3DP
2080: 54 5f 4c 49 4e 45 53 54 52 49 50 20 20 20 20 20  T_LINESTRIP     
2090: 20 20 20 20 20 20 20 20 3d 20 33 2c 0d 0a 20 20          = 3,..  
20a0: 20 20 44 33 44 50 54 5f 54 52 49 41 4e 47 4c 45    D3DPT_TRIANGLE
20b0: 4c 49 53 54 20 20 20 20 20 20 20 20 20 20 3d 20  LIST          = 
20c0: 34 2c 0d 0a 20 20 20 20 44 33 44 50 54 5f 54 52  4,..    D3DPT_TR
20d0: 49 41 4e 47 4c 45 53 54 52 49 50 20 20 20 20 20  IANGLESTRIP     
20e0: 20 20 20 20 3d 20 35 2c 0d 0a 20 20 20 20 44 33      = 5,..    D3
20f0: 44 50 54 5f 54 52 49 41 4e 47 4c 45 46 41 4e 20  DPT_TRIANGLEFAN 
2100: 20 20 20 20 20 20 20 20 20 20 3d 20 36 0d 0a 7d            = 6..}
2110: 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21  ..alias TypeDef!
2120: 28 75 69 6e 74 29 20 44 33 44 50 52 49 4d 49 54  (uint) D3DPRIMIT
2130: 49 56 45 54 59 50 45 3b 0d 0a 0d 0a 44 33 44 54  IVETYPE;....D3DT
2140: 52 41 4e 53 46 4f 52 4d 53 54 41 54 45 54 59 50  RANSFORMSTATETYP
2150: 45 20 44 33 44 54 53 5f 57 4f 52 4c 44 4d 41 54  E D3DTS_WORLDMAT
2160: 52 49 58 28 75 69 6e 74 20 69 6e 64 65 78 29 20  RIX(uint index) 
2170: 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 44 33  { return cast(D3
2180: 44 54 52 41 4e 53 46 4f 52 4d 53 54 41 54 45 54  DTRANSFORMSTATET
2190: 59 50 45 29 28 69 6e 64 65 78 20 2b 20 32 35 36  YPE)(index + 256
21a0: 29 3b 20 7d 0d 0a 74 65 6d 70 6c 61 74 65 20 54  ); }..template T
21b0: 5f 44 33 44 54 53 5f 57 4f 52 4c 44 4d 41 54 52  _D3DTS_WORLDMATR
21c0: 49 58 28 75 69 6e 74 20 69 6e 64 65 78 29 20 7b  IX(uint index) {
21d0: 0d 0a 20 20 20 20 63 6f 6e 73 74 20 44 33 44 54  ..    const D3DT
21e0: 52 41 4e 53 46 4f 52 4d 53 54 41 54 45 54 59 50  RANSFORMSTATETYP
21f0: 45 20 54 5f 44 33 44 54 53 5f 57 4f 52 4c 44 4d  E T_D3DTS_WORLDM
2200: 41 54 52 49 58 20 3d 20 69 6e 64 65 78 20 2b 20  ATRIX = index + 
2210: 32 35 36 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  256;..}....enum 
2220: 3a 20 44 33 44 54 52 41 4e 53 46 4f 52 4d 53 54  : D3DTRANSFORMST
2230: 41 54 45 54 59 50 45 20 7b 0d 0a 20 20 20 20 44  ATETYPE {..    D
2240: 33 44 54 53 5f 56 49 45 57 20 20 20 20 20 20 20  3DTS_VIEW       
2250: 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44     = 2,..    D3D
2260: 54 53 5f 50 52 4f 4a 45 43 54 49 4f 4e 20 20 20  TS_PROJECTION   
2270: 20 3d 20 33 2c 0d 0a 20 20 20 20 44 33 44 54 53   = 3,..    D3DTS
2280: 5f 54 45 58 54 55 52 45 30 20 20 20 20 20 20 3d  _TEXTURE0      =
2290: 20 31 36 2c 0d 0a 20 20 20 20 44 33 44 54 53 5f   16,..    D3DTS_
22a0: 54 45 58 54 55 52 45 31 20 20 20 20 20 20 3d 20  TEXTURE1      = 
22b0: 31 37 2c 0d 0a 20 20 20 20 44 33 44 54 53 5f 54  17,..    D3DTS_T
22c0: 45 58 54 55 52 45 32 20 20 20 20 20 20 3d 20 31  EXTURE2      = 1
22d0: 38 2c 0d 0a 20 20 20 20 44 33 44 54 53 5f 54 45  8,..    D3DTS_TE
22e0: 58 54 55 52 45 33 20 20 20 20 20 20 3d 20 31 39  XTURE3      = 19
22f0: 2c 0d 0a 20 20 20 20 44 33 44 54 53 5f 54 45 58  ,..    D3DTS_TEX
2300: 54 55 52 45 34 20 20 20 20 20 20 3d 20 32 30 2c  TURE4      = 20,
2310: 0d 0a 20 20 20 20 44 33 44 54 53 5f 54 45 58 54  ..    D3DTS_TEXT
2320: 55 52 45 35 20 20 20 20 20 20 3d 20 32 31 2c 0d  URE5      = 21,.
2330: 0a 20 20 20 20 44 33 44 54 53 5f 54 45 58 54 55  .    D3DTS_TEXTU
2340: 52 45 36 20 20 20 20 20 20 3d 20 32 32 2c 0d 0a  RE6      = 22,..
2350: 20 20 20 20 44 33 44 54 53 5f 54 45 58 54 55 52      D3DTS_TEXTUR
2360: 45 37 20 20 20 20 20 20 3d 20 32 33 2c 0d 0a 20  E7      = 23,.. 
2370: 20 20 20 44 33 44 54 53 5f 57 4f 52 4c 44 20 20     D3DTS_WORLD  
2380: 20 20 20 20 20 20 20 3d 20 54 5f 44 33 44 54 53         = T_D3DTS
2390: 5f 57 4f 52 4c 44 4d 41 54 52 49 58 21 28 30 29  _WORLDMATRIX!(0)
23a0: 2c 0d 0a 20 20 20 20 44 33 44 54 53 5f 57 4f 52  ,..    D3DTS_WOR
23b0: 4c 44 31 20 20 20 20 20 20 20 20 3d 20 54 5f 44  LD1        = T_D
23c0: 33 44 54 53 5f 57 4f 52 4c 44 4d 41 54 52 49 58  3DTS_WORLDMATRIX
23d0: 21 28 31 29 2c 0d 0a 20 20 20 20 44 33 44 54 53  !(1),..    D3DTS
23e0: 5f 57 4f 52 4c 44 32 20 20 20 20 20 20 20 20 3d  _WORLD2        =
23f0: 20 54 5f 44 33 44 54 53 5f 57 4f 52 4c 44 4d 41   T_D3DTS_WORLDMA
2400: 54 52 49 58 21 28 32 29 2c 0d 0a 20 20 20 20 44  TRIX!(2),..    D
2410: 33 44 54 53 5f 57 4f 52 4c 44 33 20 20 20 20 20  3DTS_WORLD3     
2420: 20 20 20 3d 20 54 5f 44 33 44 54 53 5f 57 4f 52     = T_D3DTS_WOR
2430: 4c 44 4d 41 54 52 49 58 21 28 33 29 0d 0a 7d 0d  LDMATRIX!(3)..}.
2440: 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28  .alias TypeDef!(
2450: 75 69 6e 74 29 20 44 33 44 54 52 41 4e 53 46 4f  uint) D3DTRANSFO
2460: 52 4d 53 54 41 54 45 54 59 50 45 3b 0d 0a 0d 0a  RMSTATETYPE;....
2470: 65 6e 75 6d 20 3a 20 44 33 44 52 45 4e 44 45 52  enum : D3DRENDER
2480: 53 54 41 54 45 54 59 50 45 20 7b 0d 0a 20 20 20  STATETYPE {..   
2490: 20 44 33 44 52 53 5f 5a 45 4e 41 42 4c 45 20 20   D3DRS_ZENABLE  
24a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
24b0: 20 3d 20 37 2c 20 20 20 20 2f 2a 20 44 33 44 5a   = 7,    /* D3DZ
24c0: 42 55 46 46 45 52 54 59 50 45 20 28 6f 72 20 54  BUFFERTYPE (or T
24d0: 52 55 45 2f 46 41 4c 53 45 20 66 6f 72 20 6c 65  RUE/FALSE for le
24e0: 67 61 63 79 29 20 2a 2f 0d 0a 20 20 20 20 44 33  gacy) */..    D3
24f0: 44 52 53 5f 46 49 4c 4c 4d 4f 44 45 20 20 20 20  DRS_FILLMODE    
2500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
2510: 38 2c 20 20 20 20 2f 2a 20 44 33 44 46 49 4c 4c  8,    /* D3DFILL
2520: 4d 4f 44 45 20 2a 2f 0d 0a 20 20 20 20 44 33 44  MODE */..    D3D
2530: 52 53 5f 53 48 41 44 45 4d 4f 44 45 20 20 20 20  RS_SHADEMODE    
2540: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 39               = 9
2550: 2c 20 20 20 20 2f 2a 20 44 33 44 53 48 41 44 45  ,    /* D3DSHADE
2560: 4d 4f 44 45 20 2a 2f 0d 0a 20 20 20 20 44 33 44  MODE */..    D3D
2570: 52 53 5f 5a 57 52 49 54 45 45 4e 41 42 4c 45 20  RS_ZWRITEENABLE 
2580: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
2590: 34 2c 20 20 20 2f 2a 20 54 52 55 45 20 74 6f 20  4,   /* TRUE to 
25a0: 65 6e 61 62 6c 65 20 7a 20 77 72 69 74 65 73 20  enable z writes 
25b0: 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 41 4c  */..    D3DRS_AL
25c0: 50 48 41 54 45 53 54 45 4e 41 42 4c 45 20 20 20  PHATESTENABLE   
25d0: 20 20 20 20 20 20 20 20 3d 20 31 35 2c 20 20 20          = 15,   
25e0: 2f 2a 20 54 52 55 45 20 74 6f 20 65 6e 61 62 6c  /* TRUE to enabl
25f0: 65 20 61 6c 70 68 61 20 74 65 73 74 73 20 2a 2f  e alpha tests */
2600: 0d 0a 20 20 20 20 44 33 44 52 53 5f 4c 41 53 54  ..    D3DRS_LAST
2610: 50 49 58 45 4c 20 20 20 20 20 20 20 20 20 20 20  PIXEL           
2620: 20 20 20 20 20 20 3d 20 31 36 2c 20 20 20 2f 2a        = 16,   /*
2630: 20 54 52 55 45 20 66 6f 72 20 6c 61 73 74 2d 70   TRUE for last-p
2640: 69 78 65 6c 20 6f 6e 20 6c 69 6e 65 73 20 2a 2f  ixel on lines */
2650: 0d 0a 20 20 20 20 44 33 44 52 53 5f 53 52 43 42  ..    D3DRS_SRCB
2660: 4c 45 4e 44 20 20 20 20 20 20 20 20 20 20 20 20  LEND            
2670: 20 20 20 20 20 20 3d 20 31 39 2c 20 20 20 2f 2a        = 19,   /*
2680: 20 44 33 44 42 4c 45 4e 44 20 2a 2f 0d 0a 20 20   D3DBLEND */..  
2690: 20 20 44 33 44 52 53 5f 44 45 53 54 42 4c 45 4e    D3DRS_DESTBLEN
26a0: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D               
26b0: 20 20 3d 20 32 30 2c 20 20 20 2f 2a 20 44 33 44    = 20,   /* D3D
26c0: 42 4c 45 4e 44 20 2a 2f 0d 0a 20 20 20 20 44 33  BLEND */..    D3
26d0: 44 52 53 5f 43 55 4c 4c 4d 4f 44 45 20 20 20 20  DRS_CULLMODE    
26e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
26f0: 32 32 2c 20 20 20 2f 2a 20 44 33 44 43 55 4c 4c  22,   /* D3DCULL
2700: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 5a   */..    D3DRS_Z
2710: 46 55 4e 43 20 20 20 20 20 20 20 20 20 20 20 20  FUNC            
2720: 20 20 20 20 20 20 20 20 20 3d 20 32 33 2c 20 20           = 23,  
2730: 20 2f 2a 20 44 33 44 43 4d 50 46 55 4e 43 20 2a   /* D3DCMPFUNC *
2740: 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 41 4c 50  /..    D3DRS_ALP
2750: 48 41 52 45 46 20 20 20 20 20 20 20 20 20 20 20  HAREF           
2760: 20 20 20 20 20 20 20 3d 20 32 34 2c 20 20 20 2f         = 24,   /
2770: 2a 20 44 33 44 46 49 58 45 44 20 2a 2f 0d 0a 20  * D3DFIXED */.. 
2780: 20 20 20 44 33 44 52 53 5f 41 4c 50 48 41 46 55     D3DRS_ALPHAFU
2790: 4e 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NC              
27a0: 20 20 20 3d 20 32 35 2c 20 20 20 2f 2a 20 44 33     = 25,   /* D3
27b0: 44 43 4d 50 46 55 4e 43 20 2a 2f 0d 0a 20 20 20  DCMPFUNC */..   
27c0: 20 44 33 44 52 53 5f 44 49 54 48 45 52 45 4e 41   D3DRS_DITHERENA
27d0: 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 20  BLE             
27e0: 20 3d 20 32 36 2c 20 20 20 2f 2a 20 54 52 55 45   = 26,   /* TRUE
27f0: 20 74 6f 20 65 6e 61 62 6c 65 20 64 69 74 68 65   to enable dithe
2800: 72 69 6e 67 20 2a 2f 0d 0a 20 20 20 20 44 33 44  ring */..    D3D
2810: 52 53 5f 41 4c 50 48 41 42 4c 45 4e 44 45 4e 41  RS_ALPHABLENDENA
2820: 42 4c 45 20 20 20 20 20 20 20 20 20 20 3d 20 32  BLE          = 2
2830: 37 2c 20 20 20 2f 2a 20 54 52 55 45 20 74 6f 20  7,   /* TRUE to 
2840: 65 6e 61 62 6c 65 20 61 6c 70 68 61 20 62 6c 65  enable alpha ble
2850: 6e 64 69 6e 67 20 2a 2f 0d 0a 20 20 20 20 44 33  nding */..    D3
2860: 44 52 53 5f 46 4f 47 45 4e 41 42 4c 45 20 20 20  DRS_FOGENABLE   
2870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
2880: 32 38 2c 20 20 20 2f 2a 20 54 52 55 45 20 74 6f  28,   /* TRUE to
2890: 20 65 6e 61 62 6c 65 20 66 6f 67 20 62 6c 65 6e   enable fog blen
28a0: 64 69 6e 67 20 2a 2f 0d 0a 20 20 20 20 44 33 44  ding */..    D3D
28b0: 52 53 5f 53 50 45 43 55 4c 41 52 45 4e 41 42 4c  RS_SPECULARENABL
28c0: 45 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32  E            = 2
28d0: 39 2c 20 20 20 2f 2a 20 54 52 55 45 20 74 6f 20  9,   /* TRUE to 
28e0: 65 6e 61 62 6c 65 20 73 70 65 63 75 6c 61 72 20  enable specular 
28f0: 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 46 4f  */..    D3DRS_FO
2900: 47 43 4f 4c 4f 52 20 20 20 20 20 20 20 20 20 20  GCOLOR          
2910: 20 20 20 20 20 20 20 20 3d 20 33 34 2c 20 20 20          = 34,   
2920: 2f 2a 20 44 33 44 43 4f 4c 4f 52 20 2a 2f 0d 0a  /* D3DCOLOR */..
2930: 20 20 20 20 44 33 44 52 53 5f 46 4f 47 54 41 42      D3DRS_FOGTAB
2940: 4c 45 4d 4f 44 45 20 20 20 20 20 20 20 20 20 20  LEMODE          
2950: 20 20 20 20 3d 20 33 35 2c 20 20 20 2f 2a 20 44      = 35,   /* D
2960: 33 44 46 4f 47 4d 4f 44 45 20 2a 2f 0d 0a 20 20  3DFOGMODE */..  
2970: 20 20 44 33 44 52 53 5f 46 4f 47 53 54 41 52 54    D3DRS_FOGSTART
2980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2990: 20 20 3d 20 33 36 2c 20 20 20 2f 2a 20 46 6f 67    = 36,   /* Fog
29a0: 20 73 74 61 72 74 20 28 66 6f 72 20 62 6f 74 68   start (for both
29b0: 20 76 65 72 74 65 78 20 61 6e 64 20 70 69 78 65   vertex and pixe
29c0: 6c 20 66 6f 67 29 20 2a 2f 0d 0a 20 20 20 20 44  l fog) */..    D
29d0: 33 44 52 53 5f 46 4f 47 45 4e 44 20 20 20 20 20  3DRS_FOGEND     
29e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
29f0: 20 33 37 2c 20 20 20 2f 2a 20 46 6f 67 20 65 6e   37,   /* Fog en
2a00: 64 20 20 20 20 20 20 2a 2f 0d 0a 20 20 20 20 44  d      */..    D
2a10: 33 44 52 53 5f 46 4f 47 44 45 4e 53 49 54 59 20  3DRS_FOGDENSITY 
2a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
2a30: 20 33 38 2c 20 20 20 2f 2a 20 46 6f 67 20 64 65   38,   /* Fog de
2a40: 6e 73 69 74 79 20 20 2a 2f 0d 0a 20 20 20 20 44  nsity  */..    D
2a50: 33 44 52 53 5f 52 41 4e 47 45 46 4f 47 45 4e 41  3DRS_RANGEFOGENA
2a60: 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 20 3d  BLE            =
2a70: 20 34 38 2c 20 20 20 2f 2a 20 45 6e 61 62 6c 65   48,   /* Enable
2a80: 73 20 72 61 6e 67 65 2d 62 61 73 65 64 20 66 6f  s range-based fo
2a90: 67 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f  g */..    D3DRS_
2aa0: 53 54 45 4e 43 49 4c 45 4e 41 42 4c 45 20 20 20  STENCILENABLE   
2ab0: 20 20 20 20 20 20 20 20 20 20 3d 20 35 32 2c 20            = 52, 
2ac0: 20 20 2f 2a 20 42 4f 4f 4c 20 65 6e 61 62 6c 65    /* BOOL enable
2ad0: 2f 64 69 73 61 62 6c 65 20 73 74 65 6e 63 69 6c  /disable stencil
2ae0: 69 6e 67 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52  ing */..    D3DR
2af0: 53 5f 53 54 45 4e 43 49 4c 46 41 49 4c 20 20 20  S_STENCILFAIL   
2b00: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 35 33              = 53
2b10: 2c 20 20 20 2f 2a 20 44 33 44 53 54 45 4e 43 49  ,   /* D3DSTENCI
2b20: 4c 4f 50 20 74 6f 20 64 6f 20 69 66 20 73 74 65  LOP to do if ste
2b30: 6e 63 69 6c 20 74 65 73 74 20 66 61 69 6c 73 20  ncil test fails 
2b40: 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 53 54  */..    D3DRS_ST
2b50: 45 4e 43 49 4c 5a 46 41 49 4c 20 20 20 20 20 20  ENCILZFAIL      
2b60: 20 20 20 20 20 20 20 20 3d 20 35 34 2c 20 20 20          = 54,   
2b70: 2f 2a 20 44 33 44 53 54 45 4e 43 49 4c 4f 50 20  /* D3DSTENCILOP 
2b80: 74 6f 20 64 6f 20 69 66 20 73 74 65 6e 63 69 6c  to do if stencil
2b90: 20 74 65 73 74 20 70 61 73 73 65 73 20 61 6e 64   test passes and
2ba0: 20 5a 20 74 65 73 74 20 66 61 69 6c 73 20 2a 2f   Z test fails */
2bb0: 0d 0a 20 20 20 20 44 33 44 52 53 5f 53 54 45 4e  ..    D3DRS_STEN
2bc0: 43 49 4c 50 41 53 53 20 20 20 20 20 20 20 20 20  CILPASS         
2bd0: 20 20 20 20 20 20 3d 20 35 35 2c 20 20 20 2f 2a        = 55,   /*
2be0: 20 44 33 44 53 54 45 4e 43 49 4c 4f 50 20 74 6f   D3DSTENCILOP to
2bf0: 20 64 6f 20 69 66 20 62 6f 74 68 20 73 74 65 6e   do if both sten
2c00: 63 69 6c 20 61 6e 64 20 5a 20 74 65 73 74 73 20  cil and Z tests 
2c10: 70 61 73 73 20 2a 2f 0d 0a 20 20 20 20 44 33 44  pass */..    D3D
2c20: 52 53 5f 53 54 45 4e 43 49 4c 46 55 4e 43 20 20  RS_STENCILFUNC  
2c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 35               = 5
2c40: 36 2c 20 20 20 2f 2a 20 44 33 44 43 4d 50 46 55  6,   /* D3DCMPFU
2c50: 4e 43 20 66 6e 2e 20 20 53 74 65 6e 63 69 6c 20  NC fn.  Stencil 
2c60: 54 65 73 74 20 70 61 73 73 65 73 20 69 66 20 28  Test passes if (
2c70: 28 72 65 66 20 26 20 6d 61 73 6b 29 20 73 74 65  (ref & mask) ste
2c80: 6e 63 69 6c 66 6e 20 28 73 74 65 6e 63 69 6c 20  ncilfn (stencil 
2c90: 26 20 6d 61 73 6b 29 29 20 69 73 20 74 72 75 65  & mask)) is true
2ca0: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 53   */..    D3DRS_S
2cb0: 54 45 4e 43 49 4c 52 45 46 20 20 20 20 20 20 20  TENCILREF       
2cc0: 20 20 20 20 20 20 20 20 20 3d 20 35 37 2c 20 20           = 57,  
2cd0: 20 2f 2a 20 52 65 66 65 72 65 6e 63 65 20 76 61   /* Reference va
2ce0: 6c 75 65 20 75 73 65 64 20 69 6e 20 73 74 65 6e  lue used in sten
2cf0: 63 69 6c 20 74 65 73 74 20 2a 2f 0d 0a 20 20 20  cil test */..   
2d00: 20 44 33 44 52 53 5f 53 54 45 4e 43 49 4c 4d 41   D3DRS_STENCILMA
2d10: 53 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20  SK              
2d20: 20 3d 20 35 38 2c 20 20 20 2f 2a 20 4d 61 73 6b   = 58,   /* Mask
2d30: 20 76 61 6c 75 65 20 75 73 65 64 20 69 6e 20 73   value used in s
2d40: 74 65 6e 63 69 6c 20 74 65 73 74 20 2a 2f 0d 0a  tencil test */..
2d50: 20 20 20 20 44 33 44 52 53 5f 53 54 45 4e 43 49      D3DRS_STENCI
2d60: 4c 57 52 49 54 45 4d 41 53 4b 20 20 20 20 20 20  LWRITEMASK      
2d70: 20 20 20 20 3d 20 35 39 2c 20 20 20 2f 2a 20 57      = 59,   /* W
2d80: 72 69 74 65 20 6d 61 73 6b 20 61 70 70 6c 69 65  rite mask applie
2d90: 64 20 74 6f 20 76 61 6c 75 65 73 20 77 72 69 74  d to values writ
2da0: 74 65 6e 20 74 6f 20 73 74 65 6e 63 69 6c 20 62  ten to stencil b
2db0: 75 66 66 65 72 20 2a 2f 0d 0a 20 20 20 20 44 33  uffer */..    D3
2dc0: 44 52 53 5f 54 45 58 54 55 52 45 46 41 43 54 4f  DRS_TEXTUREFACTO
2dd0: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  R             = 
2de0: 36 30 2c 20 20 20 2f 2a 20 44 33 44 43 4f 4c 4f  60,   /* D3DCOLO
2df0: 52 20 75 73 65 64 20 66 6f 72 20 6d 75 6c 74 69  R used for multi
2e00: 2d 74 65 78 74 75 72 65 20 62 6c 65 6e 64 20 2a  -texture blend *
2e10: 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 57 52 41  /..    D3DRS_WRA
2e20: 50 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20  P0              
2e30: 20 20 20 20 20 20 20 3d 20 31 32 38 2c 20 20 2f         = 128,  /
2e40: 2a 20 77 72 61 70 20 66 6f 72 20 31 73 74 20 74  * wrap for 1st t
2e50: 65 78 74 75 72 65 20 63 6f 6f 72 64 2e 20 73 65  exture coord. se
2e60: 74 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f  t */..    D3DRS_
2e70: 57 52 41 50 31 20 20 20 20 20 20 20 20 20 20 20  WRAP1           
2e80: 20 20 20 20 20 20 20 20 20 20 3d 20 31 32 39 2c            = 129,
2e90: 20 20 2f 2a 20 77 72 61 70 20 66 6f 72 20 32 6e    /* wrap for 2n
2ea0: 64 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 2e  d texture coord.
2eb0: 20 73 65 74 20 2a 2f 0d 0a 20 20 20 20 44 33 44   set */..    D3D
2ec0: 52 53 5f 57 52 41 50 32 20 20 20 20 20 20 20 20  RS_WRAP2        
2ed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
2ee0: 33 30 2c 20 20 2f 2a 20 77 72 61 70 20 66 6f 72  30,  /* wrap for
2ef0: 20 33 72 64 20 74 65 78 74 75 72 65 20 63 6f 6f   3rd texture coo
2f00: 72 64 2e 20 73 65 74 20 2a 2f 0d 0a 20 20 20 20  rd. set */..    
2f10: 44 33 44 52 53 5f 57 52 41 50 33 20 20 20 20 20  D3DRS_WRAP3     
2f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f30: 3d 20 31 33 31 2c 20 20 2f 2a 20 77 72 61 70 20  = 131,  /* wrap 
2f40: 66 6f 72 20 34 74 68 20 74 65 78 74 75 72 65 20  for 4th texture 
2f50: 63 6f 6f 72 64 2e 20 73 65 74 20 2a 2f 0d 0a 20  coord. set */.. 
2f60: 20 20 20 44 33 44 52 53 5f 57 52 41 50 34 20 20     D3DRS_WRAP4  
2f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f80: 20 20 20 3d 20 31 33 32 2c 20 20 2f 2a 20 77 72     = 132,  /* wr
2f90: 61 70 20 66 6f 72 20 35 74 68 20 74 65 78 74 75  ap for 5th textu
2fa0: 72 65 20 63 6f 6f 72 64 2e 20 73 65 74 20 2a 2f  re coord. set */
2fb0: 0d 0a 20 20 20 20 44 33 44 52 53 5f 57 52 41 50  ..    D3DRS_WRAP
2fc0: 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  5               
2fd0: 20 20 20 20 20 20 3d 20 31 33 33 2c 20 20 2f 2a        = 133,  /*
2fe0: 20 77 72 61 70 20 66 6f 72 20 36 74 68 20 74 65   wrap for 6th te
2ff0: 78 74 75 72 65 20 63 6f 6f 72 64 2e 20 73 65 74  xture coord. set
3000: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 57   */..    D3DRS_W
3010: 52 41 50 36 20 20 20 20 20 20 20 20 20 20 20 20  RAP6            
3020: 20 20 20 20 20 20 20 20 20 3d 20 31 33 34 2c 20           = 134, 
3030: 20 2f 2a 20 77 72 61 70 20 66 6f 72 20 37 74 68   /* wrap for 7th
3040: 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 2e 20   texture coord. 
3050: 73 65 74 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52  set */..    D3DR
3060: 53 5f 57 52 41 50 37 20 20 20 20 20 20 20 20 20  S_WRAP7         
3070: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 33              = 13
3080: 35 2c 20 20 2f 2a 20 77 72 61 70 20 66 6f 72 20  5,  /* wrap for 
3090: 38 74 68 20 74 65 78 74 75 72 65 20 63 6f 6f 72  8th texture coor
30a0: 64 2e 20 73 65 74 20 2a 2f 0d 0a 20 20 20 20 44  d. set */..    D
30b0: 33 44 52 53 5f 43 4c 49 50 50 49 4e 47 20 20 20  3DRS_CLIPPING   
30c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
30d0: 20 31 33 36 2c 0d 0a 20 20 20 20 44 33 44 52 53   136,..    D3DRS
30e0: 5f 4c 49 47 48 54 49 4e 47 20 20 20 20 20 20 20  _LIGHTING       
30f0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 33 37             = 137
3100: 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 41 4d 42  ,..    D3DRS_AMB
3110: 49 45 4e 54 20 20 20 20 20 20 20 20 20 20 20 20  IENT            
3120: 20 20 20 20 20 20 20 3d 20 31 33 39 2c 0d 0a 20         = 139,.. 
3130: 20 20 20 44 33 44 52 53 5f 46 4f 47 56 45 52 54     D3DRS_FOGVERT
3140: 45 58 4d 4f 44 45 20 20 20 20 20 20 20 20 20 20  EXMODE          
3150: 20 20 20 3d 20 31 34 30 2c 0d 0a 20 20 20 20 44     = 140,..    D
3160: 33 44 52 53 5f 43 4f 4c 4f 52 56 45 52 54 45 58  3DRS_COLORVERTEX
3170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
3180: 20 31 34 31 2c 0d 0a 20 20 20 20 44 33 44 52 53   141,..    D3DRS
3190: 5f 4c 4f 43 41 4c 56 49 45 57 45 52 20 20 20 20  _LOCALVIEWER    
31a0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 34 32             = 142
31b0: 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 4e 4f 52  ,..    D3DRS_NOR
31c0: 4d 41 4c 49 5a 45 4e 4f 52 4d 41 4c 53 20 20 20  MALIZENORMALS   
31d0: 20 20 20 20 20 20 20 3d 20 31 34 33 2c 0d 0a 20         = 143,.. 
31e0: 20 20 20 44 33 44 52 53 5f 44 49 46 46 55 53 45     D3DRS_DIFFUSE
31f0: 4d 41 54 45 52 49 41 4c 53 4f 55 52 43 45 20 20  MATERIALSOURCE  
3200: 20 20 20 3d 20 31 34 35 2c 0d 0a 20 20 20 20 44     = 145,..    D
3210: 33 44 52 53 5f 53 50 45 43 55 4c 41 52 4d 41 54  3DRS_SPECULARMAT
3220: 45 52 49 41 4c 53 4f 55 52 43 45 20 20 20 20 3d  ERIALSOURCE    =
3230: 20 31 34 36 2c 0d 0a 20 20 20 20 44 33 44 52 53   146,..    D3DRS
3240: 5f 41 4d 42 49 45 4e 54 4d 41 54 45 52 49 41 4c  _AMBIENTMATERIAL
3250: 53 4f 55 52 43 45 20 20 20 20 20 3d 20 31 34 37  SOURCE     = 147
3260: 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 45 4d 49  ,..    D3DRS_EMI
3270: 53 53 49 56 45 4d 41 54 45 52 49 41 4c 53 4f 55  SSIVEMATERIALSOU
3280: 52 43 45 20 20 20 20 3d 20 31 34 38 2c 0d 0a 20  RCE    = 148,.. 
3290: 20 20 20 44 33 44 52 53 5f 56 45 52 54 45 58 42     D3DRS_VERTEXB
32a0: 4c 45 4e 44 20 20 20 20 20 20 20 20 20 20 20 20  LEND            
32b0: 20 20 20 3d 20 31 35 31 2c 0d 0a 20 20 20 20 44     = 151,..    D
32c0: 33 44 52 53 5f 43 4c 49 50 50 4c 41 4e 45 45 4e  3DRS_CLIPPLANEEN
32d0: 41 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 3d  ABLE           =
32e0: 20 31 35 32 2c 0d 0a 20 20 20 20 44 33 44 52 53   152,..    D3DRS
32f0: 5f 50 4f 49 4e 54 53 49 5a 45 20 20 20 20 20 20  _POINTSIZE      
3300: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 35 34             = 154
3310: 2c 20 20 20 2f 2a 20 66 6c 6f 61 74 20 70 6f 69  ,   /* float poi
3320: 6e 74 20 73 69 7a 65 20 2a 2f 0d 0a 20 20 20 20  nt size */..    
3330: 44 33 44 52 53 5f 50 4f 49 4e 54 53 49 5a 45 5f  D3DRS_POINTSIZE_
3340: 4d 49 4e 20 20 20 20 20 20 20 20 20 20 20 20 20  MIN             
3350: 3d 20 31 35 35 2c 20 20 20 2f 2a 20 66 6c 6f 61  = 155,   /* floa
3360: 74 20 70 6f 69 6e 74 20 73 69 7a 65 20 6d 69 6e  t point size min
3370: 20 74 68 72 65 73 68 6f 6c 64 20 2a 2f 0d 0a 20   threshold */.. 
3380: 20 20 20 44 33 44 52 53 5f 50 4f 49 4e 54 53 50     D3DRS_POINTSP
3390: 52 49 54 45 45 4e 41 42 4c 45 20 20 20 20 20 20  RITEENABLE      
33a0: 20 20 20 3d 20 31 35 36 2c 20 20 20 2f 2a 20 42     = 156,   /* B
33b0: 4f 4f 4c 20 70 6f 69 6e 74 20 74 65 78 74 75 72  OOL point textur
33c0: 65 20 63 6f 6f 72 64 20 63 6f 6e 74 72 6f 6c 20  e coord control 
33d0: 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 50 4f  */..    D3DRS_PO
33e0: 49 4e 54 53 43 41 4c 45 45 4e 41 42 4c 45 20 20  INTSCALEENABLE  
33f0: 20 20 20 20 20 20 20 20 3d 20 31 35 37 2c 20 20          = 157,  
3400: 20 2f 2a 20 42 4f 4f 4c 20 70 6f 69 6e 74 20 73   /* BOOL point s
3410: 69 7a 65 20 73 63 61 6c 65 20 65 6e 61 62 6c 65  ize scale enable
3420: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 50   */..    D3DRS_P
3430: 4f 49 4e 54 53 43 41 4c 45 5f 41 20 20 20 20 20  OINTSCALE_A     
3440: 20 20 20 20 20 20 20 20 20 3d 20 31 35 38 2c 20           = 158, 
3450: 20 20 2f 2a 20 66 6c 6f 61 74 20 70 6f 69 6e 74    /* float point
3460: 20 61 74 74 65 6e 75 61 74 69 6f 6e 20 41 20 76   attenuation A v
3470: 61 6c 75 65 20 2a 2f 0d 0a 20 20 20 20 44 33 44  alue */..    D3D
3480: 52 53 5f 50 4f 49 4e 54 53 43 41 4c 45 5f 42 20  RS_POINTSCALE_B 
3490: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
34a0: 35 39 2c 20 20 20 2f 2a 20 66 6c 6f 61 74 20 70  59,   /* float p
34b0: 6f 69 6e 74 20 61 74 74 65 6e 75 61 74 69 6f 6e  oint attenuation
34c0: 20 42 20 76 61 6c 75 65 20 2a 2f 0d 0a 20 20 20   B value */..   
34d0: 20 44 33 44 52 53 5f 50 4f 49 4e 54 53 43 41 4c   D3DRS_POINTSCAL
34e0: 45 5f 43 20 20 20 20 20 20 20 20 20 20 20 20 20  E_C             
34f0: 20 3d 20 31 36 30 2c 20 20 20 2f 2a 20 66 6c 6f   = 160,   /* flo
3500: 61 74 20 70 6f 69 6e 74 20 61 74 74 65 6e 75 61  at point attenua
3510: 74 69 6f 6e 20 43 20 76 61 6c 75 65 20 2a 2f 0d  tion C value */.
3520: 0a 20 20 20 20 44 33 44 52 53 5f 4d 55 4c 54 49  .    D3DRS_MULTI
3530: 53 41 4d 50 4c 45 41 4e 54 49 41 4c 49 41 53 20  SAMPLEANTIALIAS 
3540: 20 20 20 20 20 3d 20 31 36 31 2c 20 20 2f 2f 20       = 161,  // 
3550: 42 4f 4f 4c 20 2d 20 73 65 74 20 74 6f 20 64 6f  BOOL - set to do
3560: 20 46 53 41 41 20 77 69 74 68 20 6d 75 6c 74 69   FSAA with multi
3570: 73 61 6d 70 6c 65 20 62 75 66 66 65 72 0d 0a 20  sample buffer.. 
3580: 20 20 20 44 33 44 52 53 5f 4d 55 4c 54 49 53 41     D3DRS_MULTISA
3590: 4d 50 4c 45 4d 41 53 4b 20 20 20 20 20 20 20 20  MPLEMASK        
35a0: 20 20 20 3d 20 31 36 32 2c 20 20 2f 2f 20 44 57     = 162,  // DW
35b0: 4f 52 44 20 2d 20 70 65 72 2d 73 61 6d 70 6c 65  ORD - per-sample
35c0: 20 65 6e 61 62 6c 65 2f 64 69 73 61 62 6c 65 0d   enable/disable.
35d0: 0a 20 20 20 20 44 33 44 52 53 5f 50 41 54 43 48  .    D3DRS_PATCH
35e0: 45 44 47 45 53 54 59 4c 45 20 20 20 20 20 20 20  EDGESTYLE       
35f0: 20 20 20 20 20 3d 20 31 36 33 2c 20 20 2f 2f 20       = 163,  // 
3600: 53 65 74 73 20 77 68 65 74 68 65 72 20 70 61 74  Sets whether pat
3610: 63 68 20 65 64 67 65 73 20 77 69 6c 6c 20 75 73  ch edges will us
3620: 65 20 66 6c 6f 61 74 20 73 74 79 6c 65 20 74 65  e float style te
3630: 73 73 65 6c 6c 61 74 69 6f 6e 0d 0a 20 20 20 20  ssellation..    
3640: 44 33 44 52 53 5f 44 45 42 55 47 4d 4f 4e 49 54  D3DRS_DEBUGMONIT
3650: 4f 52 54 4f 4b 45 4e 20 20 20 20 20 20 20 20 20  ORTOKEN         
3660: 3d 20 31 36 35 2c 20 20 2f 2f 20 44 45 42 55 47  = 165,  // DEBUG
3670: 20 4f 4e 4c 59 20 2d 20 74 6f 6b 65 6e 20 74 6f   ONLY - token to
3680: 20 64 65 62 75 67 20 6d 6f 6e 69 74 6f 72 0d 0a   debug monitor..
3690: 20 20 20 20 44 33 44 52 53 5f 50 4f 49 4e 54 53      D3DRS_POINTS
36a0: 49 5a 45 5f 4d 41 58 20 20 20 20 20 20 20 20 20  IZE_MAX         
36b0: 20 20 20 20 3d 20 31 36 36 2c 20 20 20 2f 2a 20      = 166,   /* 
36c0: 66 6c 6f 61 74 20 70 6f 69 6e 74 20 73 69 7a 65  float point size
36d0: 20 6d 61 78 20 74 68 72 65 73 68 6f 6c 64 20 2a   max threshold *
36e0: 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 49 4e 44  /..    D3DRS_IND
36f0: 45 58 45 44 56 45 52 54 45 58 42 4c 45 4e 44 45  EXEDVERTEXBLENDE
3700: 4e 41 42 4c 45 20 20 3d 20 31 36 37 2c 0d 0a 20  NABLE  = 167,.. 
3710: 20 20 20 44 33 44 52 53 5f 43 4f 4c 4f 52 57 52     D3DRS_COLORWR
3720: 49 54 45 45 4e 41 42 4c 45 20 20 20 20 20 20 20  ITEENABLE       
3730: 20 20 20 3d 20 31 36 38 2c 20 20 2f 2f 20 70 65     = 168,  // pe
3740: 72 2d 63 68 61 6e 6e 65 6c 20 77 72 69 74 65 20  r-channel write 
3750: 65 6e 61 62 6c 65 0d 0a 20 20 20 20 44 33 44 52  enable..    D3DR
3760: 53 5f 54 57 45 45 4e 46 41 43 54 4f 52 20 20 20  S_TWEENFACTOR   
3770: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 37              = 17
3780: 30 2c 20 20 20 2f 2f 20 66 6c 6f 61 74 20 74 77  0,   // float tw
3790: 65 65 6e 20 66 61 63 74 6f 72 0d 0a 20 20 20 20  een factor..    
37a0: 44 33 44 52 53 5f 42 4c 45 4e 44 4f 50 20 20 20  D3DRS_BLENDOP   
37b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
37c0: 3d 20 31 37 31 2c 20 20 20 2f 2f 20 44 33 44 42  = 171,   // D3DB
37d0: 4c 45 4e 44 4f 50 20 73 65 74 74 69 6e 67 0d 0a  LENDOP setting..
37e0: 20 20 20 20 44 33 44 52 53 5f 50 4f 53 49 54 49      D3DRS_POSITI
37f0: 4f 4e 44 45 47 52 45 45 20 20 20 20 20 20 20 20  ONDEGREE        
3800: 20 20 20 20 3d 20 31 37 32 2c 20 20 20 2f 2f 20      = 172,   // 
3810: 4e 50 61 74 63 68 20 70 6f 73 69 74 69 6f 6e 20  NPatch position 
3820: 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 64 65  interpolation de
3830: 67 72 65 65 2e 20 44 33 44 44 45 47 52 45 45 5f  gree. D3DDEGREE_
3840: 4c 49 4e 45 41 52 20 6f 72 20 44 33 44 44 45 47  LINEAR or D3DDEG
3850: 52 45 45 5f 43 55 42 49 43 20 28 64 65 66 61 75  REE_CUBIC (defau
3860: 6c 74 29 0d 0a 20 20 20 20 44 33 44 52 53 5f 4e  lt)..    D3DRS_N
3870: 4f 52 4d 41 4c 44 45 47 52 45 45 20 20 20 20 20  ORMALDEGREE     
3880: 20 20 20 20 20 20 20 20 20 3d 20 31 37 33 2c 20           = 173, 
3890: 20 20 2f 2f 20 4e 50 61 74 63 68 20 6e 6f 72 6d    // NPatch norm
38a0: 61 6c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e  al interpolation
38b0: 20 64 65 67 72 65 65 2e 20 44 33 44 44 45 47 52   degree. D3DDEGR
38c0: 45 45 5f 4c 49 4e 45 41 52 20 28 64 65 66 61 75  EE_LINEAR (defau
38d0: 6c 74 29 20 6f 72 20 44 33 44 44 45 47 52 45 45  lt) or D3DDEGREE
38e0: 5f 51 55 41 44 52 41 54 49 43 0d 0a 20 20 20 20  _QUADRATIC..    
38f0: 44 33 44 52 53 5f 53 43 49 53 53 4f 52 54 45 53  D3DRS_SCISSORTES
3900: 54 45 4e 41 42 4c 45 20 20 20 20 20 20 20 20 20  TENABLE         
3910: 3d 20 31 37 34 2c 0d 0a 20 20 20 20 44 33 44 52  = 174,..    D3DR
3920: 53 5f 53 4c 4f 50 45 53 43 41 4c 45 44 45 50 54  S_SLOPESCALEDEPT
3930: 48 42 49 41 53 20 20 20 20 20 20 20 3d 20 31 37  HBIAS       = 17
3940: 35 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 41 4e  5,..    D3DRS_AN
3950: 54 49 41 4c 49 41 53 45 44 4c 49 4e 45 45 4e 41  TIALIASEDLINEENA
3960: 42 4c 45 20 20 20 20 20 3d 20 31 37 36 2c 0d 0a  BLE     = 176,..
3970: 20 20 20 20 44 33 44 52 53 5f 4d 49 4e 54 45 53      D3DRS_MINTES
3980: 53 45 4c 4c 41 54 49 4f 4e 4c 45 56 45 4c 20 20  SELLATIONLEVEL  
3990: 20 20 20 20 3d 20 31 37 38 2c 0d 0a 20 20 20 20      = 178,..    
39a0: 44 33 44 52 53 5f 4d 41 58 54 45 53 53 45 4c 4c  D3DRS_MAXTESSELL
39b0: 41 54 49 4f 4e 4c 45 56 45 4c 20 20 20 20 20 20  ATIONLEVEL      
39c0: 3d 20 31 37 39 2c 0d 0a 20 20 20 20 44 33 44 52  = 179,..    D3DR
39d0: 53 5f 41 44 41 50 54 49 56 45 54 45 53 53 5f 58  S_ADAPTIVETESS_X
39e0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 38              = 18
39f0: 30 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 41 44  0,..    D3DRS_AD
3a00: 41 50 54 49 56 45 54 45 53 53 5f 59 20 20 20 20  APTIVETESS_Y    
3a10: 20 20 20 20 20 20 20 20 3d 20 31 38 31 2c 0d 0a          = 181,..
3a20: 20 20 20 20 44 33 44 52 53 5f 41 44 41 50 54 49      D3DRS_ADAPTI
3a30: 56 45 54 45 53 53 5f 5a 20 20 20 20 20 20 20 20  VETESS_Z        
3a40: 20 20 20 20 3d 20 31 38 32 2c 0d 0a 20 20 20 20      = 182,..    
3a50: 44 33 44 52 53 5f 41 44 41 50 54 49 56 45 54 45  D3DRS_ADAPTIVETE
3a60: 53 53 5f 57 20 20 20 20 20 20 20 20 20 20 20 20  SS_W            
3a70: 3d 20 31 38 33 2c 0d 0a 20 20 20 20 44 33 44 52  = 183,..    D3DR
3a80: 53 5f 45 4e 41 42 4c 45 41 44 41 50 54 49 56 45  S_ENABLEADAPTIVE
3a90: 54 45 53 53 45 4c 4c 41 54 49 4f 4e 20 3d 20 31  TESSELLATION = 1
3aa0: 38 34 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 54  84,..    D3DRS_T
3ab0: 57 4f 53 49 44 45 44 53 54 45 4e 43 49 4c 4d 4f  WOSIDEDSTENCILMO
3ac0: 44 45 20 20 20 20 20 20 20 3d 20 31 38 35 2c 20  DE       = 185, 
3ad0: 20 20 2f 2a 20 42 4f 4f 4c 20 65 6e 61 62 6c 65    /* BOOL enable
3ae0: 2f 64 69 73 61 62 6c 65 20 32 20 73 69 64 65 64  /disable 2 sided
3af0: 20 73 74 65 6e 63 69 6c 69 6e 67 20 2a 2f 0d 0a   stenciling */..
3b00: 20 20 20 20 44 33 44 52 53 5f 43 43 57 5f 53 54      D3DRS_CCW_ST
3b10: 45 4e 43 49 4c 46 41 49 4c 20 20 20 20 20 20 20  ENCILFAIL       
3b20: 20 20 20 20 3d 20 31 38 36 2c 20 20 20 2f 2a 20      = 186,   /* 
3b30: 44 33 44 53 54 45 4e 43 49 4c 4f 50 20 74 6f 20  D3DSTENCILOP to 
3b40: 64 6f 20 69 66 20 63 63 77 20 73 74 65 6e 63 69  do if ccw stenci
3b50: 6c 20 74 65 73 74 20 66 61 69 6c 73 20 2a 2f 0d  l test fails */.
3b60: 0a 20 20 20 20 44 33 44 52 53 5f 43 43 57 5f 53  .    D3DRS_CCW_S
3b70: 54 45 4e 43 49 4c 5a 46 41 49 4c 20 20 20 20 20  TENCILZFAIL     
3b80: 20 20 20 20 20 3d 20 31 38 37 2c 20 20 20 2f 2a       = 187,   /*
3b90: 20 44 33 44 53 54 45 4e 43 49 4c 4f 50 20 74 6f   D3DSTENCILOP to
3ba0: 20 64 6f 20 69 66 20 63 63 77 20 73 74 65 6e 63   do if ccw stenc
3bb0: 69 6c 20 74 65 73 74 20 70 61 73 73 65 73 20 61  il test passes a
3bc0: 6e 64 20 5a 20 74 65 73 74 20 66 61 69 6c 73 20  nd Z test fails 
3bd0: 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 43 43  */..    D3DRS_CC
3be0: 57 5f 53 54 45 4e 43 49 4c 50 41 53 53 20 20 20  W_STENCILPASS   
3bf0: 20 20 20 20 20 20 20 20 3d 20 31 38 38 2c 20 20          = 188,  
3c00: 20 2f 2a 20 44 33 44 53 54 45 4e 43 49 4c 4f 50   /* D3DSTENCILOP
3c10: 20 74 6f 20 64 6f 20 69 66 20 62 6f 74 68 20 63   to do if both c
3c20: 63 77 20 73 74 65 6e 63 69 6c 20 61 6e 64 20 5a  cw stencil and Z
3c30: 20 74 65 73 74 73 20 70 61 73 73 20 2a 2f 0d 0a   tests pass */..
3c40: 20 20 20 20 44 33 44 52 53 5f 43 43 57 5f 53 54      D3DRS_CCW_ST
3c50: 45 4e 43 49 4c 46 55 4e 43 20 20 20 20 20 20 20  ENCILFUNC       
3c60: 20 20 20 20 3d 20 31 38 39 2c 20 20 20 2f 2a 20      = 189,   /* 
3c70: 44 33 44 43 4d 50 46 55 4e 43 20 66 6e 2e 20 20  D3DCMPFUNC fn.  
3c80: 63 63 77 20 53 74 65 6e 63 69 6c 20 54 65 73 74  ccw Stencil Test
3c90: 20 70 61 73 73 65 73 20 69 66 20 28 28 72 65 66   passes if ((ref
3ca0: 20 26 20 6d 61 73 6b 29 20 73 74 65 6e 63 69 6c   & mask) stencil
3cb0: 66 6e 20 28 73 74 65 6e 63 69 6c 20 26 20 6d 61  fn (stencil & ma
3cc0: 73 6b 29 29 20 69 73 20 74 72 75 65 20 2a 2f 0d  sk)) is true */.
3cd0: 0a 20 20 20 20 44 33 44 52 53 5f 43 4f 4c 4f 52  .    D3DRS_COLOR
3ce0: 57 52 49 54 45 45 4e 41 42 4c 45 31 20 20 20 20  WRITEENABLE1    
3cf0: 20 20 20 20 20 3d 20 31 39 30 2c 20 20 20 2f 2a       = 190,   /*
3d00: 20 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6c 6f   Additional Colo
3d10: 72 57 72 69 74 65 45 6e 61 62 6c 65 73 20 66 6f  rWriteEnables fo
3d20: 72 20 74 68 65 20 64 65 76 69 63 65 73 20 74 68  r the devices th
3d30: 61 74 20 73 75 70 70 6f 72 74 20 44 33 44 50 4d  at support D3DPM
3d40: 49 53 43 43 41 50 53 5f 49 4e 44 45 50 45 4e 44  ISCCAPS_INDEPEND
3d50: 45 4e 54 57 52 49 54 45 4d 41 53 4b 53 20 2a 2f  ENTWRITEMASKS */
3d60: 0d 0a 20 20 20 20 44 33 44 52 53 5f 43 4f 4c 4f  ..    D3DRS_COLO
3d70: 52 57 52 49 54 45 45 4e 41 42 4c 45 32 20 20 20  RWRITEENABLE2   
3d80: 20 20 20 20 20 20 3d 20 31 39 31 2c 20 20 20 2f        = 191,   /
3d90: 2a 20 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6c  * Additional Col
3da0: 6f 72 57 72 69 74 65 45 6e 61 62 6c 65 73 20 66  orWriteEnables f
3db0: 6f 72 20 74 68 65 20 64 65 76 69 63 65 73 20 74  or the devices t
3dc0: 68 61 74 20 73 75 70 70 6f 72 74 20 44 33 44 50  hat support D3DP
3dd0: 4d 49 53 43 43 41 50 53 5f 49 4e 44 45 50 45 4e  MISCCAPS_INDEPEN
3de0: 44 45 4e 54 57 52 49 54 45 4d 41 53 4b 53 20 2a  DENTWRITEMASKS *
3df0: 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 43 4f 4c  /..    D3DRS_COL
3e00: 4f 52 57 52 49 54 45 45 4e 41 42 4c 45 33 20 20  ORWRITEENABLE3  
3e10: 20 20 20 20 20 20 20 3d 20 31 39 32 2c 20 20 20         = 192,   
3e20: 2f 2a 20 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f  /* Additional Co
3e30: 6c 6f 72 57 72 69 74 65 45 6e 61 62 6c 65 73 20  lorWriteEnables 
3e40: 66 6f 72 20 74 68 65 20 64 65 76 69 63 65 73 20  for the devices 
3e50: 74 68 61 74 20 73 75 70 70 6f 72 74 20 44 33 44  that support D3D
3e60: 50 4d 49 53 43 43 41 50 53 5f 49 4e 44 45 50 45  PMISCCAPS_INDEPE
3e70: 4e 44 45 4e 54 57 52 49 54 45 4d 41 53 4b 53 20  NDENTWRITEMASKS 
3e80: 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 42 4c  */..    D3DRS_BL
3e90: 45 4e 44 46 41 43 54 4f 52 20 20 20 20 20 20 20  ENDFACTOR       
3ea0: 20 20 20 20 20 20 20 20 3d 20 31 39 33 2c 20 20          = 193,  
3eb0: 20 2f 2a 20 44 33 44 43 4f 4c 4f 52 20 75 73 65   /* D3DCOLOR use
3ec0: 64 20 66 6f 72 20 61 20 63 6f 6e 73 74 61 6e 74  d for a constant
3ed0: 20 62 6c 65 6e 64 20 66 61 63 74 6f 72 20 64 75   blend factor du
3ee0: 72 69 6e 67 20 61 6c 70 68 61 20 62 6c 65 6e 64  ring alpha blend
3ef0: 69 6e 67 20 66 6f 72 20 64 65 76 69 63 65 73 20  ing for devices 
3f00: 74 68 61 74 20 73 75 70 70 6f 72 74 20 44 33 44  that support D3D
3f10: 50 42 4c 45 4e 44 43 41 50 53 5f 42 4c 45 4e 44  PBLENDCAPS_BLEND
3f20: 46 41 43 54 4f 52 20 2a 2f 0d 0a 20 20 20 20 44  FACTOR */..    D
3f30: 33 44 52 53 5f 53 52 47 42 57 52 49 54 45 45 4e  3DRS_SRGBWRITEEN
3f40: 41 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 3d  ABLE           =
3f50: 20 31 39 34 2c 20 20 20 2f 2a 20 45 6e 61 62 6c   194,   /* Enabl
3f60: 65 20 72 65 6e 64 65 72 74 61 72 67 65 74 20 77  e rendertarget w
3f70: 72 69 74 65 73 20 74 6f 20 62 65 20 44 45 2d 6c  rites to be DE-l
3f80: 69 6e 65 61 72 69 7a 65 64 20 74 6f 20 53 52 47  inearized to SRG
3f90: 42 20 28 66 6f 72 20 66 6f 72 6d 61 74 73 20 74  B (for formats t
3fa0: 68 61 74 20 65 78 70 6f 73 65 20 44 33 44 55 53  hat expose D3DUS
3fb0: 41 47 45 5f 51 55 45 52 59 5f 53 52 47 42 57 52  AGE_QUERY_SRGBWR
3fc0: 49 54 45 29 20 2a 2f 0d 0a 20 20 20 20 44 33 44  ITE) */..    D3D
3fd0: 52 53 5f 44 45 50 54 48 42 49 41 53 20 20 20 20  RS_DEPTHBIAS    
3fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
3ff0: 39 35 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f 57  95,..    D3DRS_W
4000: 52 41 50 38 20 20 20 20 20 20 20 20 20 20 20 20  RAP8            
4010: 20 20 20 20 20 20 20 20 20 3d 20 31 39 38 2c 20           = 198, 
4020: 20 20 2f 2a 20 41 64 64 69 74 69 6f 6e 61 6c 20    /* Additional 
4030: 77 72 61 70 20 73 74 61 74 65 73 20 66 6f 72 20  wrap states for 
4040: 76 73 5f 33 5f 30 2b 20 61 74 74 72 69 62 75 74  vs_3_0+ attribut
4050: 65 73 20 77 69 74 68 20 44 33 44 44 45 43 4c 55  es with D3DDECLU
4060: 53 41 47 45 5f 54 45 58 43 4f 4f 52 44 20 2a 2f  SAGE_TEXCOORD */
4070: 0d 0a 20 20 20 20 44 33 44 52 53 5f 57 52 41 50  ..    D3DRS_WRAP
4080: 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  9               
4090: 20 20 20 20 20 20 3d 20 31 39 39 2c 0d 0a 20 20        = 199,..  
40a0: 20 20 44 33 44 52 53 5f 57 52 41 50 31 30 20 20    D3DRS_WRAP10  
40b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
40c0: 20 20 3d 20 32 30 30 2c 0d 0a 20 20 20 20 44 33    = 200,..    D3
40d0: 44 52 53 5f 57 52 41 50 31 31 20 20 20 20 20 20  DRS_WRAP11      
40e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
40f0: 32 30 31 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f  201,..    D3DRS_
4100: 57 52 41 50 31 32 20 20 20 20 20 20 20 20 20 20  WRAP12          
4110: 20 20 20 20 20 20 20 20 20 20 3d 20 32 30 32 2c            = 202,
4120: 0d 0a 20 20 20 20 44 33 44 52 53 5f 57 52 41 50  ..    D3DRS_WRAP
4130: 31 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20  13              
4140: 20 20 20 20 20 20 3d 20 32 30 33 2c 0d 0a 20 20        = 203,..  
4150: 20 20 44 33 44 52 53 5f 57 52 41 50 31 34 20 20    D3DRS_WRAP14  
4160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
4170: 20 20 3d 20 32 30 34 2c 0d 0a 20 20 20 20 44 33    = 204,..    D3
4180: 44 52 53 5f 57 52 41 50 31 35 20 20 20 20 20 20  DRS_WRAP15      
4190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
41a0: 32 30 35 2c 0d 0a 20 20 20 20 44 33 44 52 53 5f  205,..    D3DRS_
41b0: 53 45 50 41 52 41 54 45 41 4c 50 48 41 42 4c 45  SEPARATEALPHABLE
41c0: 4e 44 45 4e 41 42 4c 45 20 20 3d 20 32 30 36 2c  NDENABLE  = 206,
41d0: 20 20 2f 2a 20 54 52 55 45 20 74 6f 20 65 6e 61    /* TRUE to ena
41e0: 62 6c 65 20 61 20 73 65 70 61 72 61 74 65 20 62  ble a separate b
41f0: 6c 65 6e 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e  lending function
4200: 20 66 6f 72 20 74 68 65 20 61 6c 70 68 61 20 63   for the alpha c
4210: 68 61 6e 6e 65 6c 20 2a 2f 0d 0a 20 20 20 20 44  hannel */..    D
4220: 33 44 52 53 5f 53 52 43 42 4c 45 4e 44 41 4c 50  3DRS_SRCBLENDALP
4230: 48 41 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  HA             =
4240: 20 32 30 37 2c 20 20 2f 2a 20 53 52 43 20 62 6c   207,  /* SRC bl
4250: 65 6e 64 20 66 61 63 74 6f 72 20 66 6f 72 20 74  end factor for t
4260: 68 65 20 61 6c 70 68 61 20 63 68 61 6e 6e 65 6c  he alpha channel
4270: 20 77 68 65 6e 20 44 33 44 52 53 5f 53 45 50 41   when D3DRS_SEPA
4280: 52 41 54 45 44 45 53 54 41 4c 50 48 41 45 4e 41  RATEDESTALPHAENA
4290: 42 4c 45 20 69 73 20 54 52 55 45 20 2a 2f 0d 0a  BLE is TRUE */..
42a0: 20 20 20 20 44 33 44 52 53 5f 44 45 53 54 42 4c      D3DRS_DESTBL
42b0: 45 4e 44 41 4c 50 48 41 20 20 20 20 20 20 20 20  ENDALPHA        
42c0: 20 20 20 20 3d 20 32 30 38 2c 20 20 2f 2a 20 44      = 208,  /* D
42d0: 53 54 20 62 6c 65 6e 64 20 66 61 63 74 6f 72 20  ST blend factor 
42e0: 66 6f 72 20 74 68 65 20 61 6c 70 68 61 20 63 68  for the alpha ch
42f0: 61 6e 6e 65 6c 20 77 68 65 6e 20 44 33 44 52 53  annel when D3DRS
4300: 5f 53 45 50 41 52 41 54 45 44 45 53 54 41 4c 50  _SEPARATEDESTALP
4310: 48 41 45 4e 41 42 4c 45 20 69 73 20 54 52 55 45  HAENABLE is TRUE
4320: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 52 53 5f 42   */..    D3DRS_B
4330: 4c 45 4e 44 4f 50 41 4c 50 48 41 20 20 20 20 20  LENDOPALPHA     
4340: 20 20 20 20 20 20 20 20 20 3d 20 32 30 39 20 20           = 209  
4350: 20 2f 2a 20 42 6c 65 6e 64 69 6e 67 20 6f 70 65   /* Blending ope
4360: 72 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 61  ration for the a
4370: 6c 70 68 61 20 63 68 61 6e 6e 65 6c 20 77 68 65  lpha channel whe
4380: 6e 20 44 33 44 52 53 5f 53 45 50 41 52 41 54 45  n D3DRS_SEPARATE
4390: 44 45 53 54 41 4c 50 48 41 45 4e 41 42 4c 45 20  DESTALPHAENABLE 
43a0: 69 73 20 54 52 55 45 20 2a 2f 0d 0a 7d 0d 0a 61  is TRUE */..}..a
43b0: 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 75 69  lias TypeDef!(ui
43c0: 6e 74 29 20 44 33 44 52 45 4e 44 45 52 53 54 41  nt) D3DRENDERSTA
43d0: 54 45 54 59 50 45 3b 0d 0a 0d 0a 2f 2f 20 4d 61  TETYPE;....// Ma
43e0: 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20  ximum number of 
43f0: 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 72 65 6e  simultaneous ren
4400: 64 65 72 20 74 61 72 67 65 74 73 20 44 33 44 20  der targets D3D 
4410: 73 75 70 70 6f 72 74 73 0d 0a 63 6f 6e 73 74 20  supports..const 
4420: 44 33 44 5f 4d 41 58 5f 53 49 4d 55 4c 54 41 4e  D3D_MAX_SIMULTAN
4430: 45 4f 55 53 5f 52 45 4e 44 45 52 54 41 52 47 45  EOUS_RENDERTARGE
4440: 54 53 20 3d 20 34 3b 0d 0a 0d 0a 2f 2f 20 56 61  TS = 4;....// Va
4450: 6c 75 65 73 20 66 6f 72 20 6d 61 74 65 72 69 61  lues for materia
4460: 6c 20 73 6f 75 72 63 65 0d 0a 65 6e 75 6d 20 3a  l source..enum :
4470: 20 44 33 44 4d 41 54 45 52 49 41 4c 43 4f 4c 4f   D3DMATERIALCOLO
4480: 52 53 4f 55 52 43 45 20 7b 0d 0a 20 20 20 20 44  RSOURCE {..    D
4490: 33 44 4d 43 53 5f 4d 41 54 45 52 49 41 4c 20 20  3DMCS_MATERIAL  
44a0: 20 20 20 20 20 20 20 3d 20 30 2c 20 20 20 20 20         = 0,     
44b0: 20 20 20 20 20 20 20 2f 2f 20 43 6f 6c 6f 72 20         // Color 
44c0: 66 72 6f 6d 20 6d 61 74 65 72 69 61 6c 20 69 73  from material is
44d0: 20 75 73 65 64 0d 0a 20 20 20 20 44 33 44 4d 43   used..    D3DMC
44e0: 53 5f 43 4f 4c 4f 52 31 20 20 20 20 20 20 20 20  S_COLOR1        
44f0: 20 20 20 3d 20 31 2c 20 20 20 20 20 20 20 20 20     = 1,         
4500: 20 20 20 2f 2f 20 44 69 66 66 75 73 65 20 76 65     // Diffuse ve
4510: 72 74 65 78 20 63 6f 6c 6f 72 20 69 73 20 75 73  rtex color is us
4520: 65 64 0d 0a 20 20 20 20 44 33 44 4d 43 53 5f 43  ed..    D3DMCS_C
4530: 4f 4c 4f 52 32 20 20 20 20 20 20 20 20 20 20 20  OLOR2           
4540: 3d 20 32 20 20 20 20 20 20 20 20 20 20 20 20 20  = 2             
4550: 2f 2f 20 53 70 65 63 75 6c 61 72 20 76 65 72 74  // Specular vert
4560: 65 78 20 63 6f 6c 6f 72 20 69 73 20 75 73 65 64  ex color is used
4570: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
4580: 65 66 21 28 75 69 6e 74 29 20 44 33 44 4d 41 54  ef!(uint) D3DMAT
4590: 45 52 49 41 4c 43 4f 4c 4f 52 53 4f 55 52 43 45  ERIALCOLORSOURCE
45a0: 3b 0d 0a 0d 0a 2f 2f 20 42 69 61 73 20 74 6f 20  ;....// Bias to 
45b0: 61 70 70 6c 79 20 74 6f 20 74 68 65 20 74 65 78  apply to the tex
45c0: 74 75 72 65 20 63 6f 6f 72 64 69 6e 61 74 65 20  ture coordinate 
45d0: 73 65 74 20 74 6f 20 61 70 70 6c 79 20 61 20 77  set to apply a w
45e0: 72 61 70 20 74 6f 2e 0d 0a 63 6f 6e 73 74 20 44  rap to...const D
45f0: 33 44 52 45 4e 44 45 52 53 54 41 54 45 5f 57 52  3DRENDERSTATE_WR
4600: 41 50 42 49 41 53 20 3d 20 31 32 38 55 4c 3b 0d  APBIAS = 128UL;.
4610: 0a 0d 0a 2f 2a 20 46 6c 61 67 73 20 74 6f 20 63  .../* Flags to c
4620: 6f 6e 73 74 72 75 63 74 20 74 68 65 20 57 52 41  onstruct the WRA
4630: 50 20 72 65 6e 64 65 72 20 73 74 61 74 65 73 20  P render states 
4640: 2a 2f 0d 0a 63 6f 6e 73 74 20 44 33 44 57 52 41  */..const D3DWRA
4650: 50 5f 55 20 3d 20 30 78 30 30 30 30 30 30 30 31  P_U = 0x00000001
4660: 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 57 52 41  L;..const D3DWRA
4670: 50 5f 56 20 3d 20 30 78 30 30 30 30 30 30 30 32  P_V = 0x00000002
4680: 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 57 52 41  L;..const D3DWRA
4690: 50 5f 57 20 3d 20 30 78 30 30 30 30 30 30 30 34  P_W = 0x00000004
46a0: 4c 3b 0d 0a 0d 0a 2f 2a 20 46 6c 61 67 73 20 74  L;..../* Flags t
46b0: 6f 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20  o construct the 
46c0: 57 52 41 50 20 72 65 6e 64 65 72 20 73 74 61 74  WRAP render stat
46d0: 65 73 20 66 6f 72 20 31 44 20 74 68 72 75 20 34  es for 1D thru 4
46e0: 44 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69  D texture coordi
46f0: 6e 61 74 65 73 20 2a 2f 0d 0a 63 6f 6e 73 74 20  nates */..const 
4700: 44 33 44 57 52 41 50 43 4f 4f 52 44 5f 30 20 3d  D3DWRAPCOORD_0 =
4710: 20 30 78 30 30 30 30 30 30 30 31 4c 3b 20 20 20   0x00000001L;   
4720: 20 2f 2f 20 73 61 6d 65 20 61 73 20 44 33 44 57   // same as D3DW
4730: 52 41 50 5f 55 0d 0a 63 6f 6e 73 74 20 44 33 44  RAP_U..const D3D
4740: 57 52 41 50 43 4f 4f 52 44 5f 31 20 3d 20 30 78  WRAPCOORD_1 = 0x
4750: 30 30 30 30 30 30 30 32 4c 3b 20 20 20 20 2f 2f  00000002L;    //
4760: 20 73 61 6d 65 20 61 73 20 44 33 44 57 52 41 50   same as D3DWRAP
4770: 5f 56 0d 0a 63 6f 6e 73 74 20 44 33 44 57 52 41  _V..const D3DWRA
4780: 50 43 4f 4f 52 44 5f 32 20 3d 20 30 78 30 30 30  PCOORD_2 = 0x000
4790: 30 30 30 30 34 4c 3b 20 20 20 20 2f 2f 20 73 61  00004L;    // sa
47a0: 6d 65 20 61 73 20 44 33 44 57 52 41 50 5f 57 0d  me as D3DWRAP_W.
47b0: 0a 63 6f 6e 73 74 20 44 33 44 57 52 41 50 43 4f  .const D3DWRAPCO
47c0: 4f 52 44 5f 33 20 3d 20 30 78 30 30 30 30 30 30  ORD_3 = 0x000000
47d0: 30 38 4c 3b 0d 0a 0d 0a 2f 2a 20 46 6c 61 67 73  08L;..../* Flags
47e0: 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 44 33   to construct D3
47f0: 44 52 53 5f 43 4f 4c 4f 52 57 52 49 54 45 45 4e  DRS_COLORWRITEEN
4800: 41 42 4c 45 20 2a 2f 0d 0a 63 6f 6e 73 74 20 44  ABLE */..const D
4810: 33 44 43 4f 4c 4f 52 57 52 49 54 45 45 4e 41 42  3DCOLORWRITEENAB
4820: 4c 45 5f 52 45 44 20 3d 20 28 31 4c 3c 3c 30 29  LE_RED = (1L<<0)
4830: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43 4f 4c 4f  ;..const D3DCOLO
4840: 52 57 52 49 54 45 45 4e 41 42 4c 45 5f 47 52 45  RWRITEENABLE_GRE
4850: 45 4e 20 3d 20 28 31 4c 3c 3c 31 29 3b 0d 0a 63  EN = (1L<<1);..c
4860: 6f 6e 73 74 20 44 33 44 43 4f 4c 4f 52 57 52 49  onst D3DCOLORWRI
4870: 54 45 45 4e 41 42 4c 45 5f 42 4c 55 45 20 3d 20  TEENABLE_BLUE = 
4880: 28 31 4c 3c 3c 32 29 3b 0d 0a 63 6f 6e 73 74 20  (1L<<2);..const 
4890: 44 33 44 43 4f 4c 4f 52 57 52 49 54 45 45 4e 41  D3DCOLORWRITEENA
48a0: 42 4c 45 5f 41 4c 50 48 41 20 3d 20 28 31 4c 3c  BLE_ALPHA = (1L<
48b0: 3c 33 29 3b 0d 0a 0d 0a 2f 2a 0d 0a 20 2a 20 53  <3);..../*.. * S
48c0: 74 61 74 65 20 65 6e 75 6d 65 72 61 6e 74 73 20  tate enumerants 
48d0: 66 6f 72 20 70 65 72 2d 73 74 61 67 65 20 70 72  for per-stage pr
48e0: 6f 63 65 73 73 69 6e 67 20 6f 66 20 66 69 78 65  ocessing of fixe
48f0: 64 20 66 75 6e 63 74 69 6f 6e 20 70 69 78 65 6c  d function pixel
4900: 20 70 72 6f 63 65 73 73 69 6e 67 0d 0a 20 2a 20   processing.. * 
4910: 54 77 6f 20 6f 66 20 74 68 65 73 65 20 61 66 66  Two of these aff
4920: 65 63 74 20 66 69 78 65 64 20 66 75 6e 63 74 69  ect fixed functi
4930: 6f 6e 20 76 65 72 74 65 78 20 70 72 6f 63 65 73  on vertex proces
4940: 73 69 6e 67 20 61 73 20 77 65 6c 6c 3a 20 54 45  sing as well: TE
4950: 58 54 55 52 45 54 52 41 4e 53 46 4f 52 4d 46 4c  XTURETRANSFORMFL
4960: 41 47 53 20 61 6e 64 20 54 45 58 43 4f 4f 52 44  AGS and TEXCOORD
4970: 49 4e 44 45 58 2e 0d 0a 20 2a 2f 0d 0a 65 6e 75  INDEX... */..enu
4980: 6d 20 3a 20 44 33 44 54 45 58 54 55 52 45 53 54  m : D3DTEXTUREST
4990: 41 47 45 53 54 41 54 45 54 59 50 45 20 7b 0d 0a  AGESTATETYPE {..
49a0: 20 20 20 20 44 33 44 54 53 53 5f 43 4f 4c 4f 52      D3DTSS_COLOR
49b0: 4f 50 20 20 20 20 20 20 20 20 3d 20 20 31 2c 20  OP        =  1, 
49c0: 2f 2a 20 44 33 44 54 45 58 54 55 52 45 4f 50 20  /* D3DTEXTUREOP 
49d0: 2d 20 70 65 72 2d 73 74 61 67 65 20 62 6c 65 6e  - per-stage blen
49e0: 64 69 6e 67 20 63 6f 6e 74 72 6f 6c 73 20 66 6f  ding controls fo
49f0: 72 20 63 6f 6c 6f 72 20 63 68 61 6e 6e 65 6c 73  r color channels
4a00: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 54 53 53 5f   */..    D3DTSS_
4a10: 43 4f 4c 4f 52 41 52 47 31 20 20 20 20 20 20 3d  COLORARG1      =
4a20: 20 20 32 2c 20 2f 2a 20 44 33 44 54 41 5f 2a 20    2, /* D3DTA_* 
4a30: 28 74 65 78 74 75 72 65 20 61 72 67 29 20 2a 2f  (texture arg) */
4a40: 0d 0a 20 20 20 20 44 33 44 54 53 53 5f 43 4f 4c  ..    D3DTSS_COL
4a50: 4f 52 41 52 47 32 20 20 20 20 20 20 3d 20 20 33  ORARG2      =  3
4a60: 2c 20 2f 2a 20 44 33 44 54 41 5f 2a 20 28 74 65  , /* D3DTA_* (te
4a70: 78 74 75 72 65 20 61 72 67 29 20 2a 2f 0d 0a 20  xture arg) */.. 
4a80: 20 20 20 44 33 44 54 53 53 5f 41 4c 50 48 41 4f     D3DTSS_ALPHAO
4a90: 50 20 20 20 20 20 20 20 20 3d 20 20 34 2c 20 2f  P        =  4, /
4aa0: 2a 20 44 33 44 54 45 58 54 55 52 45 4f 50 20 2d  * D3DTEXTUREOP -
4ab0: 20 70 65 72 2d 73 74 61 67 65 20 62 6c 65 6e 64   per-stage blend
4ac0: 69 6e 67 20 63 6f 6e 74 72 6f 6c 73 20 66 6f 72  ing controls for
4ad0: 20 61 6c 70 68 61 20 63 68 61 6e 6e 65 6c 20 2a   alpha channel *
4ae0: 2f 0d 0a 20 20 20 20 44 33 44 54 53 53 5f 41 4c  /..    D3DTSS_AL
4af0: 50 48 41 41 52 47 31 20 20 20 20 20 20 3d 20 20  PHAARG1      =  
4b00: 35 2c 20 2f 2a 20 44 33 44 54 41 5f 2a 20 28 74  5, /* D3DTA_* (t
4b10: 65 78 74 75 72 65 20 61 72 67 29 20 2a 2f 0d 0a  exture arg) */..
4b20: 20 20 20 20 44 33 44 54 53 53 5f 41 4c 50 48 41      D3DTSS_ALPHA
4b30: 41 52 47 32 20 20 20 20 20 20 3d 20 20 36 2c 20  ARG2      =  6, 
4b40: 2f 2a 20 44 33 44 54 41 5f 2a 20 28 74 65 78 74  /* D3DTA_* (text
4b50: 75 72 65 20 61 72 67 29 20 2a 2f 0d 0a 20 20 20  ure arg) */..   
4b60: 20 44 33 44 54 53 53 5f 42 55 4d 50 45 4e 56 4d   D3DTSS_BUMPENVM
4b70: 41 54 30 30 20 20 20 3d 20 20 37 2c 20 2f 2a 20  AT00   =  7, /* 
4b80: 66 6c 6f 61 74 20 28 62 75 6d 70 20 6d 61 70 70  float (bump mapp
4b90: 69 6e 67 20 6d 61 74 72 69 78 29 20 2a 2f 0d 0a  ing matrix) */..
4ba0: 20 20 20 20 44 33 44 54 53 53 5f 42 55 4d 50 45      D3DTSS_BUMPE
4bb0: 4e 56 4d 41 54 30 31 20 20 20 3d 20 20 38 2c 20  NVMAT01   =  8, 
4bc0: 2f 2a 20 66 6c 6f 61 74 20 28 62 75 6d 70 20 6d  /* float (bump m
4bd0: 61 70 70 69 6e 67 20 6d 61 74 72 69 78 29 20 2a  apping matrix) *
4be0: 2f 0d 0a 20 20 20 20 44 33 44 54 53 53 5f 42 55  /..    D3DTSS_BU
4bf0: 4d 50 45 4e 56 4d 41 54 31 30 20 20 20 3d 20 20  MPENVMAT10   =  
4c00: 39 2c 20 2f 2a 20 66 6c 6f 61 74 20 28 62 75 6d  9, /* float (bum
4c10: 70 20 6d 61 70 70 69 6e 67 20 6d 61 74 72 69 78  p mapping matrix
4c20: 29 20 2a 2f 0d 0a 20 20 20 20 44 33 44 54 53 53  ) */..    D3DTSS
4c30: 5f 42 55 4d 50 45 4e 56 4d 41 54 31 31 20 20 20  _BUMPENVMAT11   
4c40: 3d 20 31 30 2c 20 2f 2a 20 66 6c 6f 61 74 20 28  = 10, /* float (
4c50: 62 75 6d 70 20 6d 61 70 70 69 6e 67 20 6d 61 74  bump mapping mat
4c60: 72 69 78 29 20 2a 2f 0d 0a 20 20 20 20 44 33 44  rix) */..    D3D
4c70: 54 53 53 5f 54 45 58 43 4f 4f 52 44 49 4e 44 45  TSS_TEXCOORDINDE
4c80: 58 20 20 3d 20 31 31 2c 20 2f 2a 20 69 64 65 6e  X  = 11, /* iden
4c90: 74 69 66 69 65 73 20 77 68 69 63 68 20 73 65 74  tifies which set
4ca0: 20 6f 66 20 74 65 78 74 75 72 65 20 63 6f 6f 72   of texture coor
4cb0: 64 69 6e 61 74 65 73 20 69 6e 64 65 78 20 74 68  dinates index th
4cc0: 69 73 20 74 65 78 74 75 72 65 20 2a 2f 0d 0a 20  is texture */.. 
4cd0: 20 20 20 44 33 44 54 53 53 5f 42 55 4d 50 45 4e     D3DTSS_BUMPEN
4ce0: 56 4c 53 43 41 4c 45 20 20 3d 20 32 32 2c 20 2f  VLSCALE  = 22, /
4cf0: 2a 20 66 6c 6f 61 74 20 73 63 61 6c 65 20 66 6f  * float scale fo
4d00: 72 20 62 75 6d 70 20 6d 61 70 20 6c 75 6d 69 6e  r bump map lumin
4d10: 61 6e 63 65 20 2a 2f 0d 0a 20 20 20 20 44 33 44  ance */..    D3D
4d20: 54 53 53 5f 42 55 4d 50 45 4e 56 4c 4f 46 46 53  TSS_BUMPENVLOFFS
4d30: 45 54 20 3d 20 32 33 2c 20 2f 2a 20 66 6c 6f 61  ET = 23, /* floa
4d40: 74 20 6f 66 66 73 65 74 20 66 6f 72 20 62 75 6d  t offset for bum
4d50: 70 20 6d 61 70 20 6c 75 6d 69 6e 61 6e 63 65 20  p map luminance 
4d60: 2a 2f 0d 0a 20 20 20 20 44 33 44 54 53 53 5f 54  */..    D3DTSS_T
4d70: 45 58 54 55 52 45 54 52 41 4e 53 46 4f 52 4d 46  EXTURETRANSFORMF
4d80: 4c 41 47 53 20 3d 20 32 34 2c 20 2f 2a 20 44 33  LAGS = 24, /* D3
4d90: 44 54 45 58 54 55 52 45 54 52 41 4e 53 46 4f 52  DTEXTURETRANSFOR
4da0: 4d 46 4c 41 47 53 20 63 6f 6e 74 72 6f 6c 73 20  MFLAGS controls 
4db0: 74 65 78 74 75 72 65 20 74 72 61 6e 73 66 6f 72  texture transfor
4dc0: 6d 20 2a 2f 0d 0a 20 20 20 20 44 33 44 54 53 53  m */..    D3DTSS
4dd0: 5f 43 4f 4c 4f 52 41 52 47 30 20 20 20 20 20 20  _COLORARG0      
4de0: 3d 20 32 36 2c 20 2f 2a 20 44 33 44 54 41 5f 2a  = 26, /* D3DTA_*
4df0: 20 74 68 69 72 64 20 61 72 67 20 66 6f 72 20 74   third arg for t
4e00: 72 69 61 64 69 63 20 6f 70 73 20 2a 2f 0d 0a 20  riadic ops */.. 
4e10: 20 20 20 44 33 44 54 53 53 5f 41 4c 50 48 41 41     D3DTSS_ALPHAA
4e20: 52 47 30 20 20 20 20 20 20 3d 20 32 37 2c 20 2f  RG0      = 27, /
4e30: 2a 20 44 33 44 54 41 5f 2a 20 74 68 69 72 64 20  * D3DTA_* third 
4e40: 61 72 67 20 66 6f 72 20 74 72 69 61 64 69 63 20  arg for triadic 
4e50: 6f 70 73 20 2a 2f 0d 0a 20 20 20 20 44 33 44 54  ops */..    D3DT
4e60: 53 53 5f 52 45 53 55 4c 54 41 52 47 20 20 20 20  SS_RESULTARG    
4e70: 20 20 3d 20 32 38 2c 20 2f 2a 20 44 33 44 54 41    = 28, /* D3DTA
4e80: 5f 2a 20 61 72 67 20 66 6f 72 20 72 65 73 75 6c  _* arg for resul
4e90: 74 20 28 43 55 52 52 45 4e 54 20 6f 72 20 54 45  t (CURRENT or TE
4ea0: 4d 50 29 20 2a 2f 0d 0a 20 20 20 20 44 33 44 54  MP) */..    D3DT
4eb0: 53 53 5f 43 4f 4e 53 54 41 4e 54 20 20 20 20 20  SS_CONSTANT     
4ec0: 20 20 3d 20 33 32 20 20 2f 2a 20 50 65 72 2d 73    = 32  /* Per-s
4ed0: 74 61 67 65 20 63 6f 6e 73 74 61 6e 74 20 44 33  tage constant D3
4ee0: 44 54 41 5f 43 4f 4e 53 54 41 4e 54 20 2a 2f 0d  DTA_CONSTANT */.
4ef0: 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65  .}..alias TypeDe
4f00: 66 21 28 75 69 6e 74 29 20 44 33 44 54 45 58 54  f!(uint) D3DTEXT
4f10: 55 52 45 53 54 41 47 45 53 54 41 54 45 54 59 50  URESTAGESTATETYP
4f20: 45 3b 0d 0a 0d 0a 2f 2a 0d 0a 20 2a 20 53 74 61  E;..../*.. * Sta
4f30: 74 65 20 65 6e 75 6d 65 72 61 6e 74 73 20 66 6f  te enumerants fo
4f40: 72 20 70 65 72 2d 73 61 6d 70 6c 65 72 20 74 65  r per-sampler te
4f50: 78 74 75 72 65 20 70 72 6f 63 65 73 73 69 6e 67  xture processing
4f60: 2e 0d 0a 20 2a 2f 0d 0a 65 6e 75 6d 20 3a 20 44  ... */..enum : D
4f70: 33 44 53 41 4d 50 4c 45 52 53 54 41 54 45 54 59  3DSAMPLERSTATETY
4f80: 50 45 20 7b 0d 0a 20 20 20 20 44 33 44 53 41 4d  PE {..    D3DSAM
4f90: 50 5f 41 44 44 52 45 53 53 55 20 20 20 20 20 20  P_ADDRESSU      
4fa0: 20 3d 20 31 2c 20 20 2f 2a 20 44 33 44 54 45 58   = 1,  /* D3DTEX
4fb0: 54 55 52 45 41 44 44 52 45 53 53 20 66 6f 72 20  TUREADDRESS for 
4fc0: 55 20 63 6f 6f 72 64 69 6e 61 74 65 20 2a 2f 0d  U coordinate */.
4fd0: 0a 20 20 20 20 44 33 44 53 41 4d 50 5f 41 44 44  .    D3DSAMP_ADD
4fe0: 52 45 53 53 56 20 20 20 20 20 20 20 3d 20 32 2c  RESSV       = 2,
4ff0: 20 20 2f 2a 20 44 33 44 54 45 58 54 55 52 45 41    /* D3DTEXTUREA
5000: 44 44 52 45 53 53 20 66 6f 72 20 56 20 63 6f 6f  DDRESS for V coo
5010: 72 64 69 6e 61 74 65 20 2a 2f 0d 0a 20 20 20 20  rdinate */..    
5020: 44 33 44 53 41 4d 50 5f 41 44 44 52 45 53 53 57  D3DSAMP_ADDRESSW
5030: 20 20 20 20 20 20 20 3d 20 33 2c 20 20 2f 2a 20         = 3,  /* 
5040: 44 33 44 54 45 58 54 55 52 45 41 44 44 52 45 53  D3DTEXTUREADDRES
5050: 53 20 66 6f 72 20 57 20 63 6f 6f 72 64 69 6e 61  S for W coordina
5060: 74 65 20 2a 2f 0d 0a 20 20 20 20 44 33 44 53 41  te */..    D3DSA
5070: 4d 50 5f 42 4f 52 44 45 52 43 4f 4c 4f 52 20 20  MP_BORDERCOLOR  
5080: 20 20 3d 20 34 2c 20 20 2f 2a 20 44 33 44 43 4f    = 4,  /* D3DCO
5090: 4c 4f 52 20 2a 2f 0d 0a 20 20 20 20 44 33 44 53  LOR */..    D3DS
50a0: 41 4d 50 5f 4d 41 47 46 49 4c 54 45 52 20 20 20  AMP_MAGFILTER   
50b0: 20 20 20 3d 20 35 2c 20 20 2f 2a 20 44 33 44 54     = 5,  /* D3DT
50c0: 45 58 54 55 52 45 46 49 4c 54 45 52 20 66 69 6c  EXTUREFILTER fil
50d0: 74 65 72 20 74 6f 20 75 73 65 20 66 6f 72 20 6d  ter to use for m
50e0: 61 67 6e 69 66 69 63 61 74 69 6f 6e 20 2a 2f 0d  agnification */.
50f0: 0a 20 20 20 20 44 33 44 53 41 4d 50 5f 4d 49 4e  .    D3DSAMP_MIN
5100: 46 49 4c 54 45 52 20 20 20 20 20 20 3d 20 36 2c  FILTER      = 6,
5110: 20 20 2f 2a 20 44 33 44 54 45 58 54 55 52 45 46    /* D3DTEXTUREF
5120: 49 4c 54 45 52 20 66 69 6c 74 65 72 20 74 6f 20  ILTER filter to 
5130: 75 73 65 20 66 6f 72 20 6d 69 6e 69 66 69 63 61  use for minifica
5140: 74 69 6f 6e 20 2a 2f 0d 0a 20 20 20 20 44 33 44  tion */..    D3D
5150: 53 41 4d 50 5f 4d 49 50 46 49 4c 54 45 52 20 20  SAMP_MIPFILTER  
5160: 20 20 20 20 3d 20 37 2c 20 20 2f 2a 20 44 33 44      = 7,  /* D3D
5170: 54 45 58 54 55 52 45 46 49 4c 54 45 52 20 66 69  TEXTUREFILTER fi
5180: 6c 74 65 72 20 74 6f 20 75 73 65 20 62 65 74 77  lter to use betw
5190: 65 65 6e 20 6d 69 70 6d 61 70 73 20 64 75 72 69  een mipmaps duri
51a0: 6e 67 20 6d 69 6e 69 66 69 63 61 74 69 6f 6e 20  ng minification 
51b0: 2a 2f 0d 0a 20 20 20 20 44 33 44 53 41 4d 50 5f  */..    D3DSAMP_
51c0: 4d 49 50 4d 41 50 4c 4f 44 42 49 41 53 20 20 3d  MIPMAPLODBIAS  =
51d0: 20 38 2c 20 20 2f 2a 20 66 6c 6f 61 74 20 4d 69   8,  /* float Mi
51e0: 70 6d 61 70 20 4c 4f 44 20 62 69 61 73 20 2a 2f  pmap LOD bias */
51f0: 0d 0a 20 20 20 20 44 33 44 53 41 4d 50 5f 4d 41  ..    D3DSAMP_MA
5200: 58 4d 49 50 4c 45 56 45 4c 20 20 20 20 3d 20 39  XMIPLEVEL    = 9
5210: 2c 20 20 2f 2a 20 44 57 4f 52 44 20 30 2e 2e 28  ,  /* DWORD 0..(
5220: 6e 2d 31 29 20 4c 4f 44 20 69 6e 64 65 78 20 6f  n-1) LOD index o
5230: 66 20 6c 61 72 67 65 73 74 20 6d 61 70 20 74 6f  f largest map to
5240: 20 75 73 65 20 28 30 20 3d 3d 20 6c 61 72 67 65   use (0 == large
5250: 73 74 29 20 2a 2f 0d 0a 20 20 20 20 44 33 44 53  st) */..    D3DS
5260: 41 4d 50 5f 4d 41 58 41 4e 49 53 4f 54 52 4f 50  AMP_MAXANISOTROP
5270: 59 20 20 3d 20 31 30 2c 20 2f 2a 20 44 57 4f 52  Y  = 10, /* DWOR
5280: 44 20 6d 61 78 69 6d 75 6d 20 61 6e 69 73 6f 74  D maximum anisot
5290: 72 6f 70 79 20 2a 2f 0d 0a 20 20 20 20 44 33 44  ropy */..    D3D
52a0: 53 41 4d 50 5f 53 52 47 42 54 45 58 54 55 52 45  SAMP_SRGBTEXTURE
52b0: 20 20 20 20 3d 20 31 31 2c 20 2f 2a 20 44 65 66      = 11, /* Def
52c0: 61 75 6c 74 20 3d 20 30 20 28 77 68 69 63 68 20  ault = 0 (which 
52d0: 6d 65 61 6e 73 20 47 61 6d 6d 61 20 31 2e 30 2c  means Gamma 1.0,
52e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
52f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5300: 20 20 20 20 20 6e 6f 20 63 6f 72 72 65 63 74 69       no correcti
5310: 6f 6e 20 72 65 71 75 69 72 65 64 2e 29 20 65 6c  on required.) el
5320: 73 65 20 63 6f 72 72 65 63 74 20 66 6f 72 0d 0a  se correct for..
5330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5350: 20 20 20 47 61 6d 6d 61 20 3d 20 32 2e 32 20 2a     Gamma = 2.2 *
5360: 2f 0d 0a 20 20 20 20 44 33 44 53 41 4d 50 5f 45  /..    D3DSAMP_E
5370: 4c 45 4d 45 4e 54 49 4e 44 45 58 20 20 20 3d 20  LEMENTINDEX   = 
5380: 31 32 2c 20 2f 2a 20 57 68 65 6e 20 6d 75 6c 74  12, /* When mult
5390: 69 2d 65 6c 65 6d 65 6e 74 20 74 65 78 74 75 72  i-element textur
53a0: 65 20 69 73 20 61 73 73 69 67 6e 65 64 20 74 6f  e is assigned to
53b0: 20 73 61 6d 70 6c 65 72 2c 20 74 68 69 73 0d 0a   sampler, this..
53c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
53d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
53e0: 20 20 20 20 69 6e 64 69 63 61 74 65 73 20 77 68      indicates wh
53f0: 69 63 68 20 65 6c 65 6d 65 6e 74 20 69 6e 64 65  ich element inde
5400: 78 20 74 6f 20 75 73 65 2e 20 20 44 65 66 61 75  x to use.  Defau
5410: 6c 74 20 3d 20 30 2e 20 20 2a 2f 0d 0a 20 20 20  lt = 0.  */..   
5420: 20 44 33 44 53 41 4d 50 5f 44 4d 41 50 4f 46 46   D3DSAMP_DMAPOFF
5430: 53 45 54 20 20 20 20 20 3d 20 31 33 20 20 2f 2a  SET     = 13  /*
5440: 20 4f 66 66 73 65 74 20 69 6e 20 76 65 72 74 69   Offset in verti
5450: 63 65 73 20 69 6e 20 74 68 65 20 70 72 65 2d 73  ces in the pre-s
5460: 61 6d 70 6c 65 64 20 64 69 73 70 6c 61 63 65 6d  ampled displacem
5470: 65 6e 74 20 6d 61 70 2e 0d 0a 20 20 20 20 20 20  ent map...      
5480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 6e                On
54a0: 6c 79 20 76 61 6c 69 64 20 66 6f 72 20 44 33 44  ly valid for D3D
54b0: 44 4d 41 50 53 41 4d 50 4c 45 52 20 73 61 6d 70  DMAPSAMPLER samp
54c0: 6c 65 72 20 20 2a 2f 0d 0a 7d 0d 0a 61 6c 69 61  ler  */..}..alia
54d0: 73 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29  s TypeDef!(uint)
54e0: 20 44 33 44 53 41 4d 50 4c 45 52 53 54 41 54 45   D3DSAMPLERSTATE
54f0: 54 59 50 45 3b 0d 0a 0d 0a 2f 2a 20 53 70 65 63  TYPE;..../* Spec
5500: 69 61 6c 20 73 61 6d 70 6c 65 72 20 77 68 69 63  ial sampler whic
5510: 68 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 65  h is used in the
5520: 20 74 65 73 73 65 6c 61 74 6f 72 20 2a 2f 0d 0a   tesselator */..
5530: 63 6f 6e 73 74 20 44 33 44 44 4d 41 50 53 41 4d  const D3DDMAPSAM
5540: 50 4c 45 52 20 3d 20 32 35 36 3b 0d 0a 0d 0a 2f  PLER = 256;..../
5550: 2f 20 53 61 6d 70 6c 65 72 73 20 75 73 65 64 20  / Samplers used 
5560: 69 6e 20 76 65 72 74 65 78 20 73 68 61 64 65 72  in vertex shader
5570: 73 0d 0a 63 6f 6e 73 74 20 44 33 44 56 45 52 54  s..const D3DVERT
5580: 45 58 54 45 58 54 55 52 45 53 41 4d 50 4c 45 52  EXTEXTURESAMPLER
5590: 30 20 3d 20 28 44 33 44 44 4d 41 50 53 41 4d 50  0 = (D3DDMAPSAMP
55a0: 4c 45 52 2b 31 29 3b 0d 0a 63 6f 6e 73 74 20 44  LER+1);..const D
55b0: 33 44 56 45 52 54 45 58 54 45 58 54 55 52 45 53  3DVERTEXTEXTURES
55c0: 41 4d 50 4c 45 52 31 20 3d 20 28 44 33 44 44 4d  AMPLER1 = (D3DDM
55d0: 41 50 53 41 4d 50 4c 45 52 2b 32 29 3b 0d 0a 63  APSAMPLER+2);..c
55e0: 6f 6e 73 74 20 44 33 44 56 45 52 54 45 58 54 45  onst D3DVERTEXTE
55f0: 58 54 55 52 45 53 41 4d 50 4c 45 52 32 20 3d 20  XTURESAMPLER2 = 
5600: 28 44 33 44 44 4d 41 50 53 41 4d 50 4c 45 52 2b  (D3DDMAPSAMPLER+
5610: 33 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56 45  3);..const D3DVE
5620: 52 54 45 58 54 45 58 54 55 52 45 53 41 4d 50 4c  RTEXTEXTURESAMPL
5630: 45 52 33 20 3d 20 28 44 33 44 44 4d 41 50 53 41  ER3 = (D3DDMAPSA
5640: 4d 50 4c 45 52 2b 34 29 3b 0d 0a 0d 0a 2f 2f 20  MPLER+4);....// 
5650: 56 61 6c 75 65 73 2c 20 75 73 65 64 20 77 69 74  Values, used wit
5660: 68 20 44 33 44 54 53 53 5f 54 45 58 43 4f 4f 52  h D3DTSS_TEXCOOR
5670: 44 49 4e 44 45 58 2c 20 74 6f 20 73 70 65 63 69  DINDEX, to speci
5680: 66 79 20 74 68 61 74 20 74 68 65 20 76 65 72 74  fy that the vert
5690: 65 78 20 64 61 74 61 28 70 6f 73 69 74 69 6f 6e  ex data(position
56a0: 0d 0a 2f 2f 20 61 6e 64 20 6e 6f 72 6d 61 6c 20  ..// and normal 
56b0: 69 6e 20 74 68 65 20 63 61 6d 65 72 61 20 73 70  in the camera sp
56c0: 61 63 65 29 20 73 68 6f 75 6c 64 20 62 65 20 74  ace) should be t
56d0: 61 6b 65 6e 20 61 73 20 74 65 78 74 75 72 65 20  aken as texture 
56e0: 63 6f 6f 72 64 69 6e 61 74 65 73 0d 0a 2f 2f 20  coordinates..// 
56f0: 4c 6f 77 20 31 36 20 62 69 74 73 20 61 72 65 20  Low 16 bits are 
5700: 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20  used to specify 
5710: 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e 61  texture coordina
5720: 74 65 20 69 6e 64 65 78 2c 20 74 6f 20 74 61 6b  te index, to tak
5730: 65 20 74 68 65 20 57 52 41 50 20 6d 6f 64 65 20  e the WRAP mode 
5740: 66 72 6f 6d 0d 0a 2f 2f 0d 0a 63 6f 6e 73 74 20  from..//..const 
5750: 44 33 44 54 53 53 5f 54 43 49 5f 50 41 53 53 54  D3DTSS_TCI_PASST
5760: 48 52 55 20 3d 20 30 78 30 30 30 30 30 30 30 30  HRU = 0x00000000
5770: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 54 53 53 5f  ;..const D3DTSS_
5780: 54 43 49 5f 43 41 4d 45 52 41 53 50 41 43 45 4e  TCI_CAMERASPACEN
5790: 4f 52 4d 41 4c 20 3d 20 30 78 30 30 30 31 30 30  ORMAL = 0x000100
57a0: 30 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 54 53  00;..const D3DTS
57b0: 53 5f 54 43 49 5f 43 41 4d 45 52 41 53 50 41 43  S_TCI_CAMERASPAC
57c0: 45 50 4f 53 49 54 49 4f 4e 20 3d 20 30 78 30 30  EPOSITION = 0x00
57d0: 30 32 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 44  020000;..const D
57e0: 33 44 54 53 53 5f 54 43 49 5f 43 41 4d 45 52 41  3DTSS_TCI_CAMERA
57f0: 53 50 41 43 45 52 45 46 4c 45 43 54 49 4f 4e 56  SPACEREFLECTIONV
5800: 45 43 54 4f 52 20 3d 20 30 78 30 30 30 33 30 30  ECTOR = 0x000300
5810: 30 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 54 53  00;..const D3DTS
5820: 53 5f 54 43 49 5f 53 50 48 45 52 45 4d 41 50 20  S_TCI_SPHEREMAP 
5830: 3d 20 30 78 30 30 30 34 30 30 30 30 3b 0d 0a 0d  = 0x00040000;...
5840: 0a 2f 2a 0d 0a 20 2a 20 45 6e 75 6d 65 72 61 74  ./*.. * Enumerat
5850: 69 6f 6e 73 20 66 6f 72 20 43 4f 4c 4f 52 4f 50  ions for COLOROP
5860: 20 61 6e 64 20 41 4c 50 48 41 4f 50 20 74 65 78   and ALPHAOP tex
5870: 74 75 72 65 20 62 6c 65 6e 64 69 6e 67 20 6f 70  ture blending op
5880: 65 72 61 74 69 6f 6e 73 20 73 65 74 20 69 6e 0d  erations set in.
5890: 0a 20 2a 20 74 65 78 74 75 72 65 20 70 72 6f 63  . * texture proc
58a0: 65 73 73 69 6e 67 20 73 74 61 67 65 20 63 6f 6e  essing stage con
58b0: 74 72 6f 6c 73 20 69 6e 20 44 33 44 54 53 53 2e  trols in D3DTSS.
58c0: 0d 0a 20 2a 2f 0d 0a 65 6e 75 6d 20 3a 20 44 33  .. */..enum : D3
58d0: 44 54 45 58 54 55 52 45 4f 50 20 7b 0d 0a 20 20  DTEXTUREOP {..  
58e0: 20 20 2f 2f 20 43 6f 6e 74 72 6f 6c 0d 0a 20 20    // Control..  
58f0: 20 20 44 33 44 54 4f 50 5f 44 49 53 41 42 4c 45    D3DTOP_DISABLE
5900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
5910: 31 2c 20 20 20 20 20 20 2f 2f 20 64 69 73 61 62  1,      // disab
5920: 6c 65 73 20 73 74 61 67 65 0d 0a 20 20 20 20 44  les stage..    D
5930: 33 44 54 4f 50 5f 53 45 4c 45 43 54 41 52 47 31  3DTOP_SELECTARG1
5940: 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 2c 20             = 2, 
5950: 20 20 20 20 20 2f 2f 20 74 68 65 20 64 65 66 61       // the defa
5960: 75 6c 74 0d 0a 20 20 20 20 44 33 44 54 4f 50 5f  ult..    D3DTOP_
5970: 53 45 4c 45 43 54 41 52 47 32 20 20 20 20 20 20  SELECTARG2      
5980: 20 20 20 20 20 3d 20 33 2c 0d 0a 0d 0a 20 20 20       = 3,....   
5990: 20 2f 2f 20 4d 6f 64 75 6c 61 74 65 0d 0a 20 20   // Modulate..  
59a0: 20 20 44 33 44 54 4f 50 5f 4d 4f 44 55 4c 41 54    D3DTOP_MODULAT
59b0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  E             = 
59c0: 34 2c 20 20 20 20 20 20 2f 2f 20 6d 75 6c 74 69  4,      // multi
59d0: 70 6c 79 20 61 72 67 73 20 74 6f 67 65 74 68 65  ply args togethe
59e0: 72 0d 0a 20 20 20 20 44 33 44 54 4f 50 5f 4d 4f  r..    D3DTOP_MO
59f0: 44 55 4c 41 54 45 32 58 20 20 20 20 20 20 20 20  DULATE2X        
5a00: 20 20 20 3d 20 35 2c 20 20 20 20 20 20 2f 2f 20     = 5,      // 
5a10: 6d 75 6c 74 69 70 6c 79 20 61 6e 64 20 20 31 20  multiply and  1 
5a20: 62 69 74 0d 0a 20 20 20 20 44 33 44 54 4f 50 5f  bit..    D3DTOP_
5a30: 4d 4f 44 55 4c 41 54 45 34 58 20 20 20 20 20 20  MODULATE4X      
5a40: 20 20 20 20 20 3d 20 36 2c 20 20 20 20 20 20 2f       = 6,      /
5a50: 2f 20 6d 75 6c 74 69 70 6c 79 20 61 6e 64 20 20  / multiply and  
5a60: 32 20 62 69 74 73 0d 0a 0d 0a 20 20 20 20 2f 2f  2 bits....    //
5a70: 20 41 64 64 0d 0a 20 20 20 20 44 33 44 54 4f 50   Add..    D3DTOP
5a80: 5f 41 44 44 20 20 20 20 20 20 20 20 20 20 20 20  _ADD            
5a90: 20 20 20 20 20 20 3d 20 20 37 2c 20 20 20 2f 2f        =  7,   //
5aa0: 20 61 64 64 20 61 72 67 75 6d 65 6e 74 73 20 74   add arguments t
5ab0: 6f 67 65 74 68 65 72 0d 0a 20 20 20 20 44 33 44  ogether..    D3D
5ac0: 54 4f 50 5f 41 44 44 53 49 47 4e 45 44 20 20 20  TOP_ADDSIGNED   
5ad0: 20 20 20 20 20 20 20 20 20 3d 20 20 38 2c 20 20           =  8,  
5ae0: 20 2f 2f 20 61 64 64 20 77 69 74 68 20 2d 30 2e   // add with -0.
5af0: 35 20 62 69 61 73 0d 0a 20 20 20 20 44 33 44 54  5 bias..    D3DT
5b00: 4f 50 5f 41 44 44 53 49 47 4e 45 44 32 58 20 20  OP_ADDSIGNED2X  
5b10: 20 20 20 20 20 20 20 20 3d 20 20 39 2c 20 20 20          =  9,   
5b20: 2f 2f 20 61 73 20 61 62 6f 76 65 20 62 75 74 20  // as above but 
5b30: 6c 65 66 74 20 20 31 20 62 69 74 0d 0a 20 20 20  left  1 bit..   
5b40: 20 44 33 44 54 4f 50 5f 53 55 42 54 52 41 43 54   D3DTOP_SUBTRACT
5b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31               = 1
5b60: 30 2c 20 20 20 2f 2f 20 41 72 67 31 20 2d 20 41  0,   // Arg1 - A
5b70: 72 67 32 2c 20 77 69 74 68 20 6e 6f 20 73 61 74  rg2, with no sat
5b80: 75 72 61 74 69 6f 6e 0d 0a 20 20 20 20 44 33 44  uration..    D3D
5b90: 54 4f 50 5f 41 44 44 53 4d 4f 4f 54 48 20 20 20  TOP_ADDSMOOTH   
5ba0: 20 20 20 20 20 20 20 20 20 3d 20 31 31 2c 20 20           = 11,  
5bb0: 20 2f 2f 20 61 64 64 20 32 20 61 72 67 73 2c 20   // add 2 args, 
5bc0: 73 75 62 74 72 61 63 74 20 70 72 6f 64 75 63 74  subtract product
5bd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
5be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5bf0: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 72 67            // Arg
5c00: 31 20 2b 20 41 72 67 32 20 2d 20 41 72 67 31 2a  1 + Arg2 - Arg1*
5c10: 41 72 67 32 0d 0a 20 20 20 20 20 20 20 20 20 20  Arg2..          
5c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
5c40: 20 3d 20 41 72 67 31 20 2b 20 28 31 2d 41 72 67   = Arg1 + (1-Arg
5c50: 31 29 2a 41 72 67 32 0d 0a 0d 0a 20 20 20 20 2f  1)*Arg2....    /
5c60: 2f 20 4c 69 6e 65 61 72 20 61 6c 70 68 61 20 62  / Linear alpha b
5c70: 6c 65 6e 64 3a 20 41 72 67 31 2a 28 41 6c 70 68  lend: Arg1*(Alph
5c80: 61 29 20 2b 20 41 72 67 32 2a 28 31 2d 41 6c 70  a) + Arg2*(1-Alp
5c90: 68 61 29 0d 0a 20 20 20 20 44 33 44 54 4f 50 5f  ha)..    D3DTOP_
5ca0: 42 4c 45 4e 44 44 49 46 46 55 53 45 41 4c 50 48  BLENDDIFFUSEALPH
5cb0: 41 20 20 20 20 3d 20 31 32 2c 20 2f 2f 20 69 74  A    = 12, // it
5cc0: 65 72 61 74 65 64 20 61 6c 70 68 61 0d 0a 20 20  erated alpha..  
5cd0: 20 20 44 33 44 54 4f 50 5f 42 4c 45 4e 44 54 45    D3DTOP_BLENDTE
5ce0: 58 54 55 52 45 41 4c 50 48 41 20 20 20 20 3d 20  XTUREALPHA    = 
5cf0: 31 33 2c 20 2f 2f 20 74 65 78 74 75 72 65 20 61  13, // texture a
5d00: 6c 70 68 61 0d 0a 20 20 20 20 44 33 44 54 4f 50  lpha..    D3DTOP
5d10: 5f 42 4c 45 4e 44 46 41 43 54 4f 52 41 4c 50 48  _BLENDFACTORALPH
5d20: 41 20 20 20 20 20 3d 20 31 34 2c 20 2f 2f 20 61  A     = 14, // a
5d30: 6c 70 68 61 20 66 72 6f 6d 20 44 33 44 52 53 5f  lpha from D3DRS_
5d40: 54 45 58 54 55 52 45 46 41 43 54 4f 52 0d 0a 0d  TEXTUREFACTOR...
5d50: 0a 20 20 20 20 2f 2f 20 4c 69 6e 65 61 72 20 61  .    // Linear a
5d60: 6c 70 68 61 20 62 6c 65 6e 64 20 77 69 74 68 20  lpha blend with 
5d70: 70 72 65 2d 6d 75 6c 74 69 70 6c 69 65 64 20 61  pre-multiplied a
5d80: 72 67 31 20 69 6e 70 75 74 3a 20 41 72 67 31 20  rg1 input: Arg1 
5d90: 2b 20 41 72 67 32 2a 28 31 2d 41 6c 70 68 61 29  + Arg2*(1-Alpha)
5da0: 0d 0a 20 20 20 20 44 33 44 54 4f 50 5f 42 4c 45  ..    D3DTOP_BLE
5db0: 4e 44 54 45 58 54 55 52 45 41 4c 50 48 41 50 4d  NDTEXTUREALPHAPM
5dc0: 20 20 3d 20 31 35 2c 20 2f 2f 20 74 65 78 74 75    = 15, // textu
5dd0: 72 65 20 61 6c 70 68 61 0d 0a 20 20 20 20 44 33  re alpha..    D3
5de0: 44 54 4f 50 5f 42 4c 45 4e 44 43 55 52 52 45 4e  DTOP_BLENDCURREN
5df0: 54 41 4c 50 48 41 20 20 20 20 3d 20 31 36 2c 20  TALPHA    = 16, 
5e00: 2f 2f 20 62 79 20 61 6c 70 68 61 20 6f 66 20 63  // by alpha of c
5e10: 75 72 72 65 6e 74 20 63 6f 6c 6f 72 0d 0a 0d 0a  urrent color....
5e20: 20 20 20 20 2f 2f 20 53 70 65 63 75 6c 61 72 20      // Specular 
5e30: 6d 61 70 70 69 6e 67 0d 0a 20 20 20 20 44 33 44  mapping..    D3D
5e40: 54 4f 50 5f 50 52 45 4d 4f 44 55 4c 41 54 45 20  TOP_PREMODULATE 
5e50: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 37 2c             = 17,
5e60: 20 20 20 20 20 2f 2f 20 6d 6f 64 75 6c 61 74 65       // modulate
5e70: 20 77 69 74 68 20 6e 65 78 74 20 74 65 78 74 75   with next textu
5e80: 72 65 20 62 65 66 6f 72 65 20 75 73 65 0d 0a 20  re before use.. 
5e90: 20 20 20 44 33 44 54 4f 50 5f 4d 4f 44 55 4c 41     D3DTOP_MODULA
5ea0: 54 45 41 4c 50 48 41 5f 41 44 44 43 4f 4c 4f 52  TEALPHA_ADDCOLOR
5eb0: 20 3d 20 31 38 2c 20 20 20 20 20 2f 2f 20 41 72   = 18,     // Ar
5ec0: 67 31 2e 52 47 42 20 2b 20 41 72 67 31 2e 41 2a  g1.RGB + Arg1.A*
5ed0: 41 72 67 32 2e 52 47 42 0d 0a 20 20 20 20 20 20  Arg2.RGB..      
5ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5f00: 20 20 20 20 20 20 2f 2f 20 43 4f 4c 4f 52 4f 50        // COLOROP
5f10: 20 6f 6e 6c 79 0d 0a 20 20 20 20 44 33 44 54 4f   only..    D3DTO
5f20: 50 5f 4d 4f 44 55 4c 41 54 45 43 4f 4c 4f 52 5f  P_MODULATECOLOR_
5f30: 41 44 44 41 4c 50 48 41 20 3d 20 31 39 2c 20 20  ADDALPHA = 19,  
5f40: 20 20 20 2f 2f 20 41 72 67 31 2e 52 47 42 2a 41     // Arg1.RGB*A
5f50: 72 67 32 2e 52 47 42 20 2b 20 41 72 67 31 2e 41  rg2.RGB + Arg1.A
5f60: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
5f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
5f90: 20 43 4f 4c 4f 52 4f 50 20 6f 6e 6c 79 0d 0a 20   COLOROP only.. 
5fa0: 20 20 20 44 33 44 54 4f 50 5f 4d 4f 44 55 4c 41     D3DTOP_MODULA
5fb0: 54 45 49 4e 56 41 4c 50 48 41 5f 41 44 44 43 4f  TEINVALPHA_ADDCO
5fc0: 4c 4f 52 20 3d 20 32 30 2c 20 20 2f 2f 20 28 31  LOR = 20,  // (1
5fd0: 2d 41 72 67 31 2e 41 29 2a 41 72 67 32 2e 52 47  -Arg1.A)*Arg2.RG
5fe0: 42 20 2b 20 41 72 67 31 2e 52 47 42 0d 0a 20 20  B + Arg1.RGB..  
5ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6010: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43 4f 4c            // COL
6020: 4f 52 4f 50 20 6f 6e 6c 79 0d 0a 20 20 20 20 44  OROP only..    D
6030: 33 44 54 4f 50 5f 4d 4f 44 55 4c 41 54 45 49 4e  3DTOP_MODULATEIN
6040: 56 43 4f 4c 4f 52 5f 41 44 44 41 4c 50 48 41 20  VCOLOR_ADDALPHA 
6050: 3d 20 32 31 2c 20 20 2f 2f 20 28 31 2d 41 72 67  = 21,  // (1-Arg
6060: 31 2e 52 47 42 29 2a 41 72 67 32 2e 52 47 42 20  1.RGB)*Arg2.RGB 
6070: 2b 20 41 72 67 31 2e 41 0d 0a 20 20 20 20 20 20  + Arg1.A..      
6080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
60a0: 20 20 20 20 20 20 2f 2f 20 43 4f 4c 4f 52 4f 50        // COLOROP
60b0: 20 6f 6e 6c 79 0d 0a 0d 0a 20 20 20 20 2f 2f 20   only....    // 
60c0: 42 75 6d 70 20 6d 61 70 70 69 6e 67 0d 0a 20 20  Bump mapping..  
60d0: 20 20 44 33 44 54 4f 50 5f 42 55 4d 50 45 4e 56    D3DTOP_BUMPENV
60e0: 4d 41 50 20 20 20 20 20 20 20 20 20 20 20 3d 20  MAP           = 
60f0: 32 32 2c 20 2f 2f 20 70 65 72 20 70 69 78 65 6c  22, // per pixel
6100: 20 65 6e 76 20 6d 61 70 20 70 65 72 74 75 72 62   env map perturb
6110: 61 74 69 6f 6e 0d 0a 20 20 20 20 44 33 44 54 4f  ation..    D3DTO
6120: 50 5f 42 55 4d 50 45 4e 56 4d 41 50 4c 55 4d 49  P_BUMPENVMAPLUMI
6130: 4e 41 4e 43 45 20 20 3d 20 32 33 2c 20 2f 2f 20  NANCE  = 23, // 
6140: 77 69 74 68 20 6c 75 6d 69 6e 61 6e 63 65 20 63  with luminance c
6150: 68 61 6e 6e 65 6c 0d 0a 0d 0a 20 20 20 20 2f 2f  hannel....    //
6160: 20 54 68 69 73 20 63 61 6e 20 64 6f 20 65 69 74   This can do eit
6170: 68 65 72 20 64 69 66 66 75 73 65 20 6f 72 20 73  her diffuse or s
6180: 70 65 63 75 6c 61 72 20 62 75 6d 70 20 6d 61 70  pecular bump map
6190: 70 69 6e 67 20 77 69 74 68 20 63 6f 72 72 65 63  ping with correc
61a0: 74 20 69 6e 70 75 74 2e 0d 0a 20 20 20 20 2f 2f  t input...    //
61b0: 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 66 75   Performs the fu
61c0: 6e 63 74 69 6f 6e 20 28 41 72 67 31 2e 52 2a 41  nction (Arg1.R*A
61d0: 72 67 32 2e 52 20 2b 20 41 72 67 31 2e 47 2a 41  rg2.R + Arg1.G*A
61e0: 72 67 32 2e 47 20 2b 20 41 72 67 31 2e 42 2a 41  rg2.G + Arg1.B*A
61f0: 72 67 32 2e 42 29 0d 0a 20 20 20 20 2f 2f 20 77  rg2.B)..    // w
6200: 68 65 72 65 20 65 61 63 68 20 63 6f 6d 70 6f 6e  here each compon
6210: 65 6e 74 20 68 61 73 20 62 65 65 6e 20 73 63 61  ent has been sca
6220: 6c 65 64 20 61 6e 64 20 6f 66 66 73 65 74 20 74  led and offset t
6230: 6f 20 6d 61 6b 65 20 69 74 20 73 69 67 6e 65 64  o make it signed
6240: 2e 0d 0a 20 20 20 20 2f 2f 20 54 68 65 20 72 65  ...    // The re
6250: 73 75 6c 74 20 69 73 20 72 65 70 6c 69 63 61 74  sult is replicat
6260: 65 64 20 69 6e 74 6f 20 61 6c 6c 20 66 6f 75 72  ed into all four
6270: 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 6c 70 68   (including alph
6280: 61 29 20 63 68 61 6e 6e 65 6c 73 2e 0d 0a 20 20  a) channels...  
6290: 20 20 2f 2f 20 54 68 69 73 20 69 73 20 61 20 76    // This is a v
62a0: 61 6c 69 64 20 43 4f 4c 4f 52 4f 50 20 6f 6e 6c  alid COLOROP onl
62b0: 79 2e 0d 0a 20 20 20 20 44 33 44 54 4f 50 5f 44  y...    D3DTOP_D
62c0: 4f 54 50 52 4f 44 55 43 54 33 20 20 20 20 20 20  OTPRODUCT3      
62d0: 20 20 20 20 3d 20 32 34 2c 0d 0a 0d 0a 20 20 20      = 24,....   
62e0: 20 2f 2f 20 54 72 69 61 64 69 63 20 6f 70 73 0d   // Triadic ops.
62f0: 0a 20 20 20 20 44 33 44 54 4f 50 5f 4d 55 4c 54  .    D3DTOP_MULT
6300: 49 50 4c 59 41 44 44 20 20 20 20 20 20 20 20 20  IPLYADD         
6310: 20 3d 20 32 35 2c 20 2f 2f 20 41 72 67 30 20 2b   = 25, // Arg0 +
6320: 20 41 72 67 31 2a 41 72 67 32 0d 0a 20 20 20 20   Arg1*Arg2..    
6330: 44 33 44 54 4f 50 5f 4c 45 52 50 20 20 20 20 20  D3DTOP_LERP     
6340: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 36              = 26
6350: 20 20 2f 2f 20 28 41 72 67 30 29 2a 41 72 67 31    // (Arg0)*Arg1
6360: 20 2b 20 28 31 2d 41 72 67 30 29 2a 41 72 67 32   + (1-Arg0)*Arg2
6370: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
6380: 65 66 21 28 75 69 6e 74 29 20 44 33 44 54 45 58  ef!(uint) D3DTEX
6390: 54 55 52 45 4f 50 3b 0d 0a 0d 0a 2f 2a 0d 0a 20  TUREOP;..../*.. 
63a0: 2a 20 56 61 6c 75 65 73 20 66 6f 72 20 43 4f 4c  * Values for COL
63b0: 4f 52 41 52 47 30 2c 31 2c 32 2c 20 41 4c 50 48  ORARG0,1,2, ALPH
63c0: 41 41 52 47 30 2c 31 2c 32 2c 20 61 6e 64 20 52  AARG0,1,2, and R
63d0: 45 53 55 4c 54 41 52 47 20 74 65 78 74 75 72 65  ESULTARG texture
63e0: 20 62 6c 65 6e 64 69 6e 67 0d 0a 20 2a 20 6f 70   blending.. * op
63f0: 65 72 61 74 69 6f 6e 73 20 73 65 74 20 69 6e 20  erations set in 
6400: 74 65 78 74 75 72 65 20 70 72 6f 63 65 73 73 69  texture processi
6410: 6e 67 20 73 74 61 67 65 20 63 6f 6e 74 72 6f 6c  ng stage control
6420: 73 20 69 6e 20 44 33 44 52 45 4e 44 45 52 53 54  s in D3DRENDERST
6430: 41 54 45 2e 0d 0a 20 2a 2f 0d 0a 63 6f 6e 73 74  ATE... */..const
6440: 20 44 33 44 54 41 5f 53 45 4c 45 43 54 4d 41 53   D3DTA_SELECTMAS
6450: 4b 20 3d 20 30 78 30 30 30 30 30 30 30 66 3b 20  K = 0x0000000f; 
6460: 20 2f 2f 20 6d 61 73 6b 20 66 6f 72 20 61 72 67   // mask for arg
6470: 20 73 65 6c 65 63 74 6f 72 0d 0a 63 6f 6e 73 74   selector..const
6480: 20 44 33 44 54 41 5f 44 49 46 46 55 53 45 20 3d   D3DTA_DIFFUSE =
6490: 20 30 78 30 30 30 30 30 30 30 30 3b 20 20 2f 2f   0x00000000;  //
64a0: 20 73 65 6c 65 63 74 20 64 69 66 66 75 73 65 20   select diffuse 
64b0: 63 6f 6c 6f 72 20 28 72 65 61 64 20 6f 6e 6c 79  color (read only
64c0: 29 0d 0a 63 6f 6e 73 74 20 44 33 44 54 41 5f 43  )..const D3DTA_C
64d0: 55 52 52 45 4e 54 20 3d 20 30 78 30 30 30 30 30  URRENT = 0x00000
64e0: 30 30 31 3b 20 20 2f 2f 20 73 65 6c 65 63 74 20  001;  // select 
64f0: 73 74 61 67 65 20 64 65 73 74 69 6e 61 74 69 6f  stage destinatio
6500: 6e 20 72 65 67 69 73 74 65 72 20 28 72 65 61 64  n register (read
6510: 2f 77 72 69 74 65 29 0d 0a 63 6f 6e 73 74 20 44  /write)..const D
6520: 33 44 54 41 5f 54 45 58 54 55 52 45 20 3d 20 30  3DTA_TEXTURE = 0
6530: 78 30 30 30 30 30 30 30 32 3b 20 20 2f 2f 20 73  x00000002;  // s
6540: 65 6c 65 63 74 20 74 65 78 74 75 72 65 20 63 6f  elect texture co
6550: 6c 6f 72 20 28 72 65 61 64 20 6f 6e 6c 79 29 0d  lor (read only).
6560: 0a 63 6f 6e 73 74 20 44 33 44 54 41 5f 54 46 41  .const D3DTA_TFA
6570: 43 54 4f 52 20 3d 20 30 78 30 30 30 30 30 30 30  CTOR = 0x0000000
6580: 33 3b 20 20 2f 2f 20 73 65 6c 65 63 74 20 44 33  3;  // select D3
6590: 44 52 53 5f 54 45 58 54 55 52 45 46 41 43 54 4f  DRS_TEXTUREFACTO
65a0: 52 20 28 72 65 61 64 20 6f 6e 6c 79 29 0d 0a 63  R (read only)..c
65b0: 6f 6e 73 74 20 44 33 44 54 41 5f 53 50 45 43 55  onst D3DTA_SPECU
65c0: 4c 41 52 20 3d 20 30 78 30 30 30 30 30 30 30 34  LAR = 0x00000004
65d0: 3b 20 20 2f 2f 20 73 65 6c 65 63 74 20 73 70 65  ;  // select spe
65e0: 63 75 6c 61 72 20 63 6f 6c 6f 72 20 28 72 65 61  cular color (rea
65f0: 64 20 6f 6e 6c 79 29 0d 0a 63 6f 6e 73 74 20 44  d only)..const D
6600: 33 44 54 41 5f 54 45 4d 50 20 3d 20 30 78 30 30  3DTA_TEMP = 0x00
6610: 30 30 30 30 30 35 3b 20 20 2f 2f 20 73 65 6c 65  000005;  // sele
6620: 63 74 20 74 65 6d 70 6f 72 61 72 79 20 72 65 67  ct temporary reg
6630: 69 73 74 65 72 20 63 6f 6c 6f 72 20 28 72 65 61  ister color (rea
6640: 64 2f 77 72 69 74 65 29 0d 0a 63 6f 6e 73 74 20  d/write)..const 
6650: 44 33 44 54 41 5f 43 4f 4e 53 54 41 4e 54 20 3d  D3DTA_CONSTANT =
6660: 20 30 78 30 30 30 30 30 30 30 36 3b 20 20 2f 2f   0x00000006;  //
6670: 20 73 65 6c 65 63 74 20 74 65 78 74 75 72 65 20   select texture 
6680: 73 74 61 67 65 20 63 6f 6e 73 74 61 6e 74 0d 0a  stage constant..
6690: 63 6f 6e 73 74 20 44 33 44 54 41 5f 43 4f 4d 50  const D3DTA_COMP
66a0: 4c 45 4d 45 4e 54 20 3d 20 30 78 30 30 30 30 30  LEMENT = 0x00000
66b0: 30 31 30 3b 20 20 2f 2f 20 74 61 6b 65 20 31 2e  010;  // take 1.
66c0: 30 20 2d 20 78 20 28 72 65 61 64 20 6d 6f 64 69  0 - x (read modi
66d0: 66 69 65 72 29 0d 0a 63 6f 6e 73 74 20 44 33 44  fier)..const D3D
66e0: 54 41 5f 41 4c 50 48 41 52 45 50 4c 49 43 41 54  TA_ALPHAREPLICAT
66f0: 45 20 3d 20 30 78 30 30 30 30 30 30 32 30 3b 20  E = 0x00000020; 
6700: 20 2f 2f 20 72 65 70 6c 69 63 61 74 65 20 61 6c   // replicate al
6710: 70 68 61 20 74 6f 20 63 6f 6c 6f 72 20 63 6f 6d  pha to color com
6720: 70 6f 6e 65 6e 74 73 20 28 72 65 61 64 20 6d 6f  ponents (read mo
6730: 64 69 66 69 65 72 29 0d 0a 0d 0a 2f 2f 0d 0a 2f  difier)....//../
6740: 2f 20 56 61 6c 75 65 73 20 66 6f 72 20 44 33 44  / Values for D3D
6750: 53 41 4d 50 5f 2a 2a 2a 46 49 4c 54 45 52 20 74  SAMP_***FILTER t
6760: 65 78 74 75 72 65 20 73 74 61 67 65 20 73 74 61  exture stage sta
6770: 74 65 73 0d 0a 2f 2f 0d 0a 65 6e 75 6d 20 3a 20  tes..//..enum : 
6780: 44 33 44 54 45 58 54 55 52 45 46 49 4c 54 45 52  D3DTEXTUREFILTER
6790: 54 59 50 45 20 7b 0d 0a 20 20 20 20 44 33 44 54  TYPE {..    D3DT
67a0: 45 58 46 5f 4e 4f 4e 45 20 20 20 20 20 20 20 20  EXF_NONE        
67b0: 20 20 20 20 3d 20 30 2c 20 20 20 20 2f 2f 20 66      = 0,    // f
67c0: 69 6c 74 65 72 69 6e 67 20 64 69 73 61 62 6c 65  iltering disable
67d0: 64 20 28 76 61 6c 69 64 20 66 6f 72 20 6d 69 70  d (valid for mip
67e0: 20 66 69 6c 74 65 72 20 6f 6e 6c 79 29 0d 0a 20   filter only).. 
67f0: 20 20 20 44 33 44 54 45 58 46 5f 50 4f 49 4e 54     D3DTEXF_POINT
6800: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 2c 20             = 1, 
6810: 20 20 20 2f 2f 20 6e 65 61 72 65 73 74 0d 0a 20     // nearest.. 
6820: 20 20 20 44 33 44 54 45 58 46 5f 4c 49 4e 45 41     D3DTEXF_LINEA
6830: 52 20 20 20 20 20 20 20 20 20 20 3d 20 32 2c 20  R          = 2, 
6840: 20 20 20 2f 2f 20 6c 69 6e 65 61 72 20 69 6e 74     // linear int
6850: 65 72 70 6f 6c 61 74 69 6f 6e 0d 0a 20 20 20 20  erpolation..    
6860: 44 33 44 54 45 58 46 5f 41 4e 49 53 4f 54 52 4f  D3DTEXF_ANISOTRO
6870: 50 49 43 20 20 20 20 20 3d 20 33 2c 20 20 20 20  PIC     = 3,    
6880: 2f 2f 20 61 6e 69 73 6f 74 72 6f 70 69 63 0d 0a  // anisotropic..
6890: 20 20 20 20 44 33 44 54 45 58 46 5f 50 59 52 41      D3DTEXF_PYRA
68a0: 4d 49 44 41 4c 51 55 41 44 20 20 20 3d 20 36 2c  MIDALQUAD   = 6,
68b0: 20 20 20 20 2f 2f 20 34 2d 73 61 6d 70 6c 65 20      // 4-sample 
68c0: 74 65 6e 74 0d 0a 20 20 20 20 44 33 44 54 45 58  tent..    D3DTEX
68d0: 46 5f 47 41 55 53 53 49 41 4e 51 55 41 44 20 20  F_GAUSSIANQUAD  
68e0: 20 20 3d 20 37 2c 20 20 20 20 2f 2f 20 34 2d 73    = 7,    // 4-s
68f0: 61 6d 70 6c 65 20 67 61 75 73 73 69 61 6e 0d 0a  ample gaussian..
6900: 20 20 20 20 44 33 44 54 45 58 46 5f 43 4f 4e 56      D3DTEXF_CONV
6910: 4f 4c 55 54 49 4f 4e 4d 4f 4e 4f 20 3d 20 38 20  OLUTIONMONO = 8 
6920: 20 20 20 2f 2f 20 43 6f 6e 76 6f 6c 75 74 69 6f     // Convolutio
6930: 6e 20 66 69 6c 74 65 72 20 66 6f 72 20 6d 6f 6e  n filter for mon
6940: 6f 63 68 72 6f 6d 65 20 74 65 78 74 75 72 65 73  ochrome textures
6950: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
6960: 65 66 21 28 75 69 6e 74 29 20 44 33 44 54 45 58  ef!(uint) D3DTEX
6970: 54 55 52 45 46 49 4c 54 45 52 54 59 50 45 3b 0d  TUREFILTERTYPE;.
6980: 0a 0d 0a 2f 2a 20 42 69 74 73 20 66 6f 72 20 46  .../* Bits for F
6990: 6c 61 67 73 20 69 6e 20 50 72 6f 63 65 73 73 56  lags in ProcessV
69a0: 65 72 74 69 63 65 73 20 63 61 6c 6c 20 2a 2f 0d  ertices call */.
69b0: 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 50 56 5f 44  ...const D3DPV_D
69c0: 4f 4e 4f 54 43 4f 50 59 44 41 54 41 20 3d 20 28  ONOTCOPYDATA = (
69d0: 31 20 3c 3c 20 30 29 3b 0d 0a 0d 0a 2f 2f 2d 2d  1 << 0);....//--
69e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
69f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6a00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6a10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6a20: 2d 0d 0a 0d 0a 2f 2f 20 46 6c 65 78 69 62 6c 65  -....// Flexible
6a30: 20 76 65 72 74 65 78 20 66 6f 72 6d 61 74 20 62   vertex format b
6a40: 69 74 73 0d 0a 2f 2f 0d 0a 63 6f 6e 73 74 20 44  its..//..const D
6a50: 33 44 46 56 46 5f 52 45 53 45 52 56 45 44 30 20  3DFVF_RESERVED0 
6a60: 3d 20 30 78 30 30 31 3b 0d 0a 63 6f 6e 73 74 20  = 0x001;..const 
6a70: 44 33 44 46 56 46 5f 50 4f 53 49 54 49 4f 4e 5f  D3DFVF_POSITION_
6a80: 4d 41 53 4b 20 3d 20 30 78 34 30 30 45 3b 0d 0a  MASK = 0x400E;..
6a90: 63 6f 6e 73 74 20 44 33 44 46 56 46 5f 58 59 5a  const D3DFVF_XYZ
6aa0: 20 3d 20 30 78 30 30 32 3b 0d 0a 63 6f 6e 73 74   = 0x002;..const
6ab0: 20 44 33 44 46 56 46 5f 58 59 5a 52 48 57 20 3d   D3DFVF_XYZRHW =
6ac0: 20 30 78 30 30 34 3b 0d 0a 63 6f 6e 73 74 20 44   0x004;..const D
6ad0: 33 44 46 56 46 5f 58 59 5a 42 31 20 3d 20 30 78  3DFVF_XYZB1 = 0x
6ae0: 30 30 36 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 46  006;..const D3DF
6af0: 56 46 5f 58 59 5a 42 32 20 3d 20 30 78 30 30 38  VF_XYZB2 = 0x008
6b00: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46 5f  ;..const D3DFVF_
6b10: 58 59 5a 42 33 20 3d 20 30 78 30 30 61 3b 0d 0a  XYZB3 = 0x00a;..
6b20: 63 6f 6e 73 74 20 44 33 44 46 56 46 5f 58 59 5a  const D3DFVF_XYZ
6b30: 42 34 20 3d 20 30 78 30 30 63 3b 0d 0a 63 6f 6e  B4 = 0x00c;..con
6b40: 73 74 20 44 33 44 46 56 46 5f 58 59 5a 42 35 20  st D3DFVF_XYZB5 
6b50: 3d 20 30 78 30 30 65 3b 0d 0a 63 6f 6e 73 74 20  = 0x00e;..const 
6b60: 44 33 44 46 56 46 5f 58 59 5a 57 20 3d 20 30 78  D3DFVF_XYZW = 0x
6b70: 34 30 30 32 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 44  4002;....const D
6b80: 33 44 46 56 46 5f 4e 4f 52 4d 41 4c 20 3d 20 30  3DFVF_NORMAL = 0
6b90: 78 30 31 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  x010;..const D3D
6ba0: 46 56 46 5f 50 53 49 5a 45 20 3d 20 30 78 30 32  FVF_PSIZE = 0x02
6bb0: 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46  0;..const D3DFVF
6bc0: 5f 44 49 46 46 55 53 45 20 3d 20 30 78 30 34 30  _DIFFUSE = 0x040
6bd0: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46 5f  ;..const D3DFVF_
6be0: 53 50 45 43 55 4c 41 52 20 3d 20 30 78 30 38 30  SPECULAR = 0x080
6bf0: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56  ;....const D3DFV
6c00: 46 5f 54 45 58 43 4f 55 4e 54 5f 4d 41 53 4b 20  F_TEXCOUNT_MASK 
6c10: 3d 20 30 78 66 30 30 3b 0d 0a 63 6f 6e 73 74 20  = 0xf00;..const 
6c20: 44 33 44 46 56 46 5f 54 45 58 43 4f 55 4e 54 5f  D3DFVF_TEXCOUNT_
6c30: 53 48 49 46 54 20 3d 20 38 3b 0d 0a 63 6f 6e 73  SHIFT = 8;..cons
6c40: 74 20 44 33 44 46 56 46 5f 54 45 58 30 20 3d 20  t D3DFVF_TEX0 = 
6c50: 30 78 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 44 33  0x000;..const D3
6c60: 44 46 56 46 5f 54 45 58 31 20 3d 20 30 78 31 30  DFVF_TEX1 = 0x10
6c70: 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46  0;..const D3DFVF
6c80: 5f 54 45 58 32 20 3d 20 30 78 32 30 30 3b 0d 0a  _TEX2 = 0x200;..
6c90: 63 6f 6e 73 74 20 44 33 44 46 56 46 5f 54 45 58  const D3DFVF_TEX
6ca0: 33 20 3d 20 30 78 33 30 30 3b 0d 0a 63 6f 6e 73  3 = 0x300;..cons
6cb0: 74 20 44 33 44 46 56 46 5f 54 45 58 34 20 3d 20  t D3DFVF_TEX4 = 
6cc0: 30 78 34 30 30 3b 0d 0a 63 6f 6e 73 74 20 44 33  0x400;..const D3
6cd0: 44 46 56 46 5f 54 45 58 35 20 3d 20 30 78 35 30  DFVF_TEX5 = 0x50
6ce0: 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46  0;..const D3DFVF
6cf0: 5f 54 45 58 36 20 3d 20 30 78 36 30 30 3b 0d 0a  _TEX6 = 0x600;..
6d00: 63 6f 6e 73 74 20 44 33 44 46 56 46 5f 54 45 58  const D3DFVF_TEX
6d10: 37 20 3d 20 30 78 37 30 30 3b 0d 0a 63 6f 6e 73  7 = 0x700;..cons
6d20: 74 20 44 33 44 46 56 46 5f 54 45 58 38 20 3d 20  t D3DFVF_TEX8 = 
6d30: 30 78 38 30 30 3b 0d 0a 0d 0a 63 6f 6e 73 74 20  0x800;....const 
6d40: 44 33 44 46 56 46 5f 4c 41 53 54 42 45 54 41 5f  D3DFVF_LASTBETA_
6d50: 55 42 59 54 45 34 20 3d 20 30 78 31 30 30 30 3b  UBYTE4 = 0x1000;
6d60: 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46 5f 4c  ..const D3DFVF_L
6d70: 41 53 54 42 45 54 41 5f 44 33 44 43 4f 4c 4f 52  ASTBETA_D3DCOLOR
6d80: 20 3d 20 30 78 38 30 30 30 3b 0d 0a 0d 0a 63 6f   = 0x8000;....co
6d90: 6e 73 74 20 44 33 44 46 56 46 5f 52 45 53 45 52  nst D3DFVF_RESER
6da0: 56 45 44 32 20 3d 20 30 78 36 30 30 30 3b 20 20  VED2 = 0x6000;  
6db0: 2f 2f 20 32 20 72 65 73 65 72 76 65 64 20 62 69  // 2 reserved bi
6dc0: 74 73 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  ts....//--------
6dd0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6de0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6df0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
6e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f  -------------../
6e10: 2f 20 56 65 72 74 65 78 20 53 68 61 64 65 72 73  / Vertex Shaders
6e20: 0d 0a 2f 2f 0d 0a 0d 0a 2f 2f 20 56 65 72 74 65  ..//....// Verte
6e30: 78 20 73 68 61 64 65 72 20 64 65 63 6c 61 72 61  x shader declara
6e40: 74 69 6f 6e 0d 0a 0d 0a 2f 2f 20 56 65 72 74 65  tion....// Verte
6e50: 78 20 65 6c 65 6d 65 6e 74 20 73 65 6d 61 6e 74  x element semant
6e60: 69 63 73 0d 0a 2f 2f 0d 0a 65 6e 75 6d 20 3a 20  ics..//..enum : 
6e70: 44 33 44 44 45 43 4c 55 53 41 47 45 20 7b 0d 0a  D3DDECLUSAGE {..
6e80: 20 20 20 20 44 33 44 44 45 43 4c 55 53 41 47 45      D3DDECLUSAGE
6e90: 5f 50 4f 53 49 54 49 4f 4e 20 3d 20 30 2c 0d 0a  _POSITION = 0,..
6ea0: 20 20 20 20 44 33 44 44 45 43 4c 55 53 41 47 45      D3DDECLUSAGE
6eb0: 5f 42 4c 45 4e 44 57 45 49 47 48 54 2c 20 20 20  _BLENDWEIGHT,   
6ec0: 2f 2f 20 31 0d 0a 20 20 20 20 44 33 44 44 45 43  // 1..    D3DDEC
6ed0: 4c 55 53 41 47 45 5f 42 4c 45 4e 44 49 4e 44 49  LUSAGE_BLENDINDI
6ee0: 43 45 53 2c 20 20 2f 2f 20 32 0d 0a 20 20 20 20  CES,  // 2..    
6ef0: 44 33 44 44 45 43 4c 55 53 41 47 45 5f 4e 4f 52  D3DDECLUSAGE_NOR
6f00: 4d 41 4c 2c 20 20 20 20 20 20 20 20 2f 2f 20 33  MAL,        // 3
6f10: 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 55 53 41  ..    D3DDECLUSA
6f20: 47 45 5f 50 53 49 5a 45 2c 20 20 20 20 20 20 20  GE_PSIZE,       
6f30: 20 20 2f 2f 20 34 0d 0a 20 20 20 20 44 33 44 44    // 4..    D3DD
6f40: 45 43 4c 55 53 41 47 45 5f 54 45 58 43 4f 4f 52  ECLUSAGE_TEXCOOR
6f50: 44 2c 20 20 20 20 20 20 2f 2f 20 35 0d 0a 20 20  D,      // 5..  
6f60: 20 20 44 33 44 44 45 43 4c 55 53 41 47 45 5f 54    D3DDECLUSAGE_T
6f70: 41 4e 47 45 4e 54 2c 20 20 20 20 20 20 20 2f 2f  ANGENT,       //
6f80: 20 36 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 55   6..    D3DDECLU
6f90: 53 41 47 45 5f 42 49 4e 4f 52 4d 41 4c 2c 20 20  SAGE_BINORMAL,  
6fa0: 20 20 20 20 2f 2f 20 37 0d 0a 20 20 20 20 44 33      // 7..    D3
6fb0: 44 44 45 43 4c 55 53 41 47 45 5f 54 45 53 53 46  DDECLUSAGE_TESSF
6fc0: 41 43 54 4f 52 2c 20 20 20 20 2f 2f 20 38 0d 0a  ACTOR,    // 8..
6fd0: 20 20 20 20 44 33 44 44 45 43 4c 55 53 41 47 45      D3DDECLUSAGE
6fe0: 5f 50 4f 53 49 54 49 4f 4e 54 2c 20 20 20 20 20  _POSITIONT,     
6ff0: 2f 2f 20 39 0d 0a 20 20 20 20 44 33 44 44 45 43  // 9..    D3DDEC
7000: 4c 55 53 41 47 45 5f 43 4f 4c 4f 52 2c 20 20 20  LUSAGE_COLOR,   
7010: 20 20 20 20 20 20 2f 2f 20 31 30 0d 0a 20 20 20        // 10..   
7020: 20 44 33 44 44 45 43 4c 55 53 41 47 45 5f 46 4f   D3DDECLUSAGE_FO
7030: 47 2c 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20  G,           // 
7040: 31 31 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 55  11..    D3DDECLU
7050: 53 41 47 45 5f 44 45 50 54 48 2c 20 20 20 20 20  SAGE_DEPTH,     
7060: 20 20 20 20 2f 2f 20 31 32 0d 0a 20 20 20 20 44      // 12..    D
7070: 33 44 44 45 43 4c 55 53 41 47 45 5f 53 41 4d 50  3DDECLUSAGE_SAMP
7080: 4c 45 20 20 20 20 20 20 20 20 20 2f 2f 20 31 33  LE         // 13
7090: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
70a0: 65 66 21 28 75 69 6e 74 29 20 44 33 44 44 45 43  ef!(uint) D3DDEC
70b0: 4c 55 53 41 47 45 3b 0d 0a 0d 0a 63 6f 6e 73 74  LUSAGE;....const
70c0: 20 4d 41 58 44 33 44 44 45 43 4c 55 53 41 47 45   MAXD3DDECLUSAGE
70d0: 20 3d 20 44 33 44 44 45 43 4c 55 53 41 47 45 5f   = D3DDECLUSAGE_
70e0: 53 41 4d 50 4c 45 3b 0d 0a 63 6f 6e 73 74 20 4d  SAMPLE;..const M
70f0: 41 58 44 33 44 44 45 43 4c 55 53 41 47 45 49 4e  AXD3DDECLUSAGEIN
7100: 44 45 58 20 3d 20 31 35 3b 0d 0a 63 6f 6e 73 74  DEX = 15;..const
7110: 20 4d 41 58 44 33 44 44 45 43 4c 4c 45 4e 47 54   MAXD3DDECLLENGT
7120: 48 20 3d 20 36 34 3b 20 2f 2f 20 64 6f 65 73 20  H = 64; // does 
7130: 6e 6f 74 20 69 6e 63 6c 75 64 65 20 22 65 6e 64  not include "end
7140: 22 20 6d 61 72 6b 65 72 20 76 65 72 74 65 78 20  " marker vertex 
7150: 65 6c 65 6d 65 6e 74 0d 0a 0d 0a 65 6e 75 6d 20  element....enum 
7160: 3a 20 44 33 44 44 45 43 4c 4d 45 54 48 4f 44 20  : D3DDECLMETHOD 
7170: 7b 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 4d 45  {..    D3DDECLME
7180: 54 48 4f 44 5f 44 45 46 41 55 4c 54 20 3d 20 30  THOD_DEFAULT = 0
7190: 2c 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 4d 45  ,..    D3DDECLME
71a0: 54 48 4f 44 5f 50 41 52 54 49 41 4c 55 2c 0d 0a  THOD_PARTIALU,..
71b0: 20 20 20 20 44 33 44 44 45 43 4c 4d 45 54 48 4f      D3DDECLMETHO
71c0: 44 5f 50 41 52 54 49 41 4c 56 2c 0d 0a 20 20 20  D_PARTIALV,..   
71d0: 20 44 33 44 44 45 43 4c 4d 45 54 48 4f 44 5f 43   D3DDECLMETHOD_C
71e0: 52 4f 53 53 55 56 2c 20 20 20 20 2f 2f 20 4e 6f  ROSSUV,    // No
71f0: 72 6d 61 6c 0d 0a 20 20 20 20 44 33 44 44 45 43  rmal..    D3DDEC
7200: 4c 4d 45 54 48 4f 44 5f 55 56 2c 0d 0a 20 20 20  LMETHOD_UV,..   
7210: 20 44 33 44 44 45 43 4c 4d 45 54 48 4f 44 5f 4c   D3DDECLMETHOD_L
7220: 4f 4f 4b 55 50 2c 20 20 20 20 20 20 20 20 20 20  OOKUP,          
7230: 20 20 20 20 20 2f 2f 20 4c 6f 6f 6b 75 70 20 61       // Lookup a
7240: 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20 6d 61   displacement ma
7250: 70 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 4d 45  p..    D3DDECLME
7260: 54 48 4f 44 5f 4c 4f 4f 4b 55 50 50 52 45 53 41  THOD_LOOKUPPRESA
7270: 4d 50 4c 45 44 20 20 20 20 20 20 2f 2f 20 4c 6f  MPLED      // Lo
7280: 6f 6b 75 70 20 61 20 70 72 65 2d 73 61 6d 70 6c  okup a pre-sampl
7290: 65 64 20 64 69 73 70 6c 61 63 65 6d 65 6e 74 20  ed displacement 
72a0: 6d 61 70 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79  map..}..alias Ty
72b0: 70 65 44 65 66 21 28 75 69 6e 74 29 20 44 33 44  peDef!(uint) D3D
72c0: 44 45 43 4c 4d 45 54 48 4f 44 3b 0d 0a 0d 0a 63  DECLMETHOD;....c
72d0: 6f 6e 73 74 20 4d 41 58 44 33 44 44 45 43 4c 4d  onst MAXD3DDECLM
72e0: 45 54 48 4f 44 20 3d 20 44 33 44 44 45 43 4c 4d  ETHOD = D3DDECLM
72f0: 45 54 48 4f 44 5f 4c 4f 4f 4b 55 50 50 52 45 53  ETHOD_LOOKUPPRES
7300: 41 4d 50 4c 45 44 3b 0d 0a 0d 0a 2f 2f 20 44 65  AMPLED;....// De
7310: 63 6c 61 72 61 74 69 6f 6e 73 20 66 6f 72 20 5f  clarations for _
7320: 54 79 70 65 20 66 69 65 6c 64 73 0d 0a 2f 2f 0d  Type fields..//.
7330: 0a 65 6e 75 6d 20 3a 20 44 33 44 44 45 43 4c 54  .enum : D3DDECLT
7340: 59 50 45 20 7b 0d 0a 20 20 20 20 44 33 44 44 45  YPE {..    D3DDE
7350: 43 4c 54 59 50 45 5f 46 4c 4f 41 54 31 20 20 20  CLTYPE_FLOAT1   
7360: 20 3d 20 20 30 2c 20 20 2f 2f 20 31 44 20 66 6c   =  0,  // 1D fl
7370: 6f 61 74 20 65 78 70 61 6e 64 65 64 20 74 6f 20  oat expanded to 
7380: 28 76 61 6c 75 65 2c 20 30 2e 2c 20 30 2e 2c 20  (value, 0., 0., 
7390: 31 2e 29 0d 0a 20 20 20 20 44 33 44 44 45 43 4c  1.)..    D3DDECL
73a0: 54 59 50 45 5f 46 4c 4f 41 54 32 20 20 20 20 3d  TYPE_FLOAT2    =
73b0: 20 20 31 2c 20 20 2f 2f 20 32 44 20 66 6c 6f 61    1,  // 2D floa
73c0: 74 20 65 78 70 61 6e 64 65 64 20 74 6f 20 28 76  t expanded to (v
73d0: 61 6c 75 65 2c 20 76 61 6c 75 65 2c 20 30 2e 2c  alue, value, 0.,
73e0: 20 31 2e 29 0d 0a 20 20 20 20 44 33 44 44 45 43   1.)..    D3DDEC
73f0: 4c 54 59 50 45 5f 46 4c 4f 41 54 33 20 20 20 20  LTYPE_FLOAT3    
7400: 3d 20 20 32 2c 20 20 2f 2f 20 33 44 20 66 6c 6f  =  2,  // 3D flo
7410: 61 74 20 65 78 70 61 6e 64 65 64 20 74 6f 20 28  at expanded to (
7420: 76 61 6c 75 65 2c 20 76 61 6c 75 65 2c 20 76 61  value, value, va
7430: 6c 75 65 2c 20 31 2e 29 0d 0a 20 20 20 20 44 33  lue, 1.)..    D3
7440: 44 44 45 43 4c 54 59 50 45 5f 46 4c 4f 41 54 34  DDECLTYPE_FLOAT4
7450: 20 20 20 20 3d 20 20 33 2c 20 20 2f 2f 20 34 44      =  3,  // 4D
7460: 20 66 6c 6f 61 74 0d 0a 20 20 20 20 44 33 44 44   float..    D3DD
7470: 45 43 4c 54 59 50 45 5f 44 33 44 43 4f 4c 4f 52  ECLTYPE_D3DCOLOR
7480: 20 20 3d 20 20 34 2c 20 20 2f 2f 20 34 44 20 70    =  4,  // 4D p
7490: 61 63 6b 65 64 20 75 6e 73 69 67 6e 65 64 20 62  acked unsigned b
74a0: 79 74 65 73 20 6d 61 70 70 65 64 20 74 6f 20 30  ytes mapped to 0
74b0: 2e 20 74 6f 20 31 2e 20 72 61 6e 67 65 0d 0a 20  . to 1. range.. 
74c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
74d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
74e0: 2f 2f 20 49 6e 70 75 74 20 69 73 20 69 6e 20 44  // Input is in D
74f0: 33 44 43 4f 4c 4f 52 20 66 6f 72 6d 61 74 20 28  3DCOLOR format (
7500: 41 52 47 42 29 20 65 78 70 61 6e 64 65 64 20 74  ARGB) expanded t
7510: 6f 20 28 52 2c 20 47 2c 20 42 2c 20 41 29 0d 0a  o (R, G, B, A)..
7520: 20 20 20 20 44 33 44 44 45 43 4c 54 59 50 45 5f      D3DDECLTYPE_
7530: 55 42 59 54 45 34 20 20 20 20 3d 20 20 35 2c 20  UBYTE4    =  5, 
7540: 20 2f 2f 20 34 44 20 75 6e 73 69 67 6e 65 64 20   // 4D unsigned 
7550: 62 79 74 65 0d 0a 20 20 20 20 44 33 44 44 45 43  byte..    D3DDEC
7560: 4c 54 59 50 45 5f 53 48 4f 52 54 32 20 20 20 20  LTYPE_SHORT2    
7570: 3d 20 20 36 2c 20 20 2f 2f 20 32 44 20 73 69 67  =  6,  // 2D sig
7580: 6e 65 64 20 73 68 6f 72 74 20 65 78 70 61 6e 64  ned short expand
7590: 65 64 20 74 6f 20 28 76 61 6c 75 65 2c 20 76 61  ed to (value, va
75a0: 6c 75 65 2c 20 30 2e 2c 20 31 2e 29 0d 0a 20 20  lue, 0., 1.)..  
75b0: 20 20 44 33 44 44 45 43 4c 54 59 50 45 5f 53 48    D3DDECLTYPE_SH
75c0: 4f 52 54 34 20 20 20 20 3d 20 20 37 2c 20 20 2f  ORT4    =  7,  /
75d0: 2f 20 34 44 20 73 69 67 6e 65 64 20 73 68 6f 72  / 4D signed shor
75e0: 74 0d 0a 0d 0a 2f 2f 20 54 68 65 20 66 6f 6c 6c  t....// The foll
75f0: 6f 77 69 6e 67 20 74 79 70 65 73 20 61 72 65 20  owing types are 
7600: 76 61 6c 69 64 20 6f 6e 6c 79 20 77 69 74 68 20  valid only with 
7610: 76 65 72 74 65 78 20 73 68 61 64 65 72 73 20 3e  vertex shaders >
7620: 3d 20 32 2e 30 0d 0a 0d 0a 0d 0a 20 20 20 20 44  = 2.0......    D
7630: 33 44 44 45 43 4c 54 59 50 45 5f 55 42 59 54 45  3DDECLTYPE_UBYTE
7640: 34 4e 20 20 20 3d 20 20 38 2c 20 20 2f 2f 20 45  4N   =  8,  // E
7650: 61 63 68 20 6f 66 20 34 20 62 79 74 65 73 20 69  ach of 4 bytes i
7660: 73 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 62 79 20  s normalized by 
7670: 64 69 76 69 64 69 6e 67 20 74 6f 20 32 35 35 2e  dividing to 255.
7680: 30 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 54 59  0..    D3DDECLTY
7690: 50 45 5f 53 48 4f 52 54 32 4e 20 20 20 3d 20 20  PE_SHORT2N   =  
76a0: 39 2c 20 20 2f 2f 20 32 44 20 73 69 67 6e 65 64  9,  // 2D signed
76b0: 20 73 68 6f 72 74 20 6e 6f 72 6d 61 6c 69 7a 65   short normalize
76c0: 64 20 28 76 5b 30 5d 2f 33 32 37 36 37 2e 30 2c  d (v[0]/32767.0,
76d0: 76 5b 31 5d 2f 33 32 37 36 37 2e 30 2c 30 2c 31  v[1]/32767.0,0,1
76e0: 29 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 54 59  )..    D3DDECLTY
76f0: 50 45 5f 53 48 4f 52 54 34 4e 20 20 20 3d 20 31  PE_SHORT4N   = 1
7700: 30 2c 20 20 2f 2f 20 34 44 20 73 69 67 6e 65 64  0,  // 4D signed
7710: 20 73 68 6f 72 74 20 6e 6f 72 6d 61 6c 69 7a 65   short normalize
7720: 64 20 28 76 5b 30 5d 2f 33 32 37 36 37 2e 30 2c  d (v[0]/32767.0,
7730: 76 5b 31 5d 2f 33 32 37 36 37 2e 30 2c 76 5b 32  v[1]/32767.0,v[2
7740: 5d 2f 33 32 37 36 37 2e 30 2c 76 5b 33 5d 2f 33  ]/32767.0,v[3]/3
7750: 32 37 36 37 2e 30 29 0d 0a 20 20 20 20 44 33 44  2767.0)..    D3D
7760: 44 45 43 4c 54 59 50 45 5f 55 53 48 4f 52 54 32  DECLTYPE_USHORT2
7770: 4e 20 20 3d 20 31 31 2c 20 20 2f 2f 20 32 44 20  N  = 11,  // 2D 
7780: 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74 20 6e  unsigned short n
7790: 6f 72 6d 61 6c 69 7a 65 64 20 28 76 5b 30 5d 2f  ormalized (v[0]/
77a0: 36 35 35 33 35 2e 30 2c 76 5b 31 5d 2f 36 35 35  65535.0,v[1]/655
77b0: 33 35 2e 30 2c 30 2c 31 29 0d 0a 20 20 20 20 44  35.0,0,1)..    D
77c0: 33 44 44 45 43 4c 54 59 50 45 5f 55 53 48 4f 52  3DDECLTYPE_USHOR
77d0: 54 34 4e 20 20 3d 20 31 32 2c 20 20 2f 2f 20 34  T4N  = 12,  // 4
77e0: 44 20 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74  D unsigned short
77f0: 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 28 76 5b 30   normalized (v[0
7800: 5d 2f 36 35 35 33 35 2e 30 2c 76 5b 31 5d 2f 36  ]/65535.0,v[1]/6
7810: 35 35 33 35 2e 30 2c 76 5b 32 5d 2f 36 35 35 33  5535.0,v[2]/6553
7820: 35 2e 30 2c 76 5b 33 5d 2f 36 35 35 33 35 2e 30  5.0,v[3]/65535.0
7830: 29 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 54 59  )..    D3DDECLTY
7840: 50 45 5f 55 44 45 43 33 20 20 20 20 20 3d 20 31  PE_UDEC3     = 1
7850: 33 2c 20 20 2f 2f 20 33 44 20 75 6e 73 69 67 6e  3,  // 3D unsign
7860: 65 64 20 31 30 20 31 30 20 31 30 20 66 6f 72 6d  ed 10 10 10 form
7870: 61 74 20 65 78 70 61 6e 64 65 64 20 74 6f 20 28  at expanded to (
7880: 76 61 6c 75 65 2c 20 76 61 6c 75 65 2c 20 76 61  value, value, va
7890: 6c 75 65 2c 20 31 29 0d 0a 20 20 20 20 44 33 44  lue, 1)..    D3D
78a0: 44 45 43 4c 54 59 50 45 5f 44 45 43 33 4e 20 20  DECLTYPE_DEC3N  
78b0: 20 20 20 3d 20 31 34 2c 20 20 2f 2f 20 33 44 20     = 14,  // 3D 
78c0: 73 69 67 6e 65 64 20 31 30 20 31 30 20 31 30 20  signed 10 10 10 
78d0: 66 6f 72 6d 61 74 20 6e 6f 72 6d 61 6c 69 7a 65  format normalize
78e0: 64 20 61 6e 64 20 65 78 70 61 6e 64 65 64 20 74  d and expanded t
78f0: 6f 20 28 76 5b 30 5d 2f 35 31 31 2e 30 2c 20 76  o (v[0]/511.0, v
7900: 5b 31 5d 2f 35 31 31 2e 30 2c 20 76 5b 32 5d 2f  [1]/511.0, v[2]/
7910: 35 31 31 2e 30 2c 20 31 29 0d 0a 20 20 20 20 44  511.0, 1)..    D
7920: 33 44 44 45 43 4c 54 59 50 45 5f 46 4c 4f 41 54  3DDECLTYPE_FLOAT
7930: 31 36 5f 32 20 3d 20 31 35 2c 20 20 2f 2f 20 54  16_2 = 15,  // T
7940: 77 6f 20 31 36 2d 62 69 74 20 66 6c 6f 61 74 69  wo 16-bit floati
7950: 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75 65 73 2c  ng point values,
7960: 20 65 78 70 61 6e 64 65 64 20 74 6f 20 28 76 61   expanded to (va
7970: 6c 75 65 2c 20 76 61 6c 75 65 2c 20 30 2c 20 31  lue, value, 0, 1
7980: 29 0d 0a 20 20 20 20 44 33 44 44 45 43 4c 54 59  )..    D3DDECLTY
7990: 50 45 5f 46 4c 4f 41 54 31 36 5f 34 20 3d 20 31  PE_FLOAT16_4 = 1
79a0: 36 2c 20 20 2f 2f 20 46 6f 75 72 20 31 36 2d 62  6,  // Four 16-b
79b0: 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  it floating poin
79c0: 74 20 76 61 6c 75 65 73 0d 0a 20 20 20 20 44 33  t values..    D3
79d0: 44 44 45 43 4c 54 59 50 45 5f 55 4e 55 53 45 44  DDECLTYPE_UNUSED
79e0: 20 20 20 20 3d 20 31 37 20 20 20 2f 2f 20 57 68      = 17   // Wh
79f0: 65 6e 20 74 68 65 20 74 79 70 65 20 66 69 65 6c  en the type fiel
7a00: 64 20 69 6e 20 61 20 64 65 63 6c 20 69 73 20 75  d in a decl is u
7a10: 6e 75 73 65 64 2e 0d 0a 7d 0d 0a 61 6c 69 61 73  nused...}..alias
7a20: 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20   TypeDef!(uint) 
7a30: 44 33 44 44 45 43 4c 54 59 50 45 3b 0d 0a 0d 0a  D3DDECLTYPE;....
7a40: 63 6f 6e 73 74 20 4d 41 58 44 33 44 44 45 43 4c  const MAXD3DDECL
7a50: 54 59 50 45 20 3d 20 44 33 44 44 45 43 4c 54 59  TYPE = D3DDECLTY
7a60: 50 45 5f 55 4e 55 53 45 44 3b 0d 0a 0d 0a 73 74  PE_UNUSED;....st
7a70: 72 75 63 74 20 44 33 44 56 45 52 54 45 58 45 4c  ruct D3DVERTEXEL
7a80: 45 4d 45 4e 54 39 0d 0a 7b 0d 0a 20 20 20 20 75  EMENT9..{..    u
7a90: 73 68 6f 72 74 20 20 20 20 53 74 72 65 61 6d 3b  short    Stream;
7aa0: 20 20 20 20 20 2f 2f 20 53 74 72 65 61 6d 20 69       // Stream i
7ab0: 6e 64 65 78 0d 0a 20 20 20 20 75 73 68 6f 72 74  ndex..    ushort
7ac0: 20 20 20 20 4f 66 66 73 65 74 3b 20 20 20 20 20      Offset;     
7ad0: 2f 2f 20 4f 66 66 73 65 74 20 69 6e 20 74 68 65  // Offset in the
7ae0: 20 73 74 72 65 61 6d 20 69 6e 20 62 79 74 65 73   stream in bytes
7af0: 0d 0a 20 20 20 20 75 62 79 74 65 20 20 20 20 54  ..    ubyte    T
7b00: 79 70 65 3b 20 20 20 20 20 20 20 2f 2f 20 44 61  ype;       // Da
7b10: 74 61 20 74 79 70 65 0d 0a 20 20 20 20 75 62 79  ta type..    uby
7b20: 74 65 20 20 20 20 4d 65 74 68 6f 64 3b 20 20 20  te    Method;   
7b30: 20 20 2f 2f 20 50 72 6f 63 65 73 73 69 6e 67 20    // Processing 
7b40: 6d 65 74 68 6f 64 0d 0a 20 20 20 20 75 62 79 74  method..    ubyt
7b50: 65 20 20 20 20 55 73 61 67 65 3b 20 20 20 20 20  e    Usage;     
7b60: 20 2f 2f 20 53 65 6d 61 6e 74 69 63 73 0d 0a 20   // Semantics.. 
7b70: 20 20 20 75 62 79 74 65 20 20 20 20 55 73 61 67     ubyte    Usag
7b80: 65 49 6e 64 65 78 3b 20 2f 2f 20 53 65 6d 61 6e  eIndex; // Seman
7b90: 74 69 63 20 69 6e 64 65 78 0d 0a 7d 0d 0a 61 6c  tic index..}..al
7ba0: 69 61 73 20 44 33 44 56 45 52 54 45 58 45 4c 45  ias D3DVERTEXELE
7bb0: 4d 45 4e 54 39 20 2a 4c 50 44 33 44 56 45 52 54  MENT9 *LPD3DVERT
7bc0: 45 58 45 4c 45 4d 45 4e 54 39 3b 0d 0a 0d 0a 2f  EXELEMENT9;..../
7bd0: 2f 20 54 68 69 73 20 69 73 20 75 73 65 64 20 74  / This is used t
7be0: 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65  o initialize the
7bf0: 20 6c 61 73 74 20 76 65 72 74 65 78 20 65 6c 65   last vertex ele
7c00: 6d 65 6e 74 20 69 6e 20 61 20 76 65 72 74 65 78  ment in a vertex
7c10: 20 64 65 63 6c 61 72 61 74 69 6f 6e 0d 0a 2f 2f   declaration..//
7c20: 20 61 72 72 61 79 0d 0a 2f 2f 0d 0a 74 65 6d 70   array..//..temp
7c30: 6c 61 74 65 20 44 33 44 44 45 43 4c 5f 45 4e 44  late D3DDECL_END
7c40: 28 29 20 7b 0d 0a 20 20 20 20 73 74 61 74 69 63  () {..    static
7c50: 20 63 6f 6e 73 74 20 44 33 44 56 45 52 54 45 58   const D3DVERTEX
7c60: 45 4c 45 4d 45 4e 54 39 20 44 33 44 44 45 43 4c  ELEMENT9 D3DDECL
7c70: 5f 45 4e 44 20 3d 20 7b 20 30 78 46 46 2c 30 2c  _END = { 0xFF,0,
7c80: 44 33 44 44 45 43 4c 54 59 50 45 5f 55 4e 55 53  D3DDECLTYPE_UNUS
7c90: 45 44 2c 30 2c 30 2c 30 20 7d 3b 0d 0a 7d 0d 0a  ED,0,0,0 };..}..
7ca0: 0d 0a 2f 2f 20 4d 61 78 69 6d 75 6d 20 73 75 70  ..// Maximum sup
7cb0: 70 6f 72 74 65 64 20 6e 75 6d 62 65 72 20 6f 66  ported number of
7cc0: 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 69 6e   texture coordin
7cd0: 61 74 65 20 73 65 74 73 0d 0a 63 6f 6e 73 74 20  ate sets..const 
7ce0: 44 33 44 44 50 5f 4d 41 58 54 45 58 43 4f 4f 52  D3DDP_MAXTEXCOOR
7cf0: 44 20 3d 20 38 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d  D = 8;....//----
7d00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7d10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7d20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7d30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7d40: 2d 0d 0a 2f 2f 20 56 61 6c 75 65 73 20 66 6f 72  -..// Values for
7d50: 20 49 44 69 72 65 63 74 33 44 44 65 76 69 63 65   IDirect3DDevice
7d60: 39 3a 3a 53 65 74 53 74 72 65 61 6d 53 6f 75 72  9::SetStreamSour
7d70: 63 65 46 72 65 71 27 73 20 53 65 74 74 69 6e 67  ceFreq's Setting
7d80: 20 70 61 72 61 6d 65 74 65 72 0d 0a 2f 2f 2d 2d   parameter..//--
7d90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7da0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7db0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7dc0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7dd0: 2d 2d 2d 0d 0a 63 6f 6e 73 74 20 44 33 44 53 54  ---..const D3DST
7de0: 52 45 41 4d 53 4f 55 52 43 45 5f 49 4e 44 45 58  REAMSOURCE_INDEX
7df0: 45 44 44 41 54 41 20 3d 20 28 31 3c 3c 33 30 29  EDDATA = (1<<30)
7e00: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 54 52 45  ;..const D3DSTRE
7e10: 41 4d 53 4f 55 52 43 45 5f 49 4e 53 54 41 4e 43  AMSOURCE_INSTANC
7e20: 45 44 41 54 41 20 3d 20 28 32 3c 3c 33 30 29 3b  EDATA = (2<<30);
7e30: 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d  ........//------
7e40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7e50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7e60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7e70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
7e80: 0a 2f 2f 0d 0a 2f 2f 20 54 68 65 20 69 6e 74 65  .//..// The inte
7e90: 72 6e 61 6c 20 66 6f 72 6d 61 74 20 6f 66 20 50  rnal format of P
7ea0: 69 78 65 6c 20 53 68 61 64 65 72 20 28 50 53 29  ixel Shader (PS)
7eb0: 20 26 20 56 65 72 74 65 78 20 53 68 61 64 65 72   & Vertex Shader
7ec0: 20 28 56 53 29 0d 0a 2f 2f 20 49 6e 73 74 72 75   (VS)..// Instru
7ed0: 63 74 69 6f 6e 20 54 6f 6b 65 6e 73 20 69 73 20  ction Tokens is 
7ee0: 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 44  defined in the D
7ef0: 69 72 65 63 74 33 44 20 44 65 76 69 63 65 20 44  irect3D Device D
7f00: 72 69 76 65 72 20 4b 69 74 0d 0a 2f 2f 0d 0a 2f  river Kit..//../
7f10: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
7f20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7f30: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7f40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
7f50: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2f 2f 0d 0a 2f 2f  ------....//..//
7f60: 20 49 6e 73 74 72 75 63 74 69 6f 6e 20 54 6f 6b   Instruction Tok
7f70: 65 6e 20 42 69 74 20 44 65 66 69 6e 69 74 69 6f  en Bit Definitio
7f80: 6e 73 0d 0a 2f 2f 0d 0a 63 6f 6e 73 74 20 44 33  ns..//..const D3
7f90: 44 53 49 5f 4f 50 43 4f 44 45 5f 4d 41 53 4b 20  DSI_OPCODE_MASK 
7fa0: 3d 20 30 78 30 30 30 30 46 46 46 46 3b 0d 0a 0d  = 0x0000FFFF;...
7fb0: 0a 63 6f 6e 73 74 20 44 33 44 53 49 5f 49 4e 53  .const D3DSI_INS
7fc0: 54 4c 45 4e 47 54 48 5f 4d 41 53 4b 20 3d 20 30  TLENGTH_MASK = 0
7fd0: 78 30 46 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 73  x0F000000;..cons
7fe0: 74 20 44 33 44 53 49 5f 49 4e 53 54 4c 45 4e 47  t D3DSI_INSTLENG
7ff0: 54 48 5f 53 48 49 46 54 20 3d 20 32 34 3b 0d 0a  TH_SHIFT = 24;..
8000: 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 53 48 41 44  ..enum : D3DSHAD
8010: 45 52 5f 49 4e 53 54 52 55 43 54 49 4f 4e 5f 4f  ER_INSTRUCTION_O
8020: 50 43 4f 44 45 5f 54 59 50 45 20 7b 0d 0a 20 20  PCODE_TYPE {..  
8030: 20 20 44 33 44 53 49 4f 5f 4e 4f 50 20 20 20 20    D3DSIO_NOP    
8040: 20 20 20 20 20 20 3d 20 30 2c 0d 0a 20 20 20 20        = 0,..    
8050: 44 33 44 53 49 4f 5f 4d 4f 56 20 20 20 20 20 20  D3DSIO_MOV      
8060: 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49      ,..    D3DSI
8070: 4f 5f 41 44 44 20 20 20 20 20 20 20 20 20 20 2c  O_ADD          ,
8080: 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 53 55 42  ..    D3DSIO_SUB
8090: 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20            ,..   
80a0: 20 44 33 44 53 49 4f 5f 4d 41 44 20 20 20 20 20   D3DSIO_MAD     
80b0: 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53       ,..    D3DS
80c0: 49 4f 5f 4d 55 4c 20 20 20 20 20 20 20 20 20 20  IO_MUL          
80d0: 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 52 43  ,..    D3DSIO_RC
80e0: 50 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20  P          ,..  
80f0: 20 20 44 33 44 53 49 4f 5f 52 53 51 20 20 20 20    D3DSIO_RSQ    
8100: 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44        ,..    D3D
8110: 53 49 4f 5f 44 50 33 20 20 20 20 20 20 20 20 20  SIO_DP3         
8120: 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 44   ,..    D3DSIO_D
8130: 50 34 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20  P4          ,.. 
8140: 20 20 20 44 33 44 53 49 4f 5f 4d 49 4e 20 20 20     D3DSIO_MIN   
8150: 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33         ,..    D3
8160: 44 53 49 4f 5f 4d 41 58 20 20 20 20 20 20 20 20  DSIO_MAX        
8170: 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f    ,..    D3DSIO_
8180: 53 4c 54 20 20 20 20 20 20 20 20 20 20 2c 0d 0a  SLT          ,..
8190: 20 20 20 20 44 33 44 53 49 4f 5f 53 47 45 20 20      D3DSIO_SGE  
81a0: 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44          ,..    D
81b0: 33 44 53 49 4f 5f 45 58 50 20 20 20 20 20 20 20  3DSIO_EXP       
81c0: 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f     ,..    D3DSIO
81d0: 5f 4c 4f 47 20 20 20 20 20 20 20 20 20 20 2c 0d  _LOG          ,.
81e0: 0a 20 20 20 20 44 33 44 53 49 4f 5f 4c 49 54 20  .    D3DSIO_LIT 
81f0: 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20           ,..    
8200: 44 33 44 53 49 4f 5f 44 53 54 20 20 20 20 20 20  D3DSIO_DST      
8210: 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49      ,..    D3DSI
8220: 4f 5f 4c 52 50 20 20 20 20 20 20 20 20 20 20 2c  O_LRP          ,
8230: 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 46 52 43  ..    D3DSIO_FRC
8240: 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20            ,..   
8250: 20 44 33 44 53 49 4f 5f 4d 34 78 34 20 20 20 20   D3DSIO_M4x4    
8260: 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53       ,..    D3DS
8270: 49 4f 5f 4d 34 78 33 20 20 20 20 20 20 20 20 20  IO_M4x3         
8280: 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 4d 33  ,..    D3DSIO_M3
8290: 78 34 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20  x4         ,..  
82a0: 20 20 44 33 44 53 49 4f 5f 4d 33 78 33 20 20 20    D3DSIO_M3x3   
82b0: 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44        ,..    D3D
82c0: 53 49 4f 5f 4d 33 78 32 20 20 20 20 20 20 20 20  SIO_M3x2        
82d0: 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 43   ,..    D3DSIO_C
82e0: 41 4c 4c 20 20 20 20 20 20 20 20 20 2c 0d 0a 20  ALL         ,.. 
82f0: 20 20 20 44 33 44 53 49 4f 5f 43 41 4c 4c 4e 5a     D3DSIO_CALLNZ
8300: 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33         ,..    D3
8310: 44 53 49 4f 5f 4c 4f 4f 50 20 20 20 20 20 20 20  DSIO_LOOP       
8320: 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f    ,..    D3DSIO_
8330: 52 45 54 20 20 20 20 20 20 20 20 20 20 2c 0d 0a  RET          ,..
8340: 20 20 20 20 44 33 44 53 49 4f 5f 45 4e 44 4c 4f      D3DSIO_ENDLO
8350: 4f 50 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44  OP      ,..    D
8360: 33 44 53 49 4f 5f 4c 41 42 45 4c 20 20 20 20 20  3DSIO_LABEL     
8370: 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f     ,..    D3DSIO
8380: 5f 44 43 4c 20 20 20 20 20 20 20 20 20 20 2c 0d  _DCL          ,.
8390: 0a 20 20 20 20 44 33 44 53 49 4f 5f 50 4f 57 20  .    D3DSIO_POW 
83a0: 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20           ,..    
83b0: 44 33 44 53 49 4f 5f 43 52 53 20 20 20 20 20 20  D3DSIO_CRS      
83c0: 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49      ,..    D3DSI
83d0: 4f 5f 53 47 4e 20 20 20 20 20 20 20 20 20 20 2c  O_SGN          ,
83e0: 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 41 42 53  ..    D3DSIO_ABS
83f0: 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20            ,..   
8400: 20 44 33 44 53 49 4f 5f 4e 52 4d 20 20 20 20 20   D3DSIO_NRM     
8410: 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53       ,..    D3DS
8420: 49 4f 5f 53 49 4e 43 4f 53 20 20 20 20 20 20 20  IO_SINCOS       
8430: 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 52 45  ,..    D3DSIO_RE
8440: 50 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20  P          ,..  
8450: 20 20 44 33 44 53 49 4f 5f 45 4e 44 52 45 50 20    D3DSIO_ENDREP 
8460: 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44        ,..    D3D
8470: 53 49 4f 5f 49 46 20 20 20 20 20 20 20 20 20 20  SIO_IF          
8480: 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 49   ,..    D3DSIO_I
8490: 46 43 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20  FC          ,.. 
84a0: 20 20 20 44 33 44 53 49 4f 5f 45 4c 53 45 20 20     D3DSIO_ELSE  
84b0: 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33         ,..    D3
84c0: 44 53 49 4f 5f 45 4e 44 49 46 20 20 20 20 20 20  DSIO_ENDIF      
84d0: 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f    ,..    D3DSIO_
84e0: 42 52 45 41 4b 20 20 20 20 20 20 20 20 2c 0d 0a  BREAK        ,..
84f0: 20 20 20 20 44 33 44 53 49 4f 5f 42 52 45 41 4b      D3DSIO_BREAK
8500: 43 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44  C       ,..    D
8510: 33 44 53 49 4f 5f 4d 4f 56 41 20 20 20 20 20 20  3DSIO_MOVA      
8520: 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f     ,..    D3DSIO
8530: 5f 44 45 46 42 20 20 20 20 20 20 20 20 20 2c 0d  _DEFB         ,.
8540: 0a 20 20 20 20 44 33 44 53 49 4f 5f 44 45 46 49  .    D3DSIO_DEFI
8550: 20 20 20 20 20 20 20 20 20 2c 0d 0a 0d 0a 20 20           ,....  
8560: 20 20 44 33 44 53 49 4f 5f 54 45 58 43 4f 4f 52    D3DSIO_TEXCOOR
8570: 44 20 20 20 20 20 3d 20 36 34 2c 0d 0a 20 20 20  D     = 64,..   
8580: 20 44 33 44 53 49 4f 5f 54 45 58 4b 49 4c 4c 20   D3DSIO_TEXKILL 
8590: 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53       ,..    D3DS
85a0: 49 4f 5f 54 45 58 20 20 20 20 20 20 20 20 20 20  IO_TEX          
85b0: 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 54 45  ,..    D3DSIO_TE
85c0: 58 42 45 4d 20 20 20 20 20 20 20 2c 0d 0a 20 20  XBEM       ,..  
85d0: 20 20 44 33 44 53 49 4f 5f 54 45 58 42 45 4d 4c    D3DSIO_TEXBEML
85e0: 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44        ,..    D3D
85f0: 53 49 4f 5f 54 45 58 52 45 47 32 41 52 20 20 20  SIO_TEXREG2AR   
8600: 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 54   ,..    D3DSIO_T
8610: 45 58 52 45 47 32 47 42 20 20 20 20 2c 0d 0a 20  EXREG2GB    ,.. 
8620: 20 20 20 44 33 44 53 49 4f 5f 54 45 58 4d 33 78     D3DSIO_TEXM3x
8630: 32 50 41 44 20 20 20 2c 0d 0a 20 20 20 20 44 33  2PAD   ,..    D3
8640: 44 53 49 4f 5f 54 45 58 4d 33 78 32 54 45 58 20  DSIO_TEXM3x2TEX 
8650: 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f    ,..    D3DSIO_
8660: 54 45 58 4d 33 78 33 50 41 44 20 20 20 2c 0d 0a  TEXM3x3PAD   ,..
8670: 20 20 20 20 44 33 44 53 49 4f 5f 54 45 58 4d 33      D3DSIO_TEXM3
8680: 78 33 54 45 58 20 20 20 2c 0d 0a 20 20 20 20 44  x3TEX   ,..    D
8690: 33 44 53 49 4f 5f 52 45 53 45 52 56 45 44 30 20  3DSIO_RESERVED0 
86a0: 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f     ,..    D3DSIO
86b0: 5f 54 45 58 4d 33 78 33 53 50 45 43 20 20 2c 0d  _TEXM3x3SPEC  ,.
86c0: 0a 20 20 20 20 44 33 44 53 49 4f 5f 54 45 58 4d  .    D3DSIO_TEXM
86d0: 33 78 33 56 53 50 45 43 20 2c 0d 0a 20 20 20 20  3x3VSPEC ,..    
86e0: 44 33 44 53 49 4f 5f 45 58 50 50 20 20 20 20 20  D3DSIO_EXPP     
86f0: 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49      ,..    D3DSI
8700: 4f 5f 4c 4f 47 50 20 20 20 20 20 20 20 20 20 2c  O_LOGP         ,
8710: 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 43 4e 44  ..    D3DSIO_CND
8720: 20 20 20 20 20 20 20 20 20 20 2c 0d 0a 20 20 20            ,..   
8730: 20 44 33 44 53 49 4f 5f 44 45 46 20 20 20 20 20   D3DSIO_DEF     
8740: 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53       ,..    D3DS
8750: 49 4f 5f 54 45 58 52 45 47 32 52 47 42 20 20 20  IO_TEXREG2RGB   
8760: 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 54 45  ,..    D3DSIO_TE
8770: 58 44 50 33 54 45 58 20 20 20 20 2c 0d 0a 20 20  XDP3TEX    ,..  
8780: 20 20 44 33 44 53 49 4f 5f 54 45 58 4d 33 78 32    D3DSIO_TEXM3x2
8790: 44 45 50 54 48 20 2c 0d 0a 20 20 20 20 44 33 44  DEPTH ,..    D3D
87a0: 53 49 4f 5f 54 45 58 44 50 33 20 20 20 20 20 20  SIO_TEXDP3      
87b0: 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 54   ,..    D3DSIO_T
87c0: 45 58 4d 33 78 33 20 20 20 20 20 20 2c 0d 0a 20  EXM3x3      ,.. 
87d0: 20 20 20 44 33 44 53 49 4f 5f 54 45 58 44 45 50     D3DSIO_TEXDEP
87e0: 54 48 20 20 20 20 20 2c 0d 0a 20 20 20 20 44 33  TH     ,..    D3
87f0: 44 53 49 4f 5f 43 4d 50 20 20 20 20 20 20 20 20  DSIO_CMP        
8800: 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f    ,..    D3DSIO_
8810: 42 45 4d 20 20 20 20 20 20 20 20 20 20 2c 0d 0a  BEM          ,..
8820: 20 20 20 20 44 33 44 53 49 4f 5f 44 50 32 41 44      D3DSIO_DP2AD
8830: 44 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20 44  D       ,..    D
8840: 33 44 53 49 4f 5f 44 53 58 20 20 20 20 20 20 20  3DSIO_DSX       
8850: 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f     ,..    D3DSIO
8860: 5f 44 53 59 20 20 20 20 20 20 20 20 20 20 2c 0d  _DSY          ,.
8870: 0a 20 20 20 20 44 33 44 53 49 4f 5f 54 45 58 4c  .    D3DSIO_TEXL
8880: 44 44 20 20 20 20 20 20 20 2c 0d 0a 20 20 20 20  DD       ,..    
8890: 44 33 44 53 49 4f 5f 53 45 54 50 20 20 20 20 20  D3DSIO_SETP     
88a0: 20 20 20 20 2c 0d 0a 20 20 20 20 44 33 44 53 49      ,..    D3DSI
88b0: 4f 5f 54 45 58 4c 44 4c 20 20 20 20 20 20 20 2c  O_TEXLDL       ,
88c0: 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 42 52 45  ..    D3DSIO_BRE
88d0: 41 4b 50 20 20 20 20 20 20 20 2c 0d 0a 0d 0a 20  AKP       ,.... 
88e0: 20 20 20 44 33 44 53 49 4f 5f 50 48 41 53 45 20     D3DSIO_PHASE 
88f0: 20 20 20 20 20 20 20 3d 20 30 78 46 46 46 44 2c         = 0xFFFD,
8900: 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f 43 4f 4d  ..    D3DSIO_COM
8910: 4d 45 4e 54 20 20 20 20 20 20 3d 20 30 78 46 46  MENT      = 0xFF
8920: 46 45 2c 0d 0a 20 20 20 20 44 33 44 53 49 4f 5f  FE,..    D3DSIO_
8930: 45 4e 44 20 20 20 20 20 20 20 20 20 20 3d 20 30  END          = 0
8940: 78 46 46 46 46 0d 0a 7d 0d 0a 61 6c 69 61 73 20  xFFFF..}..alias 
8950: 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44  TypeDef!(uint) D
8960: 33 44 53 48 41 44 45 52 5f 49 4e 53 54 52 55 43  3DSHADER_INSTRUC
8970: 54 49 4f 4e 5f 4f 50 43 4f 44 45 5f 54 59 50 45  TION_OPCODE_TYPE
8980: 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d  ;....//---------
8990: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
89a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
89b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
89c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f  ------------..//
89d0: 20 55 73 65 20 74 68 65 73 65 20 63 6f 6e 73 74   Use these const
89e0: 61 6e 74 73 20 77 69 74 68 20 44 33 44 53 49 4f  ants with D3DSIO
89f0: 5f 53 49 4e 43 4f 53 20 6d 61 63 72 6f 20 61 73  _SINCOS macro as
8a00: 20 53 52 43 32 2c 20 53 52 43 33 0d 0a 2f 2f 0d   SRC2, SRC3..//.
8a10: 0a 63 6f 6e 73 74 20 66 6c 6f 61 74 5b 34 5d 20  .const float[4] 
8a20: 44 33 44 53 49 4e 43 4f 53 43 4f 4e 53 54 31 20  D3DSINCOSCONST1 
8a30: 3d 20 5b 2d 31 2e 35 35 30 30 39 39 32 65 2d 30  = [-1.5500992e-0
8a40: 30 36 66 2c 20 2d 32 2e 31 37 30 31 33 38 39 65  06f, -2.1701389e
8a50: 2d 30 30 35 66 2c 20 20 30 2e 30 30 32 36 30 34  -005f,  0.002604
8a60: 31 36 36 37 66 2c 20 30 2e 30 30 30 32 36 30 34  1667f, 0.0002604
8a70: 31 36 36 38 66 5d 3b 0d 0a 63 6f 6e 73 74 20 66  1668f];..const f
8a80: 6c 6f 61 74 5b 34 5d 20 44 33 44 53 49 4e 43 4f  loat[4] D3DSINCO
8a90: 53 43 4f 4e 53 54 32 20 3d 20 5b 2d 30 2e 30 32  SCONST2 = [-0.02
8aa0: 30 38 33 33 33 33 34 66 2c 20 2d 30 2e 31 32 35  0833334f, -0.125
8ab0: 30 30 30 30 30 66 2c 20 31 2e 30 66 2c 20 30 2e  00000f, 1.0f, 0.
8ac0: 35 30 30 30 30 30 30 30 66 5d 3b 0d 0a 0d 0a 2f  50000000f];..../
8ad0: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
8ae0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8af0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8b10: 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 43 6f 2d 49 73  ------..// Co-Is
8b20: 73 75 65 20 49 6e 73 74 72 75 63 74 69 6f 6e 20  sue Instruction 
8b30: 4d 6f 64 69 66 69 65 72 20 2d 20 69 66 20 73 65  Modifier - if se
8b40: 74 20 74 68 65 6e 20 74 68 69 73 20 69 6e 73 74  t then this inst
8b50: 72 75 63 74 69 6f 6e 20 69 73 20 74 6f 20 62 65  ruction is to be
8b60: 0d 0a 2f 2f 20 69 73 73 75 65 64 20 69 6e 20 70  ..// issued in p
8b70: 61 72 61 6c 6c 65 6c 20 77 69 74 68 20 74 68 65  arallel with the
8b80: 20 70 72 65 76 69 6f 75 73 20 69 6e 73 74 72 75   previous instru
8b90: 63 74 69 6f 6e 28 73 29 20 66 6f 72 20 77 68 69  ction(s) for whi
8ba0: 63 68 20 74 68 69 73 20 62 69 74 0d 0a 2f 2f 20  ch this bit..// 
8bb0: 69 73 20 6e 6f 74 20 73 65 74 2e 0d 0a 2f 2f 0d  is not set...//.
8bc0: 0a 63 6f 6e 73 74 20 44 33 44 53 49 5f 43 4f 49  .const D3DSI_COI
8bd0: 53 53 55 45 20 3d 20 30 78 34 30 30 30 30 30 30  SSUE = 0x4000000
8be0: 30 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d  0;....//--------
8bf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
8c20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f  -------------../
8c30: 2f 20 4f 70 63 6f 64 65 20 73 70 65 63 69 66 69  / Opcode specifi
8c40: 63 20 63 6f 6e 74 72 6f 6c 73 0d 0a 0d 0a 63 6f  c controls....co
8c50: 6e 73 74 20 44 33 44 53 50 5f 4f 50 43 4f 44 45  nst D3DSP_OPCODE
8c60: 53 50 45 43 49 46 49 43 43 4f 4e 54 52 4f 4c 5f  SPECIFICCONTROL_
8c70: 4d 41 53 4b 20 3d 20 30 78 30 30 66 66 30 30 30  MASK = 0x00ff000
8c80: 30 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f  0;..const D3DSP_
8c90: 4f 50 43 4f 44 45 53 50 45 43 49 46 49 43 43 4f  OPCODESPECIFICCO
8ca0: 4e 54 52 4f 4c 5f 53 48 49 46 54 20 3d 20 31 36  NTROL_SHIFT = 16
8cb0: 3b 0d 0a 0d 0a 2f 2f 20 70 73 5f 32 5f 30 20 74  ;....// ps_2_0 t
8cc0: 65 78 6c 64 20 63 6f 6e 74 72 6f 6c 73 0d 0a 63  exld controls..c
8cd0: 6f 6e 73 74 20 44 33 44 53 49 5f 54 45 58 4c 44  onst D3DSI_TEXLD
8ce0: 5f 50 52 4f 4a 45 43 54 20 3d 20 28 30 78 30 31  _PROJECT = (0x01
8cf0: 20 3c 3c 20 44 33 44 53 50 5f 4f 50 43 4f 44 45   << D3DSP_OPCODE
8d00: 53 50 45 43 49 46 49 43 43 4f 4e 54 52 4f 4c 5f  SPECIFICCONTROL_
8d10: 53 48 49 46 54 29 3b 0d 0a 63 6f 6e 73 74 20 44  SHIFT);..const D
8d20: 33 44 53 49 5f 54 45 58 4c 44 5f 42 49 41 53 20  3DSI_TEXLD_BIAS 
8d30: 3d 20 28 30 78 30 32 20 3c 3c 20 44 33 44 53 50  = (0x02 << D3DSP
8d40: 5f 4f 50 43 4f 44 45 53 50 45 43 49 46 49 43 43  _OPCODESPECIFICC
8d50: 4f 4e 54 52 4f 4c 5f 53 48 49 46 54 29 3b 0d 0a  ONTROL_SHIFT);..
8d60: 0d 0a 2f 2f 20 43 6f 6d 70 61 72 69 73 6f 6e 20  ..// Comparison 
8d70: 66 6f 72 20 64 79 6e 61 6d 69 63 20 63 6f 6e 64  for dynamic cond
8d80: 69 74 69 6f 6e 61 6c 20 69 6e 73 74 72 75 63 74  itional instruct
8d90: 69 6f 6e 20 6f 70 63 6f 64 65 73 20 28 69 2e 65  ion opcodes (i.e
8da0: 2e 20 69 66 2c 20 62 72 65 61 6b 63 29 0d 0a 65  . if, breakc)..e
8db0: 6e 75 6d 20 3a 20 44 33 44 53 48 41 44 45 52 5f  num : D3DSHADER_
8dc0: 43 4f 4d 50 41 52 49 53 4f 4e 20 7b 0d 0a 20 20  COMPARISON {..  
8dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
8de0: 20 20 20 20 20 20 20 2f 2f 20 3c 20 3d 20 3e 0d         // < = >.
8df0: 0a 20 20 20 20 44 33 44 53 50 43 5f 52 45 53 45  .    D3DSPC_RESE
8e00: 52 56 45 44 30 3d 20 30 2c 20 2f 2f 20 30 20 30  RVED0= 0, // 0 0
8e10: 20 30 0d 0a 20 20 20 20 44 33 44 53 50 43 5f 47   0..    D3DSPC_G
8e20: 54 20 20 20 20 20 20 20 3d 20 31 2c 20 2f 2f 20  T       = 1, // 
8e30: 30 20 30 20 31 0d 0a 20 20 20 20 44 33 44 53 50  0 0 1..    D3DSP
8e40: 43 5f 45 51 20 20 20 20 20 20 20 3d 20 32 2c 20  C_EQ       = 2, 
8e50: 2f 2f 20 30 20 31 20 30 0d 0a 20 20 20 20 44 33  // 0 1 0..    D3
8e60: 44 53 50 43 5f 47 45 20 20 20 20 20 20 20 3d 20  DSPC_GE       = 
8e70: 33 2c 20 2f 2f 20 30 20 31 20 31 0d 0a 20 20 20  3, // 0 1 1..   
8e80: 20 44 33 44 53 50 43 5f 4c 54 20 20 20 20 20 20   D3DSPC_LT      
8e90: 20 3d 20 34 2c 20 2f 2f 20 31 20 30 20 30 0d 0a   = 4, // 1 0 0..
8ea0: 20 20 20 20 44 33 44 53 50 43 5f 4e 45 20 20 20      D3DSPC_NE   
8eb0: 20 20 20 20 3d 20 35 2c 20 2f 2f 20 31 20 30 20      = 5, // 1 0 
8ec0: 31 0d 0a 20 20 20 20 44 33 44 53 50 43 5f 4c 45  1..    D3DSPC_LE
8ed0: 20 20 20 20 20 20 20 3d 20 36 2c 20 2f 2f 20 31         = 6, // 1
8ee0: 20 31 20 30 0d 0a 20 20 20 20 44 33 44 53 50 43   1 0..    D3DSPC
8ef0: 5f 52 45 53 45 52 56 45 44 31 3d 20 37 20 20 2f  _RESERVED1= 7  /
8f00: 2f 20 31 20 31 20 31 0d 0a 7d 0d 0a 61 6c 69 61  / 1 1 1..}..alia
8f10: 73 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29  s TypeDef!(uint)
8f20: 20 44 33 44 53 48 41 44 45 52 5f 43 4f 4d 50 41   D3DSHADER_COMPA
8f30: 52 49 53 4f 4e 3b 0d 0a 0d 0a 2f 2f 20 43 6f 6d  RISON;....// Com
8f40: 70 61 72 69 73 6f 6e 20 69 73 20 70 61 72 74 20  parison is part 
8f50: 6f 66 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 6f  of instruction o
8f60: 70 63 6f 64 65 20 74 6f 6b 65 6e 3a 0d 0a 63 6f  pcode token:..co
8f70: 6e 73 74 20 44 33 44 53 48 41 44 45 52 5f 43 4f  nst D3DSHADER_CO
8f80: 4d 50 41 52 49 53 4f 4e 5f 53 48 49 46 54 20 3d  MPARISON_SHIFT =
8f90: 20 44 33 44 53 50 5f 4f 50 43 4f 44 45 53 50 45   D3DSP_OPCODESPE
8fa0: 43 49 46 49 43 43 4f 4e 54 52 4f 4c 5f 53 48 49  CIFICCONTROL_SHI
8fb0: 46 54 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 48  FT;..const D3DSH
8fc0: 41 44 45 52 5f 43 4f 4d 50 41 52 49 53 4f 4e 5f  ADER_COMPARISON_
8fd0: 4d 41 53 4b 20 3d 20 28 30 78 37 3c 3c 44 33 44  MASK = (0x7<<D3D
8fe0: 53 48 41 44 45 52 5f 43 4f 4d 50 41 52 49 53 4f  SHADER_COMPARISO
8ff0: 4e 5f 53 48 49 46 54 29 3b 0d 0a 0d 0a 2f 2f 2d  N_SHIFT);....//-
9000: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9040: 2d 2d 2d 2d 0d 0a 2f 2f 20 50 72 65 64 69 63 61  ----..// Predica
9050: 74 69 6f 6e 20 66 6c 61 67 73 20 6f 6e 20 69 6e  tion flags on in
9060: 73 74 72 75 63 74 69 6f 6e 20 74 6f 6b 65 6e 0d  struction token.
9070: 0a 63 6f 6e 73 74 20 44 33 44 53 48 41 44 45 52  .const D3DSHADER
9080: 5f 49 4e 53 54 52 55 43 54 49 4f 4e 5f 50 52 45  _INSTRUCTION_PRE
9090: 44 49 43 41 54 45 44 20 3d 20 28 30 78 31 20 3c  DICATED = (0x1 <
90a0: 3c 20 32 38 29 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d  < 28);....//----
90b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
90c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
90d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
90e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
90f0: 2d 0d 0a 2f 2f 20 44 43 4c 20 49 6e 66 6f 20 54  -..// DCL Info T
9100: 6f 6b 65 6e 20 43 6f 6e 74 72 6f 6c 73 0d 0a 0d  oken Controls...
9110: 0a 2f 2f 20 46 6f 72 20 64 63 6c 20 69 6e 66 6f  .// For dcl info
9120: 20 74 6f 6b 65 6e 73 20 72 65 71 75 69 72 69 6e   tokens requirin
9130: 67 20 61 20 73 65 6d 61 6e 74 69 63 20 28 75 73  g a semantic (us
9140: 61 67 65 20 2b 20 69 6e 64 65 78 29 0d 0a 63 6f  age + index)..co
9150: 6e 73 74 20 44 33 44 53 50 5f 44 43 4c 5f 55 53  nst D3DSP_DCL_US
9160: 41 47 45 5f 53 48 49 46 54 20 3d 20 30 3b 0d 0a  AGE_SHIFT = 0;..
9170: 63 6f 6e 73 74 20 44 33 44 53 50 5f 44 43 4c 5f  const D3DSP_DCL_
9180: 55 53 41 47 45 5f 4d 41 53 4b 20 3d 20 30 78 30  USAGE_MASK = 0x0
9190: 30 30 30 30 30 30 66 3b 0d 0a 0d 0a 63 6f 6e 73  000000f;....cons
91a0: 74 20 44 33 44 53 50 5f 44 43 4c 5f 55 53 41 47  t D3DSP_DCL_USAG
91b0: 45 49 4e 44 45 58 5f 53 48 49 46 54 20 3d 20 31  EINDEX_SHIFT = 1
91c0: 36 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f  6;..const D3DSP_
91d0: 44 43 4c 5f 55 53 41 47 45 49 4e 44 45 58 5f 4d  DCL_USAGEINDEX_M
91e0: 41 53 4b 20 3d 20 30 78 30 30 30 66 30 30 30 30  ASK = 0x000f0000
91f0: 3b 0d 0a 0d 0a 2f 2f 20 44 43 4c 20 70 69 78 65  ;....// DCL pixe
9200: 6c 20 73 68 61 64 65 72 20 73 61 6d 70 6c 65 72  l shader sampler
9210: 20 69 6e 66 6f 20 74 6f 6b 65 6e 2e 0d 0a 63 6f   info token...co
9220: 6e 73 74 20 44 33 44 53 50 5f 54 45 58 54 55 52  nst D3DSP_TEXTUR
9230: 45 54 59 50 45 5f 53 48 49 46 54 20 3d 20 32 37  ETYPE_SHIFT = 27
9240: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 54  ;..const D3DSP_T
9250: 45 58 54 55 52 45 54 59 50 45 5f 4d 41 53 4b 20  EXTURETYPE_MASK 
9260: 3d 20 30 78 37 38 30 30 30 30 30 30 3b 0d 0a 0d  = 0x78000000;...
9270: 0a 65 6e 75 6d 20 3a 20 44 33 44 53 41 4d 50 4c  .enum : D3DSAMPL
9280: 45 52 5f 54 45 58 54 55 52 45 5f 54 59 50 45 20  ER_TEXTURE_TYPE 
9290: 7b 0d 0a 20 20 20 20 44 33 44 53 54 54 5f 55 4e  {..    D3DSTT_UN
92a0: 4b 4e 4f 57 4e 20 3d 20 30 3c 3c 44 33 44 53 50  KNOWN = 0<<D3DSP
92b0: 5f 54 45 58 54 55 52 45 54 59 50 45 5f 53 48 49  _TEXTURETYPE_SHI
92c0: 46 54 2c 20 2f 2f 20 75 6e 69 6e 69 74 69 61 6c  FT, // uninitial
92d0: 69 7a 65 64 20 76 61 6c 75 65 0d 0a 20 20 20 20  ized value..    
92e0: 44 33 44 53 54 54 5f 32 44 20 20 20 20 20 20 3d  D3DSTT_2D      =
92f0: 20 32 3c 3c 44 33 44 53 50 5f 54 45 58 54 55 52   2<<D3DSP_TEXTUR
9300: 45 54 59 50 45 5f 53 48 49 46 54 2c 20 2f 2f 20  ETYPE_SHIFT, // 
9310: 64 63 6c 5f 32 64 20 73 23 20 28 66 6f 72 20 64  dcl_2d s# (for d
9320: 65 63 6c 61 72 69 6e 67 20 61 20 32 2d 44 20 74  eclaring a 2-D t
9330: 65 78 74 75 72 65 29 0d 0a 20 20 20 20 44 33 44  exture)..    D3D
9340: 53 54 54 5f 43 55 42 45 20 20 20 20 3d 20 33 3c  STT_CUBE    = 3<
9350: 3c 44 33 44 53 50 5f 54 45 58 54 55 52 45 54 59  <D3DSP_TEXTURETY
9360: 50 45 5f 53 48 49 46 54 2c 20 2f 2f 20 64 63 6c  PE_SHIFT, // dcl
9370: 5f 63 75 62 65 20 73 23 20 28 66 6f 72 20 64 65  _cube s# (for de
9380: 63 6c 61 72 69 6e 67 20 61 20 63 75 62 65 20 74  claring a cube t
9390: 65 78 74 75 72 65 29 0d 0a 20 20 20 20 44 33 44  exture)..    D3D
93a0: 53 54 54 5f 56 4f 4c 55 4d 45 20 20 3d 20 34 3c  STT_VOLUME  = 4<
93b0: 3c 44 33 44 53 50 5f 54 45 58 54 55 52 45 54 59  <D3DSP_TEXTURETY
93c0: 50 45 5f 53 48 49 46 54 20 20 2f 2f 20 64 63 6c  PE_SHIFT  // dcl
93d0: 5f 76 6f 6c 75 6d 65 20 73 23 20 28 66 6f 72 20  _volume s# (for 
93e0: 64 65 63 6c 61 72 69 6e 67 20 61 20 76 6f 6c 75  declaring a volu
93f0: 6d 65 20 74 65 78 74 75 72 65 29 0d 0a 7d 0d 0a  me texture)..}..
9400: 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 75  alias TypeDef!(u
9410: 69 6e 74 29 20 44 33 44 53 41 4d 50 4c 45 52 5f  int) D3DSAMPLER_
9420: 54 45 58 54 55 52 45 5f 54 59 50 45 3b 0d 0a 0d  TEXTURE_TYPE;...
9430: 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
9440: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9450: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9460: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
9470: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 50 61 72  --------..// Par
9480: 61 6d 65 74 65 72 20 54 6f 6b 65 6e 20 42 69 74  ameter Token Bit
9490: 20 44 65 66 69 6e 69 74 69 6f 6e 73 0d 0a 2f 2f   Definitions..//
94a0: 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 52 45  ..const D3DSP_RE
94b0: 47 4e 55 4d 5f 4d 41 53 4b 20 3d 20 30 78 30 30  GNUM_MASK = 0x00
94c0: 30 30 30 37 46 46 3b 0d 0a 0d 0a 2f 2f 20 64 65  0007FF;....// de
94d0: 73 74 69 6e 61 74 69 6f 6e 20 70 61 72 61 6d 65  stination parame
94e0: 74 65 72 20 77 72 69 74 65 20 6d 61 73 6b 0d 0a  ter write mask..
94f0: 63 6f 6e 73 74 20 44 33 44 53 50 5f 57 52 49 54  const D3DSP_WRIT
9500: 45 4d 41 53 4b 5f 30 20 3d 20 30 78 30 30 30 31  EMASK_0 = 0x0001
9510: 30 30 30 30 3b 20 20 2f 2f 20 43 6f 6d 70 6f 6e  0000;  // Compon
9520: 65 6e 74 20 30 20 28 58 3b 52 65 64 29 0d 0a 63  ent 0 (X;Red)..c
9530: 6f 6e 73 74 20 44 33 44 53 50 5f 57 52 49 54 45  onst D3DSP_WRITE
9540: 4d 41 53 4b 5f 31 20 3d 20 30 78 30 30 30 32 30  MASK_1 = 0x00020
9550: 30 30 30 3b 20 20 2f 2f 20 43 6f 6d 70 6f 6e 65  000;  // Compone
9560: 6e 74 20 31 20 28 59 3b 47 72 65 65 6e 29 0d 0a  nt 1 (Y;Green)..
9570: 63 6f 6e 73 74 20 44 33 44 53 50 5f 57 52 49 54  const D3DSP_WRIT
9580: 45 4d 41 53 4b 5f 32 20 3d 20 30 78 30 30 30 34  EMASK_2 = 0x0004
9590: 30 30 30 30 3b 20 20 2f 2f 20 43 6f 6d 70 6f 6e  0000;  // Compon
95a0: 65 6e 74 20 32 20 28 5a 3b 42 6c 75 65 29 0d 0a  ent 2 (Z;Blue)..
95b0: 63 6f 6e 73 74 20 44 33 44 53 50 5f 57 52 49 54  const D3DSP_WRIT
95c0: 45 4d 41 53 4b 5f 33 20 3d 20 30 78 30 30 30 38  EMASK_3 = 0x0008
95d0: 30 30 30 30 3b 20 20 2f 2f 20 43 6f 6d 70 6f 6e  0000;  // Compon
95e0: 65 6e 74 20 33 20 28 57 3b 41 6c 70 68 61 29 0d  ent 3 (W;Alpha).
95f0: 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 57 52 49  .const D3DSP_WRI
9600: 54 45 4d 41 53 4b 5f 41 4c 4c 20 3d 20 30 78 30  TEMASK_ALL = 0x0
9610: 30 30 46 30 30 30 30 3b 20 20 2f 2f 20 41 6c 6c  00F0000;  // All
9620: 20 43 6f 6d 70 6f 6e 65 6e 74 73 0d 0a 0d 0a 2f   Components..../
9630: 2f 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 70 61  / destination pa
9640: 72 61 6d 65 74 65 72 20 6d 6f 64 69 66 69 65 72  rameter modifier
9650: 73 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 44  s..const D3DSP_D
9660: 53 54 4d 4f 44 5f 53 48 49 46 54 20 3d 20 32 30  STMOD_SHIFT = 20
9670: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 44  ;..const D3DSP_D
9680: 53 54 4d 4f 44 5f 4d 41 53 4b 20 3d 20 30 78 30  STMOD_MASK = 0x0
9690: 30 46 30 30 30 30 30 3b 0d 0a 0d 0a 2f 2f 20 42  0F00000;....// B
96a0: 69 74 20 6d 61 73 6b 73 20 66 6f 72 20 64 65 73  it masks for des
96b0: 74 69 6e 61 74 69 6f 6e 20 70 61 72 61 6d 65 74  tination paramet
96c0: 65 72 20 6d 6f 64 69 66 69 65 72 73 0d 0a 63 6f  er modifiers..co
96d0: 6e 73 74 20 44 33 44 53 50 44 4d 5f 4e 4f 4e 45  nst D3DSPDM_NONE
96e0: 20 3d 20 28 30 3c 3c 44 33 44 53 50 5f 44 53 54   = (0<<D3DSP_DST
96f0: 4d 4f 44 5f 53 48 49 46 54 29 3b 20 2f 2f 20 6e  MOD_SHIFT); // n
9700: 6f 70 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 44  op..const D3DSPD
9710: 4d 5f 53 41 54 55 52 41 54 45 20 3d 20 28 31 3c  M_SATURATE = (1<
9720: 3c 44 33 44 53 50 5f 44 53 54 4d 4f 44 5f 53 48  <D3DSP_DSTMOD_SH
9730: 49 46 54 29 3b 20 2f 2f 20 63 6c 61 6d 70 20 74  IFT); // clamp t
9740: 6f 20 30 2e 20 74 6f 20 31 2e 20 72 61 6e 67 65  o 0. to 1. range
9750: 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 44 4d 5f  ..const D3DSPDM_
9760: 50 41 52 54 49 41 4c 50 52 45 43 49 53 49 4f 4e  PARTIALPRECISION
9770: 20 3d 20 28 32 3c 3c 44 33 44 53 50 5f 44 53 54   = (2<<D3DSP_DST
9780: 4d 4f 44 5f 53 48 49 46 54 29 3b 20 2f 2f 20 50  MOD_SHIFT); // P
9790: 61 72 74 69 61 6c 20 70 72 65 63 69 73 69 6f 6e  artial precision
97a0: 20 68 69 6e 74 0d 0a 63 6f 6e 73 74 20 44 33 44   hint..const D3D
97b0: 53 50 44 4d 5f 4d 53 41 4d 50 43 45 4e 54 52 4f  SPDM_MSAMPCENTRO
97c0: 49 44 20 3d 20 28 34 3c 3c 44 33 44 53 50 5f 44  ID = (4<<D3DSP_D
97d0: 53 54 4d 4f 44 5f 53 48 49 46 54 29 3b 20 2f 2f  STMOD_SHIFT); //
97e0: 20 52 65 6c 65 76 61 6e 74 20 74 6f 20 6d 75 6c   Relevant to mul
97f0: 74 69 73 61 6d 70 6c 69 6e 67 20 6f 6e 6c 79 3a  tisampling only:
9800: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
9810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9840: 20 20 2f 2f 20 20 20 20 20 20 57 68 65 6e 20 74    //      When t
9850: 68 65 20 70 69 78 65 6c 20 63 65 6e 74 65 72 20  he pixel center 
9860: 69 73 20 6e 6f 74 20 63 6f 76 65 72 65 64 2c 20  is not covered, 
9870: 73 61 6d 70 6c 65 0d 0a 20 20 20 20 20 20 20 20  sample..        
9880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
98a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
98b0: 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20          //      
98c0: 61 74 74 72 69 62 75 74 65 20 6f 72 20 63 6f 6d  attribute or com
98d0: 70 75 74 65 20 67 72 61 64 69 65 6e 74 73 2f 4c  pute gradients/L
98e0: 4f 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  OD..            
98f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9920: 20 20 20 20 2f 2f 20 20 20 20 20 20 75 73 69 6e      //      usin
9930: 67 20 6d 75 6c 74 69 73 61 6d 70 6c 65 20 22 63  g multisample "c
9940: 65 6e 74 72 6f 69 64 22 20 6c 6f 63 61 74 69 6f  entroid" locatio
9950: 6e 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  n...            
9960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9990: 20 20 20 20 2f 2f 20 20 20 20 20 20 22 43 65 6e      //      "Cen
99a0: 74 72 6f 69 64 22 20 69 73 20 73 6f 6d 65 20 6c  troid" is some l
99b0: 6f 63 61 74 69 6f 6e 20 77 69 74 68 69 6e 20 74  ocation within t
99c0: 68 65 20 63 6f 76 65 72 65 64 0d 0a 20 20 20 20  he covered..    
99d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
99e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
99f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
9a00: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20              //  
9a10: 20 20 20 20 72 65 67 69 6f 6e 20 6f 66 20 74 68      region of th
9a20: 65 20 70 69 78 65 6c 2e 0d 0a 0d 0a 2f 2f 20 64  e pixel.....// d
9a30: 65 73 74 69 6e 61 74 69 6f 6e 20 70 61 72 61 6d  estination param
9a40: 65 74 65 72 20 0d 0a 63 6f 6e 73 74 20 44 33 44  eter ..const D3D
9a50: 53 50 5f 44 53 54 53 48 49 46 54 5f 53 48 49 46  SP_DSTSHIFT_SHIF
9a60: 54 20 3d 20 32 34 3b 0d 0a 63 6f 6e 73 74 20 44  T = 24;..const D
9a70: 33 44 53 50 5f 44 53 54 53 48 49 46 54 5f 4d 41  3DSP_DSTSHIFT_MA
9a80: 53 4b 20 3d 20 30 78 30 46 30 30 30 30 30 30 3b  SK = 0x0F000000;
9a90: 0d 0a 0d 0a 2f 2f 20 64 65 73 74 69 6e 61 74 69  ....// destinati
9aa0: 6f 6e 2f 73 6f 75 72 63 65 20 70 61 72 61 6d 65  on/source parame
9ab0: 74 65 72 20 72 65 67 69 73 74 65 72 20 74 79 70  ter register typ
9ac0: 65 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 52  e..const D3DSP_R
9ad0: 45 47 54 59 50 45 5f 53 48 49 46 54 20 3d 20 32  EGTYPE_SHIFT = 2
9ae0: 38 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f  8;..const D3DSP_
9af0: 52 45 47 54 59 50 45 5f 53 48 49 46 54 32 20 3d  REGTYPE_SHIFT2 =
9b00: 20 38 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50   8;..const D3DSP
9b10: 5f 52 45 47 54 59 50 45 5f 4d 41 53 4b 20 3d 20  _REGTYPE_MASK = 
9b20: 30 78 37 30 30 30 30 30 30 30 3b 0d 0a 63 6f 6e  0x70000000;..con
9b30: 73 74 20 44 33 44 53 50 5f 52 45 47 54 59 50 45  st D3DSP_REGTYPE
9b40: 5f 4d 41 53 4b 32 20 3d 20 30 78 30 30 30 30 31  _MASK2 = 0x00001
9b50: 38 30 30 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  800;....enum : D
9b60: 33 44 53 48 41 44 45 52 5f 50 41 52 41 4d 5f 52  3DSHADER_PARAM_R
9b70: 45 47 49 53 54 45 52 5f 54 59 50 45 20 7b 0d 0a  EGISTER_TYPE {..
9b80: 20 20 20 20 44 33 44 53 50 52 5f 54 45 4d 50 20      D3DSPR_TEMP 
9b90: 20 20 20 20 20 20 20 20 20 20 3d 20 20 30 2c 20            =  0, 
9ba0: 2f 2f 20 54 65 6d 70 6f 72 61 72 79 20 52 65 67  // Temporary Reg
9bb0: 69 73 74 65 72 20 46 69 6c 65 0d 0a 20 20 20 20  ister File..    
9bc0: 44 33 44 53 50 52 5f 49 4e 50 55 54 20 20 20 20  D3DSPR_INPUT    
9bd0: 20 20 20 20 20 20 3d 20 20 31 2c 20 2f 2f 20 49        =  1, // I
9be0: 6e 70 75 74 20 52 65 67 69 73 74 65 72 20 46 69  nput Register Fi
9bf0: 6c 65 0d 0a 20 20 20 20 44 33 44 53 50 52 5f 43  le..    D3DSPR_C
9c00: 4f 4e 53 54 20 20 20 20 20 20 20 20 20 20 3d 20  ONST          = 
9c10: 20 32 2c 20 2f 2f 20 43 6f 6e 73 74 61 6e 74 20   2, // Constant 
9c20: 52 65 67 69 73 74 65 72 20 46 69 6c 65 0d 0a 20  Register File.. 
9c30: 20 20 20 44 33 44 53 50 52 5f 41 44 44 52 20 20     D3DSPR_ADDR  
9c40: 20 20 20 20 20 20 20 20 20 3d 20 20 33 2c 20 2f           =  3, /
9c50: 2f 20 41 64 64 72 65 73 73 20 52 65 67 69 73 74  / Address Regist
9c60: 65 72 20 28 56 53 29 0d 0a 20 20 20 20 44 33 44  er (VS)..    D3D
9c70: 53 50 52 5f 54 45 58 54 55 52 45 20 20 20 20 20  SPR_TEXTURE     
9c80: 20 20 20 3d 20 20 33 2c 20 2f 2f 20 54 65 78 74     =  3, // Text
9c90: 75 72 65 20 52 65 67 69 73 74 65 72 20 46 69 6c  ure Register Fil
9ca0: 65 20 28 50 53 29 0d 0a 20 20 20 20 44 33 44 53  e (PS)..    D3DS
9cb0: 50 52 5f 52 41 53 54 4f 55 54 20 20 20 20 20 20  PR_RASTOUT      
9cc0: 20 20 3d 20 20 34 2c 20 2f 2f 20 52 61 73 74 65    =  4, // Raste
9cd0: 72 69 7a 65 72 20 52 65 67 69 73 74 65 72 20 46  rizer Register F
9ce0: 69 6c 65 0d 0a 20 20 20 20 44 33 44 53 50 52 5f  ile..    D3DSPR_
9cf0: 41 54 54 52 4f 55 54 20 20 20 20 20 20 20 20 3d  ATTROUT        =
9d00: 20 20 35 2c 20 2f 2f 20 41 74 74 72 69 62 75 74    5, // Attribut
9d10: 65 20 4f 75 74 70 75 74 20 52 65 67 69 73 74 65  e Output Registe
9d20: 72 20 46 69 6c 65 0d 0a 20 20 20 20 44 33 44 53  r File..    D3DS
9d30: 50 52 5f 54 45 58 43 52 44 4f 55 54 20 20 20 20  PR_TEXCRDOUT    
9d40: 20 20 3d 20 20 36 2c 20 2f 2f 20 54 65 78 74 75    =  6, // Textu
9d50: 72 65 20 43 6f 6f 72 64 69 6e 61 74 65 20 4f 75  re Coordinate Ou
9d60: 74 70 75 74 20 52 65 67 69 73 74 65 72 20 46 69  tput Register Fi
9d70: 6c 65 0d 0a 20 20 20 20 44 33 44 53 50 52 5f 4f  le..    D3DSPR_O
9d80: 55 54 50 55 54 20 20 20 20 20 20 20 20 20 3d 20  UTPUT         = 
9d90: 20 36 2c 20 2f 2f 20 4f 75 74 70 75 74 20 72 65   6, // Output re
9da0: 67 69 73 74 65 72 20 66 69 6c 65 20 66 6f 72 20  gister file for 
9db0: 56 53 33 2e 30 2b 0d 0a 20 20 20 20 44 33 44 53  VS3.0+..    D3DS
9dc0: 50 52 5f 43 4f 4e 53 54 49 4e 54 20 20 20 20 20  PR_CONSTINT     
9dd0: 20 20 3d 20 20 37 2c 20 2f 2f 20 43 6f 6e 73 74    =  7, // Const
9de0: 61 6e 74 20 49 6e 74 65 67 65 72 20 56 65 63 74  ant Integer Vect
9df0: 6f 72 20 52 65 67 69 73 74 65 72 20 46 69 6c 65  or Register File
9e00: 0d 0a 20 20 20 20 44 33 44 53 50 52 5f 43 4f 4c  ..    D3DSPR_COL
9e10: 4f 52 4f 55 54 20 20 20 20 20 20 20 3d 20 20 38  OROUT       =  8
9e20: 2c 20 2f 2f 20 43 6f 6c 6f 72 20 4f 75 74 70 75  , // Color Outpu
9e30: 74 20 52 65 67 69 73 74 65 72 20 46 69 6c 65 0d  t Register File.
9e40: 0a 20 20 20 20 44 33 44 53 50 52 5f 44 45 50 54  .    D3DSPR_DEPT
9e50: 48 4f 55 54 20 20 20 20 20 20 20 3d 20 20 39 2c  HOUT       =  9,
9e60: 20 2f 2f 20 44 65 70 74 68 20 4f 75 74 70 75 74   // Depth Output
9e70: 20 52 65 67 69 73 74 65 72 20 46 69 6c 65 0d 0a   Register File..
9e80: 20 20 20 20 44 33 44 53 50 52 5f 53 41 4d 50 4c      D3DSPR_SAMPL
9e90: 45 52 20 20 20 20 20 20 20 20 3d 20 31 30 2c 20  ER        = 10, 
9ea0: 2f 2f 20 53 61 6d 70 6c 65 72 20 53 74 61 74 65  // Sampler State
9eb0: 20 52 65 67 69 73 74 65 72 20 46 69 6c 65 0d 0a   Register File..
9ec0: 20 20 20 20 44 33 44 53 50 52 5f 43 4f 4e 53 54      D3DSPR_CONST
9ed0: 32 20 20 20 20 20 20 20 20 20 3d 20 31 31 2c 20  2         = 11, 
9ee0: 2f 2f 20 43 6f 6e 73 74 61 6e 74 20 52 65 67 69  // Constant Regi
9ef0: 73 74 65 72 20 46 69 6c 65 20 20 32 30 34 38 20  ster File  2048 
9f00: 2d 20 34 30 39 35 0d 0a 20 20 20 20 44 33 44 53  - 4095..    D3DS
9f10: 50 52 5f 43 4f 4e 53 54 33 20 20 20 20 20 20 20  PR_CONST3       
9f20: 20 20 3d 20 31 32 2c 20 2f 2f 20 43 6f 6e 73 74    = 12, // Const
9f30: 61 6e 74 20 52 65 67 69 73 74 65 72 20 46 69 6c  ant Register Fil
9f40: 65 20 20 34 30 39 36 20 2d 20 36 31 34 33 0d 0a  e  4096 - 6143..
9f50: 20 20 20 20 44 33 44 53 50 52 5f 43 4f 4e 53 54      D3DSPR_CONST
9f60: 34 20 20 20 20 20 20 20 20 20 3d 20 31 33 2c 20  4         = 13, 
9f70: 2f 2f 20 43 6f 6e 73 74 61 6e 74 20 52 65 67 69  // Constant Regi
9f80: 73 74 65 72 20 46 69 6c 65 20 20 36 31 34 34 20  ster File  6144 
9f90: 2d 20 38 31 39 31 0d 0a 20 20 20 20 44 33 44 53  - 8191..    D3DS
9fa0: 50 52 5f 43 4f 4e 53 54 42 4f 4f 4c 20 20 20 20  PR_CONSTBOOL    
9fb0: 20 20 3d 20 31 34 2c 20 2f 2f 20 43 6f 6e 73 74    = 14, // Const
9fc0: 61 6e 74 20 42 6f 6f 6c 65 61 6e 20 72 65 67 69  ant Boolean regi
9fd0: 73 74 65 72 20 66 69 6c 65 0d 0a 20 20 20 20 44  ster file..    D
9fe0: 33 44 53 50 52 5f 4c 4f 4f 50 20 20 20 20 20 20  3DSPR_LOOP      
9ff0: 20 20 20 20 20 3d 20 31 35 2c 20 2f 2f 20 4c 6f       = 15, // Lo
a000: 6f 70 20 63 6f 75 6e 74 65 72 20 72 65 67 69 73  op counter regis
a010: 74 65 72 20 66 69 6c 65 0d 0a 20 20 20 20 44 33  ter file..    D3
a020: 44 53 50 52 5f 54 45 4d 50 46 4c 4f 41 54 31 36  DSPR_TEMPFLOAT16
a030: 20 20 20 20 3d 20 31 36 2c 20 2f 2f 20 31 36 2d      = 16, // 16-
a040: 62 69 74 20 66 6c 6f 61 74 20 74 65 6d 70 20 72  bit float temp r
a050: 65 67 69 73 74 65 72 20 66 69 6c 65 0d 0a 20 20  egister file..  
a060: 20 20 44 33 44 53 50 52 5f 4d 49 53 43 54 59 50    D3DSPR_MISCTYP
a070: 45 20 20 20 20 20 20 20 3d 20 31 37 2c 20 2f 2f  E       = 17, //
a080: 20 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 28   Miscellaneous (
a090: 73 69 6e 67 6c 65 29 20 72 65 67 69 73 74 65 72  single) register
a0a0: 73 2e 0d 0a 20 20 20 20 44 33 44 53 50 52 5f 4c  s...    D3DSPR_L
a0b0: 41 42 45 4c 20 20 20 20 20 20 20 20 20 20 3d 20  ABEL          = 
a0c0: 31 38 2c 20 2f 2f 20 4c 61 62 65 6c 0d 0a 20 20  18, // Label..  
a0d0: 20 20 44 33 44 53 50 52 5f 50 52 45 44 49 43 41    D3DSPR_PREDICA
a0e0: 54 45 20 20 20 20 20 20 3d 20 31 39 20 20 2f 2f  TE      = 19  //
a0f0: 20 50 72 65 64 69 63 61 74 65 20 72 65 67 69 73   Predicate regis
a100: 74 65 72 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79  ter..}..alias Ty
a110: 70 65 44 65 66 21 28 75 69 6e 74 29 20 44 33 44  peDef!(uint) D3D
a120: 53 48 41 44 45 52 5f 50 41 52 41 4d 5f 52 45 47  SHADER_PARAM_REG
a130: 49 53 54 45 52 5f 54 59 50 45 3b 0d 0a 0d 0a 2f  ISTER_TYPE;..../
a140: 2f 20 54 68 65 20 6d 69 73 63 65 6c 6c 61 6e 65  / The miscellane
a150: 6f 75 73 20 72 65 67 69 73 74 65 72 20 66 69 6c  ous register fil
a160: 65 20 28 44 33 44 53 50 52 5f 4d 49 53 43 54 59  e (D3DSPR_MISCTY
a170: 50 45 53 29 0d 0a 2f 2f 20 63 6f 6e 74 61 69 6e  PES)..// contain
a180: 73 20 72 65 67 69 73 74 65 72 20 74 79 70 65 73  s register types
a190: 20 66 6f 72 20 77 68 69 63 68 20 74 68 65 72 65   for which there
a1a0: 20 69 73 20 6f 6e 6c 79 20 65 76 65 72 20 6f 6e   is only ever on
a1b0: 65 0d 0a 2f 2f 20 72 65 67 69 73 74 65 72 20 28  e..// register (
a1c0: 69 2e 65 2e 20 74 68 65 20 72 65 67 69 73 74 65  i.e. the registe
a1d0: 72 20 23 20 69 73 20 6e 6f 74 20 6e 65 65 64 65  r # is not neede
a1e0: 64 29 2e 0d 0a 2f 2f 20 52 61 74 68 65 72 20 74  d)...// Rather t
a1f0: 68 61 6e 20 75 73 65 20 75 70 20 61 64 64 69 74  han use up addit
a200: 69 6f 6e 61 6c 20 72 65 67 69 73 74 65 72 20 74  ional register t
a210: 79 70 65 73 20 66 6f 72 20 73 75 63 68 0d 0a 2f  ypes for such../
a220: 2f 20 72 65 67 69 73 74 65 72 73 2c 20 74 68 65  / registers, the
a230: 79 20 61 72 65 20 64 65 66 69 6e 65 64 0d 0a 2f  y are defined../
a240: 2f 20 61 73 20 70 61 72 74 69 63 75 6c 61 72 20  / as particular 
a250: 6f 66 66 73 65 74 73 20 69 6e 74 6f 20 74 68 65  offsets into the
a260: 20 6d 69 73 63 2e 20 72 65 67 69 73 74 65 72 20   misc. register 
a270: 66 69 6c 65 3a 0d 0a 65 6e 75 6d 20 3a 20 44 33  file:..enum : D3
a280: 44 53 48 41 44 45 52 5f 4d 49 53 43 54 59 50 45  DSHADER_MISCTYPE
a290: 5f 4f 46 46 53 45 54 53 20 7b 0d 0a 20 20 20 20  _OFFSETS {..    
a2a0: 44 33 44 53 4d 4f 5f 50 4f 53 49 54 49 4f 4e 20  D3DSMO_POSITION 
a2b0: 20 20 3d 20 30 2c 20 2f 2f 20 49 6e 70 75 74 20    = 0, // Input 
a2c0: 70 6f 73 69 74 69 6f 6e 20 78 2c 79 2c 7a 2c 72  position x,y,z,r
a2d0: 68 77 20 28 50 53 29 0d 0a 20 20 20 20 44 33 44  hw (PS)..    D3D
a2e0: 53 4d 4f 5f 46 41 43 45 20 20 20 3d 20 31 2c 20  SMO_FACE   = 1, 
a2f0: 2f 2f 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  // Floating poin
a300: 74 20 70 72 69 6d 69 74 69 76 65 20 61 72 65 61  t primitive area
a310: 20 28 50 53 29 0d 0a 7d 0d 0a 61 6c 69 61 73 20   (PS)..}..alias 
a320: 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44  TypeDef!(uint) D
a330: 33 44 53 48 41 44 45 52 5f 4d 49 53 43 54 59 50  3DSHADER_MISCTYP
a340: 45 5f 4f 46 46 53 45 54 53 3b 0d 0a 0d 0a 2f 2f  E_OFFSETS;....//
a350: 20 52 65 67 69 73 74 65 72 20 6f 66 66 73 65 74   Register offset
a360: 73 20 69 6e 20 74 68 65 20 52 61 73 74 65 72 69  s in the Rasteri
a370: 7a 65 72 20 52 65 67 69 73 74 65 72 20 46 69 6c  zer Register Fil
a380: 65 0d 0a 2f 2f 0d 0a 65 6e 75 6d 20 3a 20 44 33  e..//..enum : D3
a390: 44 56 53 5f 52 41 53 54 4f 55 54 5f 4f 46 46 53  DVS_RASTOUT_OFFS
a3a0: 45 54 53 20 7b 0d 0a 20 20 20 20 44 33 44 53 52  ETS {..    D3DSR
a3b0: 4f 5f 50 4f 53 49 54 49 4f 4e 20 3d 20 30 2c 0d  O_POSITION = 0,.
a3c0: 0a 20 20 20 20 44 33 44 53 52 4f 5f 46 4f 47 2c  .    D3DSRO_FOG,
a3d0: 0d 0a 20 20 20 20 44 33 44 53 52 4f 5f 50 4f 49  ..    D3DSRO_POI
a3e0: 4e 54 5f 53 49 5a 45 0d 0a 7d 0d 0a 61 6c 69 61  NT_SIZE..}..alia
a3f0: 73 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29  s TypeDef!(uint)
a400: 20 44 33 44 56 53 5f 52 41 53 54 4f 55 54 5f 4f   D3DVS_RASTOUT_O
a410: 46 46 53 45 54 53 3b 0d 0a 0d 0a 2f 2f 20 53 6f  FFSETS;....// So
a420: 75 72 63 65 20 6f 70 65 72 61 6e 64 20 61 64 64  urce operand add
a430: 72 65 73 73 69 6e 67 20 6d 6f 64 65 73 0d 0a 0d  ressing modes...
a440: 0a 63 6f 6e 73 74 20 44 33 44 56 53 5f 41 44 44  .const D3DVS_ADD
a450: 52 45 53 53 4d 4f 44 45 5f 53 48 49 46 54 20 3d  RESSMODE_SHIFT =
a460: 20 31 33 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56   13;..const D3DV
a470: 53 5f 41 44 44 52 45 53 53 4d 4f 44 45 5f 4d 41  S_ADDRESSMODE_MA
a480: 53 4b 20 3d 20 28 31 20 3c 3c 20 44 33 44 56 53  SK = (1 << D3DVS
a490: 5f 41 44 44 52 45 53 53 4d 4f 44 45 5f 53 48 49  _ADDRESSMODE_SHI
a4a0: 46 54 29 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  FT);....enum : D
a4b0: 33 44 56 53 5f 41 44 44 52 45 53 53 4d 4f 44 45  3DVS_ADDRESSMODE
a4c0: 5f 54 59 50 45 20 7b 0d 0a 20 20 20 20 44 33 44  _TYPE {..    D3D
a4d0: 56 53 5f 41 44 44 52 4d 4f 44 45 5f 41 42 53 4f  VS_ADDRMODE_ABSO
a4e0: 4c 55 54 45 20 20 3d 20 28 30 20 3c 3c 20 44 33  LUTE  = (0 << D3
a4f0: 44 56 53 5f 41 44 44 52 45 53 53 4d 4f 44 45 5f  DVS_ADDRESSMODE_
a500: 53 48 49 46 54 29 2c 0d 0a 20 20 20 20 44 33 44  SHIFT),..    D3D
a510: 56 53 5f 41 44 44 52 4d 4f 44 45 5f 52 45 4c 41  VS_ADDRMODE_RELA
a520: 54 49 56 45 20 20 3d 20 28 31 20 3c 3c 20 44 33  TIVE  = (1 << D3
a530: 44 56 53 5f 41 44 44 52 45 53 53 4d 4f 44 45 5f  DVS_ADDRESSMODE_
a540: 53 48 49 46 54 29 0d 0a 7d 0d 0a 61 6c 69 61 73  SHIFT)..}..alias
a550: 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20   TypeDef!(uint) 
a560: 44 33 44 56 53 5f 41 44 44 52 45 53 53 4d 4f 44  D3DVS_ADDRESSMOD
a570: 45 5f 54 59 50 45 3b 0d 0a 0d 0a 63 6f 6e 73 74  E_TYPE;....const
a580: 20 44 33 44 53 48 41 44 45 52 5f 41 44 44 52 45   D3DSHADER_ADDRE
a590: 53 53 4d 4f 44 45 5f 53 48 49 46 54 20 3d 20 31  SSMODE_SHIFT = 1
a5a0: 33 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 53 48 41  3;..const D3DSHA
a5b0: 44 45 52 5f 41 44 44 52 45 53 53 4d 4f 44 45 5f  DER_ADDRESSMODE_
a5c0: 4d 41 53 4b 20 3d 20 28 31 20 3c 3c 20 44 33 44  MASK = (1 << D3D
a5d0: 53 48 41 44 45 52 5f 41 44 44 52 45 53 53 4d 4f  SHADER_ADDRESSMO
a5e0: 44 45 5f 53 48 49 46 54 29 3b 0d 0a 0d 0a 65 6e  DE_SHIFT);....en
a5f0: 75 6d 20 3a 20 44 33 44 53 48 41 44 45 52 5f 41  um : D3DSHADER_A
a600: 44 44 52 45 53 53 4d 4f 44 45 5f 54 59 50 45 20  DDRESSMODE_TYPE 
a610: 7b 0d 0a 20 20 20 20 44 33 44 53 48 41 44 45 52  {..    D3DSHADER
a620: 5f 41 44 44 52 4d 4f 44 45 5f 41 42 53 4f 4c 55  _ADDRMODE_ABSOLU
a630: 54 45 20 20 3d 20 28 30 20 3c 3c 20 44 33 44 53  TE  = (0 << D3DS
a640: 48 41 44 45 52 5f 41 44 44 52 45 53 53 4d 4f 44  HADER_ADDRESSMOD
a650: 45 5f 53 48 49 46 54 29 2c 0d 0a 20 20 20 20 44  E_SHIFT),..    D
a660: 33 44 53 48 41 44 45 52 5f 41 44 44 52 4d 4f 44  3DSHADER_ADDRMOD
a670: 45 5f 52 45 4c 41 54 49 56 45 20 20 3d 20 28 31  E_RELATIVE  = (1
a680: 20 3c 3c 20 44 33 44 53 48 41 44 45 52 5f 41 44   << D3DSHADER_AD
a690: 44 52 45 53 53 4d 4f 44 45 5f 53 48 49 46 54 29  DRESSMODE_SHIFT)
a6a0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
a6b0: 65 66 21 28 75 69 6e 74 29 20 44 33 44 53 48 41  ef!(uint) D3DSHA
a6c0: 44 45 52 5f 41 44 44 52 45 53 53 4d 4f 44 45 5f  DER_ADDRESSMODE_
a6d0: 54 59 50 45 3b 0d 0a 0d 0a 2f 2f 20 53 6f 75 72  TYPE;....// Sour
a6e0: 63 65 20 6f 70 65 72 61 6e 64 20 73 77 69 7a 7a  ce operand swizz
a6f0: 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 73 0d 0a  le definitions..
a700: 2f 2f 0d 0a 63 6f 6e 73 74 20 44 33 44 56 53 5f  //..const D3DVS_
a710: 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20 3d 20  SWIZZLE_SHIFT = 
a720: 31 36 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56 53  16;..const D3DVS
a730: 5f 53 57 49 5a 5a 4c 45 5f 4d 41 53 4b 20 3d 20  _SWIZZLE_MASK = 
a740: 30 78 30 30 46 46 30 30 30 30 3b 0d 0a 0d 0a 2f  0x00FF0000;..../
a750: 2f 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  / The following 
a760: 62 69 74 73 20 64 65 66 69 6e 65 20 77 68 65 72  bits define wher
a770: 65 20 74 6f 20 74 61 6b 65 20 63 6f 6d 70 6f 6e  e to take compon
a780: 65 6e 74 20 58 20 66 72 6f 6d 3a 0d 0a 0d 0a 63  ent X from:....c
a790: 6f 6e 73 74 20 44 33 44 56 53 5f 58 5f 58 20 3d  onst D3DVS_X_X =
a7a0: 20 28 30 3c 3c 44 33 44 56 53 5f 53 57 49 5a 5a   (0<<D3DVS_SWIZZ
a7b0: 4c 45 5f 53 48 49 46 54 29 3b 0d 0a 63 6f 6e 73  LE_SHIFT);..cons
a7c0: 74 20 44 33 44 56 53 5f 58 5f 59 20 3d 20 28 31  t D3DVS_X_Y = (1
a7d0: 3c 3c 44 33 44 56 53 5f 53 57 49 5a 5a 4c 45 5f  <<D3DVS_SWIZZLE_
a7e0: 53 48 49 46 54 29 3b 0d 0a 63 6f 6e 73 74 20 44  SHIFT);..const D
a7f0: 33 44 56 53 5f 58 5f 5a 20 3d 20 28 32 3c 3c 44  3DVS_X_Z = (2<<D
a800: 33 44 56 53 5f 53 57 49 5a 5a 4c 45 5f 53 48 49  3DVS_SWIZZLE_SHI
a810: 46 54 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56  FT);..const D3DV
a820: 53 5f 58 5f 57 20 3d 20 28 33 3c 3c 44 33 44 56  S_X_W = (3<<D3DV
a830: 53 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 29  S_SWIZZLE_SHIFT)
a840: 3b 0d 0a 0d 0a 2f 2f 20 54 68 65 20 66 6f 6c 6c  ;....// The foll
a850: 6f 77 69 6e 67 20 62 69 74 73 20 64 65 66 69 6e  owing bits defin
a860: 65 20 77 68 65 72 65 20 74 6f 20 74 61 6b 65 20  e where to take 
a870: 63 6f 6d 70 6f 6e 65 6e 74 20 59 20 66 72 6f 6d  component Y from
a880: 3a 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 56 53  :....const D3DVS
a890: 5f 59 5f 58 20 3d 20 28 30 3c 3c 28 44 33 44 56  _Y_X = (0<<(D3DV
a8a0: 53 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 2b  S_SWIZZLE_SHIFT+
a8b0: 32 29 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56  2));..const D3DV
a8c0: 53 5f 59 5f 59 20 3d 20 28 31 3c 3c 28 44 33 44  S_Y_Y = (1<<(D3D
a8d0: 56 53 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54  VS_SWIZZLE_SHIFT
a8e0: 2b 32 29 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  +2));..const D3D
a8f0: 56 53 5f 59 5f 5a 20 3d 20 28 32 3c 3c 28 44 33  VS_Y_Z = (2<<(D3
a900: 44 56 53 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46  DVS_SWIZZLE_SHIF
a910: 54 2b 32 29 29 3b 0d 0a 63 6f 6e 73 74 20 44 33  T+2));..const D3
a920: 44 56 53 5f 59 5f 57 20 3d 20 28 33 3c 3c 28 44  DVS_Y_W = (3<<(D
a930: 33 44 56 53 5f 53 57 49 5a 5a 4c 45 5f 53 48 49  3DVS_SWIZZLE_SHI
a940: 46 54 2b 32 29 29 3b 0d 0a 0d 0a 2f 2f 20 54 68  FT+2));....// Th
a950: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 62 69 74 73  e following bits
a960: 20 64 65 66 69 6e 65 20 77 68 65 72 65 20 74 6f   define where to
a970: 20 74 61 6b 65 20 63 6f 6d 70 6f 6e 65 6e 74 20   take component 
a980: 5a 20 66 72 6f 6d 3a 0d 0a 0d 0a 63 6f 6e 73 74  Z from:....const
a990: 20 44 33 44 56 53 5f 5a 5f 58 20 3d 20 28 30 3c   D3DVS_Z_X = (0<
a9a0: 3c 28 44 33 44 56 53 5f 53 57 49 5a 5a 4c 45 5f  <(D3DVS_SWIZZLE_
a9b0: 53 48 49 46 54 2b 34 29 29 3b 0d 0a 63 6f 6e 73  SHIFT+4));..cons
a9c0: 74 20 44 33 44 56 53 5f 5a 5f 59 20 3d 20 28 31  t D3DVS_Z_Y = (1
a9d0: 3c 3c 28 44 33 44 56 53 5f 53 57 49 5a 5a 4c 45  <<(D3DVS_SWIZZLE
a9e0: 5f 53 48 49 46 54 2b 34 29 29 3b 0d 0a 63 6f 6e  _SHIFT+4));..con
a9f0: 73 74 20 44 33 44 56 53 5f 5a 5f 5a 20 3d 20 28  st D3DVS_Z_Z = (
aa00: 32 3c 3c 28 44 33 44 56 53 5f 53 57 49 5a 5a 4c  2<<(D3DVS_SWIZZL
aa10: 45 5f 53 48 49 46 54 2b 34 29 29 3b 0d 0a 63 6f  E_SHIFT+4));..co
aa20: 6e 73 74 20 44 33 44 56 53 5f 5a 5f 57 20 3d 20  nst D3DVS_Z_W = 
aa30: 28 33 3c 3c 28 44 33 44 56 53 5f 53 57 49 5a 5a  (3<<(D3DVS_SWIZZ
aa40: 4c 45 5f 53 48 49 46 54 2b 34 29 29 3b 0d 0a 0d  LE_SHIFT+4));...
aa50: 0a 2f 2f 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e  .// The followin
aa60: 67 20 62 69 74 73 20 64 65 66 69 6e 65 20 77 68  g bits define wh
aa70: 65 72 65 20 74 6f 20 74 61 6b 65 20 63 6f 6d 70  ere to take comp
aa80: 6f 6e 65 6e 74 20 57 20 66 72 6f 6d 3a 0d 0a 0d  onent W from:...
aa90: 0a 63 6f 6e 73 74 20 44 33 44 56 53 5f 57 5f 58  .const D3DVS_W_X
aaa0: 20 3d 20 28 30 3c 3c 28 44 33 44 56 53 5f 53 57   = (0<<(D3DVS_SW
aab0: 49 5a 5a 4c 45 5f 53 48 49 46 54 2b 36 29 29 3b  IZZLE_SHIFT+6));
aac0: 0d 0a 63 6f 6e 73 74 20 44 33 44 56 53 5f 57 5f  ..const D3DVS_W_
aad0: 59 20 3d 20 28 31 3c 3c 28 44 33 44 56 53 5f 53  Y = (1<<(D3DVS_S
aae0: 57 49 5a 5a 4c 45 5f 53 48 49 46 54 2b 36 29 29  WIZZLE_SHIFT+6))
aaf0: 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56 53 5f 57  ;..const D3DVS_W
ab00: 5f 5a 20 3d 20 28 32 3c 3c 28 44 33 44 56 53 5f  _Z = (2<<(D3DVS_
ab10: 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 2b 36 29  SWIZZLE_SHIFT+6)
ab20: 29 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 56 53 5f  );..const D3DVS_
ab30: 57 5f 57 20 3d 20 28 33 3c 3c 28 44 33 44 56 53  W_W = (3<<(D3DVS
ab40: 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 2b 36  _SWIZZLE_SHIFT+6
ab50: 29 29 3b 0d 0a 0d 0a 2f 2f 20 56 61 6c 75 65 20  ));....// Value 
ab60: 77 68 65 6e 20 74 68 65 72 65 20 69 73 20 6e 6f  when there is no
ab70: 20 73 77 69 7a 7a 6c 65 20 28 58 20 69 73 20 74   swizzle (X is t
ab80: 61 6b 65 6e 20 66 72 6f 6d 20 58 2c 20 59 20 69  aken from X, Y i
ab90: 73 20 74 61 6b 65 6e 20 66 72 6f 6d 20 59 2c 0d  s taken from Y,.
aba0: 0a 2f 2f 20 5a 20 69 73 20 74 61 6b 65 6e 20 66  .// Z is taken f
abb0: 72 6f 6d 20 5a 2c 20 57 20 69 73 20 74 61 6b 65  rom Z, W is take
abc0: 6e 20 66 72 6f 6d 20 57 0d 0a 2f 2f 0d 0a 63 6f  n from W..//..co
abd0: 6e 73 74 20 44 33 44 56 53 5f 4e 4f 53 57 49 5a  nst D3DVS_NOSWIZ
abe0: 5a 4c 45 20 3d 20 28 44 33 44 56 53 5f 58 5f 58  ZLE = (D3DVS_X_X
abf0: 7c 44 33 44 56 53 5f 59 5f 59 7c 44 33 44 56 53  |D3DVS_Y_Y|D3DVS
ac00: 5f 5a 5f 5a 7c 44 33 44 56 53 5f 57 5f 57 29 3b  _Z_Z|D3DVS_W_W);
ac10: 0d 0a 0d 0a 2f 2f 20 73 6f 75 72 63 65 20 70 61  ....// source pa
ac20: 72 61 6d 65 74 65 72 20 73 77 69 7a 7a 6c 65 0d  rameter swizzle.
ac30: 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 53 57 49  .const D3DSP_SWI
ac40: 5a 5a 4c 45 5f 53 48 49 46 54 20 3d 20 31 36 3b  ZZLE_SHIFT = 16;
ac50: 0d 0a 63 6f 6e 73 74 20 44 33 44 53 50 5f 53 57  ..const D3DSP_SW
ac60: 49 5a 5a 4c 45 5f 4d 41 53 4b 20 3d 20 30 78 30  IZZLE_MASK = 0x0
ac70: 30 46 46 30 30 30 30 3b 0d 0a 0d 0a 63 6f 6e 73  0FF0000;....cons
ac80: 74 20 44 33 44 53 50 5f 4e 4f 53 57 49 5a 5a 4c  t D3DSP_NOSWIZZL
ac90: 45 20 3d 20 28 20 28 30 20 3c 3c 20 28 44 33 44  E = ( (0 << (D3D
aca0: 53 50 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54  SP_SWIZZLE_SHIFT
acb0: 20 2b 20 30 29 29 20 7c 0d 0a 20 20 20 20 20 20   + 0)) |..      
acc0: 28 31 20 3c 3c 20 28 44 33 44 53 50 5f 53 57 49  (1 << (D3DSP_SWI
acd0: 5a 5a 4c 45 5f 53 48 49 46 54 20 2b 20 32 29 29  ZZLE_SHIFT + 2))
ace0: 20 7c 0d 0a 20 20 20 20 20 20 28 32 20 3c 3c 20   |..      (2 << 
acf0: 28 44 33 44 53 50 5f 53 57 49 5a 5a 4c 45 5f 53  (D3DSP_SWIZZLE_S
ad00: 48 49 46 54 20 2b 20 34 29 29 20 7c 0d 0a 20 20  HIFT + 4)) |..  
ad10: 20 20 20 20 28 33 20 3c 3c 20 28 44 33 44 53 50      (3 << (D3DSP
ad20: 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20 2b  _SWIZZLE_SHIFT +
ad30: 20 36 29 29 20 29 3b 0d 0a 0d 0a 2f 2f 20 70 69   6)) );....// pi
ad40: 78 65 6c 2d 73 68 61 64 65 72 20 73 77 69 7a 7a  xel-shader swizz
ad50: 6c 65 20 6f 70 73 0d 0a 63 6f 6e 73 74 20 44 33  le ops..const D3
ad60: 44 53 50 5f 52 45 50 4c 49 43 41 54 45 52 45 44  DSP_REPLICATERED
ad70: 20 3d 0d 0a 20 20 20 20 28 20 28 30 20 3c 3c 20   =..    ( (0 << 
ad80: 28 44 33 44 53 50 5f 53 57 49 5a 5a 4c 45 5f 53  (D3DSP_SWIZZLE_S
ad90: 48 49 46 54 20 2b 20 30 29 29 20 7c 0d 0a 20 20  HIFT + 0)) |..  
ada0: 20 20 20 20 28 30 20 3c 3c 20 28 44 33 44 53 50      (0 << (D3DSP
adb0: 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20 2b  _SWIZZLE_SHIFT +
adc0: 20 32 29 29 20 7c 0d 0a 20 20 20 20 20 20 28 30   2)) |..      (0
add0: 20 3c 3c 20 28 44 33 44 53 50 5f 53 57 49 5a 5a   << (D3DSP_SWIZZ
ade0: 4c 45 5f 53 48 49 46 54 20 2b 20 34 29 29 20 7c  LE_SHIFT + 4)) |
adf0: 0d 0a 20 20 20 20 20 20 28 30 20 3c 3c 20 28 44  ..      (0 << (D
ae00: 33 44 53 50 5f 53 57 49 5a 5a 4c 45 5f 53 48 49  3DSP_SWIZZLE_SHI
ae10: 46 54 20 2b 20 36 29 29 20 29 3b 0d 0a 0d 0a 63  FT + 6)) );....c
ae20: 6f 6e 73 74 20 44 33 44 53 50 5f 52 45 50 4c 49  onst D3DSP_REPLI
ae30: 43 41 54 45 47 52 45 45 4e 20 3d 0d 0a 20 20 20  CATEGREEN =..   
ae40: 20 28 20 28 31 20 3c 3c 20 28 44 33 44 53 50 5f   ( (1 << (D3DSP_
ae50: 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20 2b 20  SWIZZLE_SHIFT + 
ae60: 30 29 29 20 7c 0d 0a 20 20 20 20 20 20 28 31 20  0)) |..      (1 
ae70: 3c 3c 20 28 44 33 44 53 50 5f 53 57 49 5a 5a 4c  << (D3DSP_SWIZZL
ae80: 45 5f 53 48 49 46 54 20 2b 20 32 29 29 20 7c 0d  E_SHIFT + 2)) |.
ae90: 0a 20 20 20 20 20 20 28 31 20 3c 3c 20 28 44 33  .      (1 << (D3
aea0: 44 53 50 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46  DSP_SWIZZLE_SHIF
aeb0: 54 20 2b 20 34 29 29 20 7c 0d 0a 20 20 20 20 20  T + 4)) |..     
aec0: 20 28 31 20 3c 3c 20 28 44 33 44 53 50 5f 53 57   (1 << (D3DSP_SW
aed0: 49 5a 5a 4c 45 5f 53 48 49 46 54 20 2b 20 36 29  IZZLE_SHIFT + 6)
aee0: 29 20 29 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33  ) );....const D3
aef0: 44 53 50 5f 52 45 50 4c 49 43 41 54 45 42 4c 55  DSP_REPLICATEBLU
af00: 45 20 3d 0d 0a 20 20 20 20 28 20 28 32 20 3c 3c  E =..    ( (2 <<
af10: 20 28 44 33 44 53 50 5f 53 57 49 5a 5a 4c 45 5f   (D3DSP_SWIZZLE_
af20: 53 48 49 46 54 20 2b 20 30 29 29 20 7c 0d 0a 20  SHIFT + 0)) |.. 
af30: 20 20 20 20 20 28 32 20 3c 3c 20 28 44 33 44 53       (2 << (D3DS
af40: 50 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20  P_SWIZZLE_SHIFT 
af50: 2b 20 32 29 29 20 7c 0d 0a 20 20 20 20 20 20 28  + 2)) |..      (
af60: 32 20 3c 3c 20 28 44 33 44 53 50 5f 53 57 49 5a  2 << (D3DSP_SWIZ
af70: 5a 4c 45 5f 53 48 49 46 54 20 2b 20 34 29 29 20  ZLE_SHIFT + 4)) 
af80: 7c 0d 0a 20 20 20 20 20 20 28 32 20 3c 3c 20 28  |..      (2 << (
af90: 44 33 44 53 50 5f 53 57 49 5a 5a 4c 45 5f 53 48  D3DSP_SWIZZLE_SH
afa0: 49 46 54 20 2b 20 36 29 29 20 29 3b 0d 0a 0d 0a  IFT + 6)) );....
afb0: 63 6f 6e 73 74 20 44 33 44 53 50 5f 52 45 50 4c  const D3DSP_REPL
afc0: 49 43 41 54 45 41 4c 50 48 41 20 3d 0d 0a 20 20  ICATEALPHA =..  
afd0: 20 20 28 20 28 33 20 3c 3c 20 28 44 33 44 53 50    ( (3 << (D3DSP
afe0: 5f 53 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20 2b  _SWIZZLE_SHIFT +
aff0: 20 30 29 29 20 7c 0d 0a 20 20 20 20 20 20 28 33   0)) |..      (3
b000: 20 3c 3c 20 28 44 33 44 53 50 5f 53 57 49 5a 5a   << (D3DSP_SWIZZ
b010: 4c 45 5f 53 48 49 46 54 20 2b 20 32 29 29 20 7c  LE_SHIFT + 2)) |
b020: 0d 0a 20 20 20 20 20 20 28 33 20 3c 3c 20 28 44  ..      (3 << (D
b030: 33 44 53 50 5f 53 57 49 5a 5a 4c 45 5f 53 48 49  3DSP_SWIZZLE_SHI
b040: 46 54 20 2b 20 34 29 29 20 7c 0d 0a 20 20 20 20  FT + 4)) |..    
b050: 20 20 28 33 20 3c 3c 20 28 44 33 44 53 50 5f 53    (3 << (D3DSP_S
b060: 57 49 5a 5a 4c 45 5f 53 48 49 46 54 20 2b 20 36  WIZZLE_SHIFT + 6
b070: 29 29 20 29 3b 0d 0a 0d 0a 2f 2f 20 73 6f 75 72  )) );....// sour
b080: 63 65 20 70 61 72 61 6d 65 74 65 72 20 6d 6f 64  ce parameter mod
b090: 69 66 69 65 72 73 0d 0a 63 6f 6e 73 74 20 44 33  ifiers..const D3
b0a0: 44 53 50 5f 53 52 43 4d 4f 44 5f 53 48 49 46 54  DSP_SRCMOD_SHIFT
b0b0: 20 3d 20 32 34 3b 0d 0a 63 6f 6e 73 74 20 44 33   = 24;..const D3
b0c0: 44 53 50 5f 53 52 43 4d 4f 44 5f 4d 41 53 4b 20  DSP_SRCMOD_MASK 
b0d0: 3d 20 30 78 30 46 30 30 30 30 30 30 3b 0d 0a 0d  = 0x0F000000;...
b0e0: 0a 65 6e 75 6d 20 3a 20 44 33 44 53 48 41 44 45  .enum : D3DSHADE
b0f0: 52 5f 50 41 52 41 4d 5f 53 52 43 4d 4f 44 5f 54  R_PARAM_SRCMOD_T
b100: 59 50 45 20 7b 0d 0a 20 20 20 20 44 33 44 53 50  YPE {..    D3DSP
b110: 53 4d 5f 4e 4f 4e 45 20 20 20 20 3d 20 30 3c 3c  SM_NONE    = 0<<
b120: 44 33 44 53 50 5f 53 52 43 4d 4f 44 5f 53 48 49  D3DSP_SRCMOD_SHI
b130: 46 54 2c 20 2f 2f 20 6e 6f 70 0d 0a 20 20 20 20  FT, // nop..    
b140: 44 33 44 53 50 53 4d 5f 4e 45 47 20 20 20 20 20  D3DSPSM_NEG     
b150: 3d 20 31 3c 3c 44 33 44 53 50 5f 53 52 43 4d 4f  = 1<<D3DSP_SRCMO
b160: 44 5f 53 48 49 46 54 2c 20 2f 2f 20 6e 65 67 61  D_SHIFT, // nega
b170: 74 65 0d 0a 20 20 20 20 44 33 44 53 50 53 4d 5f  te..    D3DSPSM_
b180: 42 49 41 53 20 20 20 20 3d 20 32 3c 3c 44 33 44  BIAS    = 2<<D3D
b190: 53 50 5f 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c  SP_SRCMOD_SHIFT,
b1a0: 20 2f 2f 20 62 69 61 73 0d 0a 20 20 20 20 44 33   // bias..    D3
b1b0: 44 53 50 53 4d 5f 42 49 41 53 4e 45 47 20 3d 20  DSPSM_BIASNEG = 
b1c0: 33 3c 3c 44 33 44 53 50 5f 53 52 43 4d 4f 44 5f  3<<D3DSP_SRCMOD_
b1d0: 53 48 49 46 54 2c 20 2f 2f 20 62 69 61 73 20 61  SHIFT, // bias a
b1e0: 6e 64 20 6e 65 67 61 74 65 0d 0a 20 20 20 20 44  nd negate..    D
b1f0: 33 44 53 50 53 4d 5f 53 49 47 4e 20 20 20 20 3d  3DSPSM_SIGN    =
b200: 20 34 3c 3c 44 33 44 53 50 5f 53 52 43 4d 4f 44   4<<D3DSP_SRCMOD
b210: 5f 53 48 49 46 54 2c 20 2f 2f 20 73 69 67 6e 0d  _SHIFT, // sign.
b220: 0a 20 20 20 20 44 33 44 53 50 53 4d 5f 53 49 47  .    D3DSPSM_SIG
b230: 4e 4e 45 47 20 3d 20 35 3c 3c 44 33 44 53 50 5f  NNEG = 5<<D3DSP_
b240: 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c 20 2f 2f  SRCMOD_SHIFT, //
b250: 20 73 69 67 6e 20 61 6e 64 20 6e 65 67 61 74 65   sign and negate
b260: 0d 0a 20 20 20 20 44 33 44 53 50 53 4d 5f 43 4f  ..    D3DSPSM_CO
b270: 4d 50 20 20 20 20 3d 20 36 3c 3c 44 33 44 53 50  MP    = 6<<D3DSP
b280: 5f 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c 20 2f  _SRCMOD_SHIFT, /
b290: 2f 20 63 6f 6d 70 6c 65 6d 65 6e 74 0d 0a 20 20  / complement..  
b2a0: 20 20 44 33 44 53 50 53 4d 5f 58 32 20 20 20 20    D3DSPSM_X2    
b2b0: 20 20 3d 20 37 3c 3c 44 33 44 53 50 5f 53 52 43    = 7<<D3DSP_SRC
b2c0: 4d 4f 44 5f 53 48 49 46 54 2c 20 2f 2f 20 2a 32  MOD_SHIFT, // *2
b2d0: 0d 0a 20 20 20 20 44 33 44 53 50 53 4d 5f 58 32  ..    D3DSPSM_X2
b2e0: 4e 45 47 20 20 20 3d 20 38 3c 3c 44 33 44 53 50  NEG   = 8<<D3DSP
b2f0: 5f 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c 20 2f  _SRCMOD_SHIFT, /
b300: 2f 20 2a 32 20 61 6e 64 20 6e 65 67 61 74 65 0d  / *2 and negate.
b310: 0a 20 20 20 20 44 33 44 53 50 53 4d 5f 44 5a 20  .    D3DSPSM_DZ 
b320: 20 20 20 20 20 3d 20 39 3c 3c 44 33 44 53 50 5f       = 9<<D3DSP_
b330: 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c 20 2f 2f  SRCMOD_SHIFT, //
b340: 20 64 69 76 69 64 65 20 74 68 72 6f 75 67 68 20   divide through 
b350: 62 79 20 7a 20 63 6f 6d 70 6f 6e 65 6e 74 0d 0a  by z component..
b360: 20 20 20 20 44 33 44 53 50 53 4d 5f 44 57 20 20      D3DSPSM_DW  
b370: 20 20 20 20 3d 20 31 30 3c 3c 44 33 44 53 50 5f      = 10<<D3DSP_
b380: 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c 20 2f 2f  SRCMOD_SHIFT, //
b390: 20 64 69 76 69 64 65 20 74 68 72 6f 75 67 68 20   divide through 
b3a0: 62 79 20 77 20 63 6f 6d 70 6f 6e 65 6e 74 0d 0a  by w component..
b3b0: 20 20 20 20 44 33 44 53 50 53 4d 5f 41 42 53 20      D3DSPSM_ABS 
b3c0: 20 20 20 20 3d 20 31 31 3c 3c 44 33 44 53 50 5f      = 11<<D3DSP_
b3d0: 53 52 43 4d 4f 44 5f 53 48 49 46 54 2c 20 2f 2f  SRCMOD_SHIFT, //
b3e0: 20 61 62 73 28 29 0d 0a 20 20 20 20 44 33 44 53   abs()..    D3DS
b3f0: 50 53 4d 5f 41 42 53 4e 45 47 20 20 3d 20 31 32  PSM_ABSNEG  = 12
b400: 3c 3c 44 33 44 53 50 5f 53 52 43 4d 4f 44 5f 53  <<D3DSP_SRCMOD_S
b410: 48 49 46 54 2c 20 2f 2f 20 2d 61 62 73 28 29 0d  HIFT, // -abs().
b420: 0a 20 20 20 20 44 33 44 53 50 53 4d 5f 4e 4f 54  .    D3DSPSM_NOT
b430: 20 20 20 20 20 3d 20 31 33 3c 3c 44 33 44 53 50       = 13<<D3DSP
b440: 5f 53 52 43 4d 4f 44 5f 53 48 49 46 54 20 20 2f  _SRCMOD_SHIFT  /
b450: 2f 20 66 6f 72 20 70 72 65 64 69 63 61 74 65 20  / for predicate 
b460: 72 65 67 69 73 74 65 72 3a 20 22 21 70 30 22 0d  register: "!p0".
b470: 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65  .}..alias TypeDe
b480: 66 21 28 75 69 6e 74 29 20 44 33 44 53 48 41 44  f!(uint) D3DSHAD
b490: 45 52 5f 50 41 52 41 4d 5f 53 52 43 4d 4f 44 5f  ER_PARAM_SRCMOD_
b4a0: 54 59 50 45 3b 0d 0a 0d 0a 2f 2f 20 70 69 78 65  TYPE;....// pixe
b4b0: 6c 20 73 68 61 64 65 72 20 76 65 72 73 69 6f 6e  l shader version
b4c0: 20 74 6f 6b 65 6e 0d 0a 75 69 6e 74 20 44 33 44   token..uint D3D
b4d0: 50 53 5f 56 45 52 53 49 4f 4e 28 75 62 79 74 65  PS_VERSION(ubyte
b4e0: 20 5f 4d 61 6a 6f 72 2c 20 75 62 79 74 65 20 5f   _Major, ubyte _
b4f0: 4d 69 6e 6f 72 29 20 7b 20 72 65 74 75 72 6e 20  Minor) { return 
b500: 28 30 78 46 46 46 46 30 30 30 30 7c 28 5f 4d 61  (0xFFFF0000|(_Ma
b510: 6a 6f 72 3c 3c 38 29 7c 5f 4d 69 6e 6f 72 29 3b  jor<<8)|_Minor);
b520: 20 7d 0d 0a 0d 0a 2f 2f 20 76 65 72 74 65 78 20   }....// vertex 
b530: 73 68 61 64 65 72 20 76 65 72 73 69 6f 6e 20 74  shader version t
b540: 6f 6b 65 6e 0d 0a 75 69 6e 74 20 44 33 44 56 53  oken..uint D3DVS
b550: 5f 56 45 52 53 49 4f 4e 28 75 62 79 74 65 20 5f  _VERSION(ubyte _
b560: 4d 61 6a 6f 72 2c 20 75 62 79 74 65 20 5f 4d 69  Major, ubyte _Mi
b570: 6e 6f 72 29 20 7b 20 72 65 74 75 72 6e 20 28 30  nor) { return (0
b580: 78 46 46 46 45 30 30 30 30 7c 28 5f 4d 61 6a 6f  xFFFE0000|(_Majo
b590: 72 3c 3c 38 29 7c 5f 4d 69 6e 6f 72 29 3b 20 7d  r<<8)|_Minor); }
b5a0: 0d 0a 0d 0a 2f 2f 20 65 78 74 72 61 63 74 20 6d  ....// extract m
b5b0: 61 6a 6f 72 2f 6d 69 6e 6f 72 20 66 72 6f 6d 20  ajor/minor from 
b5c0: 76 65 72 73 69 6f 6e 20 63 61 70 0d 0a 75 62 79  version cap..uby
b5d0: 74 65 20 44 33 44 53 48 41 44 45 52 5f 56 45 52  te D3DSHADER_VER
b5e0: 53 49 4f 4e 5f 4d 41 4a 4f 52 28 75 69 6e 74 20  SION_MAJOR(uint 
b5f0: 5f 56 65 72 73 69 6f 6e 29 20 7b 20 72 65 74 75  _Version) { retu
b600: 72 6e 20 63 61 73 74 28 75 62 79 74 65 29 28 28  rn cast(ubyte)((
b610: 5f 56 65 72 73 69 6f 6e 3e 3e 38 29 26 30 78 46  _Version>>8)&0xF
b620: 46 29 3b 20 7d 0d 0a 75 62 79 74 65 20 44 33 44  F); }..ubyte D3D
b630: 53 48 41 44 45 52 5f 56 45 52 53 49 4f 4e 5f 4d  SHADER_VERSION_M
b640: 49 4e 4f 52 28 75 69 6e 74 20 5f 56 65 72 73 69  INOR(uint _Versi
b650: 6f 6e 29 20 7b 20 72 65 74 75 72 6e 20 63 61 73  on) { return cas
b660: 74 28 75 62 79 74 65 29 28 28 5f 56 65 72 73 69  t(ubyte)((_Versi
b670: 6f 6e 3e 3e 30 29 26 30 78 46 46 29 3b 20 7d 0d  on>>0)&0xFF); }.
b680: 0a 0d 0a 2f 2f 20 64 65 73 74 69 6e 61 74 69 6f  ...// destinatio
b690: 6e 2f 73 6f 75 72 63 65 20 70 61 72 61 6d 65 74  n/source paramet
b6a0: 65 72 20 72 65 67 69 73 74 65 72 20 74 79 70 65  er register type
b6b0: 0d 0a 63 6f 6e 73 74 20 44 33 44 53 49 5f 43 4f  ..const D3DSI_CO
b6c0: 4d 4d 45 4e 54 53 49 5a 45 5f 53 48 49 46 54 20  MMENTSIZE_SHIFT 
b6d0: 3d 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  = 16;..const D3D
b6e0: 53 49 5f 43 4f 4d 4d 45 4e 54 53 49 5a 45 5f 4d  SI_COMMENTSIZE_M
b6f0: 41 53 4b 20 3d 20 30 78 37 46 46 46 30 30 30 30  ASK = 0x7FFF0000
b700: 3b 0d 0a 75 69 6e 74 20 44 33 44 53 48 41 44 45  ;..uint D3DSHADE
b710: 52 5f 43 4f 4d 4d 45 4e 54 28 75 73 68 6f 72 74  R_COMMENT(ushort
b720: 20 5f 44 57 6f 72 64 53 69 7a 65 29 20 7b 20 72   _DWordSize) { r
b730: 65 74 75 72 6e 20 28 28 28 5f 44 57 6f 72 64 53  eturn (((_DWordS
b740: 69 7a 65 3c 3c 44 33 44 53 49 5f 43 4f 4d 4d 45  ize<<D3DSI_COMME
b750: 4e 54 53 49 5a 45 5f 53 48 49 46 54 29 26 44 33  NTSIZE_SHIFT)&D3
b760: 44 53 49 5f 43 4f 4d 4d 45 4e 54 53 49 5a 45 5f  DSI_COMMENTSIZE_
b770: 4d 41 53 4b 29 7c 44 33 44 53 49 4f 5f 43 4f 4d  MASK)|D3DSIO_COM
b780: 4d 45 4e 54 29 3b 20 7d 0d 0a 0d 0a 2f 2f 20 70  MENT); }....// p
b790: 69 78 65 6c 2f 76 65 72 74 65 78 20 73 68 61 64  ixel/vertex shad
b7a0: 65 72 20 65 6e 64 20 74 6f 6b 65 6e 0d 0a 63 6f  er end token..co
b7b0: 6e 73 74 20 44 33 44 50 53 5f 45 4e 44 20 3d 20  nst D3DPS_END = 
b7c0: 30 78 30 30 30 30 46 46 46 46 3b 0d 0a 63 6f 6e  0x0000FFFF;..con
b7d0: 73 74 20 44 33 44 56 53 5f 45 4e 44 20 3d 20 30  st D3DVS_END = 0
b7e0: 78 30 30 30 30 46 46 46 46 3b 0d 0a 0d 0a 0d 0a  x0000FFFF;......
b7f0: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
b800: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b810: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b820: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
b830: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2f 2f 20 48 69  -------....// Hi
b840: 67 68 20 6f 72 64 65 72 20 73 75 72 66 61 63 65  gh order surface
b850: 73 0d 0a 2f 2f 0d 0a 65 6e 75 6d 20 3a 20 44 33  s..//..enum : D3
b860: 44 42 41 53 49 53 54 59 50 45 20 7b 0d 0a 20 20  DBASISTYPE {..  
b870: 20 44 33 44 42 41 53 49 53 5f 42 45 5a 49 45 52   D3DBASIS_BEZIER
b880: 20 20 20 20 20 20 3d 20 30 2c 0d 0a 20 20 20 44        = 0,..   D
b890: 33 44 42 41 53 49 53 5f 42 53 50 4c 49 4e 45 20  3DBASIS_BSPLINE 
b8a0: 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20 44 33 44      = 1,..   D3D
b8b0: 42 41 53 49 53 5f 43 41 54 4d 55 4c 4c 5f 52 4f  BASIS_CATMULL_RO
b8c0: 4d 20 3d 20 32 20 20 2f 2a 20 49 6e 20 44 33 44  M = 2  /* In D3D
b8d0: 38 20 74 68 69 73 20 75 73 65 64 20 74 6f 20 62  8 this used to b
b8e0: 65 20 44 33 44 42 41 53 49 53 5f 49 4e 54 45 52  e D3DBASIS_INTER
b8f0: 50 4f 4c 41 54 45 20 2a 2f 0d 0a 7d 0d 0a 61 6c  POLATE */..}..al
b900: 69 61 73 20 54 79 70 65 44 65 66 21 28 75 69 6e  ias TypeDef!(uin
b910: 74 29 20 44 33 44 42 41 53 49 53 54 59 50 45 3b  t) D3DBASISTYPE;
b920: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 44 45  ....enum : D3DDE
b930: 47 52 45 45 54 59 50 45 20 7b 0d 0a 20 20 20 44  GREETYPE {..   D
b940: 33 44 44 45 47 52 45 45 5f 4c 49 4e 45 41 52 20  3DDEGREE_LINEAR 
b950: 20 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20 44 33       = 1,..   D3
b960: 44 44 45 47 52 45 45 5f 51 55 41 44 52 41 54 49  DDEGREE_QUADRATI
b970: 43 20 20 20 3d 20 32 2c 0d 0a 20 20 20 44 33 44  C   = 2,..   D3D
b980: 44 45 47 52 45 45 5f 43 55 42 49 43 20 20 20 20  DEGREE_CUBIC    
b990: 20 20 20 3d 20 33 2c 0d 0a 20 20 20 44 33 44 44     = 3,..   D3DD
b9a0: 45 47 52 45 45 5f 51 55 49 4e 54 49 43 20 20 20  EGREE_QUINTIC   
b9b0: 20 20 3d 20 35 0d 0a 7d 0d 0a 61 6c 69 61 73 20    = 5..}..alias 
b9c0: 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44  TypeDef!(uint) D
b9d0: 33 44 44 45 47 52 45 45 54 59 50 45 3b 0d 0a 0d  3DDEGREETYPE;...
b9e0: 0a 65 6e 75 6d 20 3a 20 44 33 44 50 41 54 43 48  .enum : D3DPATCH
b9f0: 45 44 47 45 53 54 59 4c 45 20 7b 0d 0a 20 20 20  EDGESTYLE {..   
ba00: 44 33 44 50 41 54 43 48 45 44 47 45 5f 44 49 53  D3DPATCHEDGE_DIS
ba10: 43 52 45 54 45 20 20 20 20 3d 20 30 2c 0d 0a 20  CRETE    = 0,.. 
ba20: 20 20 44 33 44 50 41 54 43 48 45 44 47 45 5f 43    D3DPATCHEDGE_C
ba30: 4f 4e 54 49 4e 55 4f 55 53 20 20 3d 20 31 0d 0a  ONTINUOUS  = 1..
ba40: 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66  }..alias TypeDef
ba50: 21 28 75 69 6e 74 29 20 44 33 44 50 41 54 43 48  !(uint) D3DPATCH
ba60: 45 44 47 45 53 54 59 4c 45 3b 0d 0a 0d 0a 65 6e  EDGESTYLE;....en
ba70: 75 6d 20 3a 20 44 33 44 53 54 41 54 45 42 4c 4f  um : D3DSTATEBLO
ba80: 43 4b 54 59 50 45 20 7b 0d 0a 20 20 20 20 44 33  CKTYPE {..    D3
ba90: 44 53 42 54 5f 41 4c 4c 20 20 20 20 20 20 20 20  DSBT_ALL        
baa0: 20 20 20 3d 20 31 2c 20 2f 2f 20 63 61 70 74 75     = 1, // captu
bab0: 72 65 20 61 6c 6c 20 73 74 61 74 65 0d 0a 20 20  re all state..  
bac0: 20 20 44 33 44 53 42 54 5f 50 49 58 45 4c 53 54    D3DSBT_PIXELST
bad0: 41 54 45 20 20 20 20 3d 20 32 2c 20 2f 2f 20 63  ATE    = 2, // c
bae0: 61 70 74 75 72 65 20 70 69 78 65 6c 20 73 74 61  apture pixel sta
baf0: 74 65 0d 0a 20 20 20 20 44 33 44 53 42 54 5f 56  te..    D3DSBT_V
bb00: 45 52 54 45 58 53 54 41 54 45 20 20 20 3d 20 33  ERTEXSTATE   = 3
bb10: 20 20 2f 2f 20 63 61 70 74 75 72 65 20 76 65 72    // capture ver
bb20: 74 65 78 20 73 74 61 74 65 0d 0a 7d 0d 0a 61 6c  tex state..}..al
bb30: 69 61 73 20 54 79 70 65 44 65 66 21 28 75 69 6e  ias TypeDef!(uin
bb40: 74 29 20 44 33 44 53 54 41 54 45 42 4c 4f 43 4b  t) D3DSTATEBLOCK
bb50: 54 59 50 45 3b 0d 0a 0d 0a 2f 2f 20 54 68 65 20  TYPE;....// The 
bb60: 44 33 44 56 45 52 54 45 58 42 4c 45 4e 44 46 4c  D3DVERTEXBLENDFL
bb70: 41 47 53 20 74 79 70 65 20 69 73 20 75 73 65 64  AGS type is used
bb80: 20 77 69 74 68 20 44 33 44 52 53 5f 56 45 52 54   with D3DRS_VERT
bb90: 45 58 42 4c 45 4e 44 20 73 74 61 74 65 2e 0d 0a  EXBLEND state...
bba0: 2f 2f 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 56 45  //..enum : D3DVE
bbb0: 52 54 45 58 42 4c 45 4e 44 46 4c 41 47 53 20 7b  RTEXBLENDFLAGS {
bbc0: 0d 0a 20 20 20 20 44 33 44 56 42 46 5f 44 49 53  ..    D3DVBF_DIS
bbd0: 41 42 4c 45 20 20 3d 20 30 2c 20 20 20 20 20 2f  ABLE  = 0,     /
bbe0: 2f 20 44 69 73 61 62 6c 65 20 76 65 72 74 65 78  / Disable vertex
bbf0: 20 62 6c 65 6e 64 69 6e 67 0d 0a 20 20 20 20 44   blending..    D
bc00: 33 44 56 42 46 5f 31 57 45 49 47 48 54 53 20 3d  3DVBF_1WEIGHTS =
bc10: 20 31 2c 20 20 20 20 20 2f 2f 20 32 20 6d 61 74   1,     // 2 mat
bc20: 72 69 78 20 62 6c 65 6e 64 69 6e 67 0d 0a 20 20  rix blending..  
bc30: 20 20 44 33 44 56 42 46 5f 32 57 45 49 47 48 54    D3DVBF_2WEIGHT
bc40: 53 20 3d 20 32 2c 20 20 20 20 20 2f 2f 20 33 20  S = 2,     // 3 
bc50: 6d 61 74 72 69 78 20 62 6c 65 6e 64 69 6e 67 0d  matrix blending.
bc60: 0a 20 20 20 20 44 33 44 56 42 46 5f 33 57 45 49  .    D3DVBF_3WEI
bc70: 47 48 54 53 20 3d 20 33 2c 20 20 20 20 20 2f 2f  GHTS = 3,     //
bc80: 20 34 20 6d 61 74 72 69 78 20 62 6c 65 6e 64 69   4 matrix blendi
bc90: 6e 67 0d 0a 20 20 20 20 44 33 44 56 42 46 5f 54  ng..    D3DVBF_T
bca0: 57 45 45 4e 49 4e 47 20 3d 20 32 35 35 2c 20 20  WEENING = 255,  
bcb0: 20 2f 2f 20 62 6c 65 6e 64 69 6e 67 20 75 73 69   // blending usi
bcc0: 6e 67 20 44 33 44 52 53 5f 54 57 45 45 4e 46 41  ng D3DRS_TWEENFA
bcd0: 43 54 4f 52 0d 0a 20 20 20 20 44 33 44 56 42 46  CTOR..    D3DVBF
bce0: 5f 30 57 45 49 47 48 54 53 20 3d 20 32 35 36 20  _0WEIGHTS = 256 
bcf0: 20 20 20 2f 2f 20 6f 6e 65 20 6d 61 74 72 69 78     // one matrix
bd00: 20 69 73 20 75 73 65 64 20 77 69 74 68 20 77 65   is used with we
bd10: 69 67 68 74 20 31 2e 30 0d 0a 7d 0d 0a 61 6c 69  ight 1.0..}..ali
bd20: 61 73 20 54 79 70 65 44 65 66 21 28 75 69 6e 74  as TypeDef!(uint
bd30: 29 20 44 33 44 56 45 52 54 45 58 42 4c 45 4e 44  ) D3DVERTEXBLEND
bd40: 46 4c 41 47 53 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a  FLAGS;....enum :
bd50: 20 44 33 44 54 45 58 54 55 52 45 54 52 41 4e 53   D3DTEXTURETRANS
bd60: 46 4f 52 4d 46 4c 41 47 53 20 7b 0d 0a 20 20 20  FORMFLAGS {..   
bd70: 20 44 33 44 54 54 46 46 5f 44 49 53 41 42 4c 45   D3DTTFF_DISABLE
bd80: 20 20 20 20 20 20 20 20 20 3d 20 30 2c 20 20 20           = 0,   
bd90: 20 2f 2f 20 74 65 78 74 75 72 65 20 63 6f 6f 72   // texture coor
bda0: 64 69 6e 61 74 65 73 20 61 72 65 20 70 61 73 73  dinates are pass
bdb0: 65 64 20 64 69 72 65 63 74 6c 79 0d 0a 20 20 20  ed directly..   
bdc0: 20 44 33 44 54 54 46 46 5f 43 4f 55 4e 54 31 20   D3DTTFF_COUNT1 
bdd0: 20 20 20 20 20 20 20 20 20 3d 20 31 2c 20 20 20           = 1,   
bde0: 20 2f 2f 20 72 61 73 74 65 72 69 7a 65 72 20 73   // rasterizer s
bdf0: 68 6f 75 6c 64 20 65 78 70 65 63 74 20 31 2d 44  hould expect 1-D
be00: 20 74 65 78 74 75 72 65 20 63 6f 6f 72 64 73 0d   texture coords.
be10: 0a 20 20 20 20 44 33 44 54 54 46 46 5f 43 4f 55  .    D3DTTFF_COU
be20: 4e 54 32 20 20 20 20 20 20 20 20 20 20 3d 20 32  NT2          = 2
be30: 2c 20 20 20 20 2f 2f 20 72 61 73 74 65 72 69 7a  ,    // rasteriz
be40: 65 72 20 73 68 6f 75 6c 64 20 65 78 70 65 63 74  er should expect
be50: 20 32 2d 44 20 74 65 78 74 75 72 65 20 63 6f 6f   2-D texture coo
be60: 72 64 73 0d 0a 20 20 20 20 44 33 44 54 54 46 46  rds..    D3DTTFF
be70: 5f 43 4f 55 4e 54 33 20 20 20 20 20 20 20 20 20  _COUNT3         
be80: 20 3d 20 33 2c 20 20 20 20 2f 2f 20 72 61 73 74   = 3,    // rast
be90: 65 72 69 7a 65 72 20 73 68 6f 75 6c 64 20 65 78  erizer should ex
bea0: 70 65 63 74 20 33 2d 44 20 74 65 78 74 75 72 65  pect 3-D texture
beb0: 20 63 6f 6f 72 64 73 0d 0a 20 20 20 20 44 33 44   coords..    D3D
bec0: 54 54 46 46 5f 43 4f 55 4e 54 34 20 20 20 20 20  TTFF_COUNT4     
bed0: 20 20 20 20 20 3d 20 34 2c 20 20 20 20 2f 2f 20       = 4,    // 
bee0: 72 61 73 74 65 72 69 7a 65 72 20 73 68 6f 75 6c  rasterizer shoul
bef0: 64 20 65 78 70 65 63 74 20 34 2d 44 20 74 65 78  d expect 4-D tex
bf00: 74 75 72 65 20 63 6f 6f 72 64 73 0d 0a 20 20 20  ture coords..   
bf10: 20 44 33 44 54 54 46 46 5f 50 52 4f 4a 45 43 54   D3DTTFF_PROJECT
bf20: 45 44 20 20 20 20 20 20 20 3d 20 32 35 36 20 20  ED       = 256  
bf30: 20 2f 2f 20 74 65 78 63 6f 6f 72 64 73 20 74 6f   // texcoords to
bf40: 20 62 65 20 64 69 76 69 64 65 64 20 62 79 20 43   be divided by C
bf50: 4f 55 4e 54 74 68 20 65 6c 65 6d 65 6e 74 0d 0a  OUNTth element..
bf60: 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66  }..alias TypeDef
bf70: 21 28 75 69 6e 74 29 20 44 33 44 54 45 58 54 55  !(uint) D3DTEXTU
bf80: 52 45 54 52 41 4e 53 46 4f 52 4d 46 4c 41 47 53  RETRANSFORMFLAGS
bf90: 3b 0d 0a 0d 0a 2f 2f 20 4d 61 63 72 6f 73 20 74  ;....// Macros t
bfa0: 6f 20 73 65 74 20 74 65 78 74 75 72 65 20 63 6f  o set texture co
bfb0: 6f 72 64 69 6e 61 74 65 20 66 6f 72 6d 61 74 20  ordinate format 
bfc0: 62 69 74 73 20 69 6e 20 74 68 65 20 46 56 46 20  bits in the FVF 
bfd0: 69 64 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 46  id....const D3DF
bfe0: 56 46 5f 54 45 58 54 55 52 45 46 4f 52 4d 41 54  VF_TEXTUREFORMAT
bff0: 32 20 3d 20 30 3b 20 20 20 20 20 20 20 20 20 2f  2 = 0;         /
c000: 2f 20 54 77 6f 20 66 6c 6f 61 74 69 6e 67 20 70  / Two floating p
c010: 6f 69 6e 74 20 76 61 6c 75 65 73 0d 0a 63 6f 6e  oint values..con
c020: 73 74 20 44 33 44 46 56 46 5f 54 45 58 54 55 52  st D3DFVF_TEXTUR
c030: 45 46 4f 52 4d 41 54 31 20 3d 20 33 3b 20 20 20  EFORMAT1 = 3;   
c040: 20 20 20 20 20 20 2f 2f 20 4f 6e 65 20 66 6c 6f        // One flo
c050: 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75  ating point valu
c060: 65 0d 0a 63 6f 6e 73 74 20 44 33 44 46 56 46 5f  e..const D3DFVF_
c070: 54 45 58 54 55 52 45 46 4f 52 4d 41 54 33 20 3d  TEXTUREFORMAT3 =
c080: 20 31 3b 20 20 20 20 20 20 20 20 20 2f 2f 20 54   1;         // T
c090: 68 72 65 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f  hree floating po
c0a0: 69 6e 74 20 76 61 6c 75 65 73 0d 0a 63 6f 6e 73  int values..cons
c0b0: 74 20 44 33 44 46 56 46 5f 54 45 58 54 55 52 45  t D3DFVF_TEXTURE
c0c0: 46 4f 52 4d 41 54 34 20 3d 20 32 3b 20 20 20 20  FORMAT4 = 2;    
c0d0: 20 20 20 20 20 2f 2f 20 46 6f 75 72 20 66 6c 6f       // Four flo
c0e0: 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75  ating point valu
c0f0: 65 73 0d 0a 0d 0a 75 69 6e 74 20 44 33 44 46 56  es....uint D3DFV
c100: 46 5f 54 45 58 43 4f 4f 52 44 53 49 5a 45 33 28  F_TEXCOORDSIZE3(
c110: 75 69 6e 74 20 43 6f 6f 72 64 49 6e 64 65 78 29  uint CoordIndex)
c120: 20 7b 20 72 65 74 75 72 6e 20 28 44 33 44 46 56   { return (D3DFV
c130: 46 5f 54 45 58 54 55 52 45 46 4f 52 4d 41 54 33  F_TEXTUREFORMAT3
c140: 20 3c 3c 20 28 43 6f 6f 72 64 49 6e 64 65 78 2a   << (CoordIndex*
c150: 32 20 2b 20 31 36 29 29 3b 20 7d 0d 0a 75 69 6e  2 + 16)); }..uin
c160: 74 20 44 33 44 46 56 46 5f 54 45 58 43 4f 4f 52  t D3DFVF_TEXCOOR
c170: 44 53 49 5a 45 32 28 75 69 6e 74 20 43 6f 6f 72  DSIZE2(uint Coor
c180: 64 49 6e 64 65 78 29 20 7b 20 72 65 74 75 72 6e  dIndex) { return
c190: 20 28 44 33 44 46 56 46 5f 54 45 58 54 55 52 45   (D3DFVF_TEXTURE
c1a0: 46 4f 52 4d 41 54 32 29 3b 20 7d 0d 0a 75 69 6e  FORMAT2); }..uin
c1b0: 74 20 44 33 44 46 56 46 5f 54 45 58 43 4f 4f 52  t D3DFVF_TEXCOOR
c1c0: 44 53 49 5a 45 34 28 75 69 6e 74 20 43 6f 6f 72  DSIZE4(uint Coor
c1d0: 64 49 6e 64 65 78 29 20 7b 20 72 65 74 75 72 6e  dIndex) { return
c1e0: 20 28 44 33 44 46 56 46 5f 54 45 58 54 55 52 45   (D3DFVF_TEXTURE
c1f0: 46 4f 52 4d 41 54 34 20 3c 3c 20 28 43 6f 6f 72  FORMAT4 << (Coor
c200: 64 49 6e 64 65 78 2a 32 20 2b 20 31 36 29 29 3b  dIndex*2 + 16));
c210: 20 7d 0d 0a 75 69 6e 74 20 44 33 44 46 56 46 5f   }..uint D3DFVF_
c220: 54 45 58 43 4f 4f 52 44 53 49 5a 45 31 28 75 69  TEXCOORDSIZE1(ui
c230: 6e 74 20 43 6f 6f 72 64 49 6e 64 65 78 29 20 7b  nt CoordIndex) {
c240: 20 72 65 74 75 72 6e 20 28 44 33 44 46 56 46 5f   return (D3DFVF_
c250: 54 45 58 54 55 52 45 46 4f 52 4d 41 54 31 20 3c  TEXTUREFORMAT1 <
c260: 3c 20 28 43 6f 6f 72 64 49 6e 64 65 78 2a 32 20  < (CoordIndex*2 
c270: 2b 20 31 36 29 29 3b 20 7d 0d 0a 0d 0a 0d 0a 2f  + 16)); }....../
c280: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
c290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c2a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c2b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
c2c0: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 2f 2a 20 44 69 72  ------..../* Dir
c2d0: 65 63 74 33 44 39 20 44 65 76 69 63 65 20 74 79  ect3D9 Device ty
c2e0: 70 65 73 20 2a 2f 0d 0a 65 6e 75 6d 20 3a 20 44  pes */..enum : D
c2f0: 33 44 44 45 56 54 59 50 45 20 7b 0d 0a 20 20 20  3DDEVTYPE {..   
c300: 20 44 33 44 44 45 56 54 59 50 45 5f 48 41 4c 20   D3DDEVTYPE_HAL 
c310: 20 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 20 20          = 1,..  
c320: 20 20 44 33 44 44 45 56 54 59 50 45 5f 52 45 46    D3DDEVTYPE_REF
c330: 20 20 20 20 20 20 20 20 20 3d 20 32 2c 0d 0a 20           = 2,.. 
c340: 20 20 20 44 33 44 44 45 56 54 59 50 45 5f 53 57     D3DDEVTYPE_SW
c350: 20 20 20 20 20 20 20 20 20 20 3d 20 33 2c 0d 0a            = 3,..
c360: 0d 0a 20 20 20 20 44 33 44 44 45 56 54 59 50 45  ..    D3DDEVTYPE
c370: 5f 4e 55 4c 4c 52 45 46 20 20 20 20 20 3d 20 34  _NULLREF     = 4
c380: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
c390: 65 66 21 28 75 69 6e 74 29 20 44 33 44 44 45 56  ef!(uint) D3DDEV
c3a0: 54 59 50 45 3b 0d 0a 0d 0a 2f 2a 20 4d 75 6c 74  TYPE;..../* Mult
c3b0: 69 2d 53 61 6d 70 6c 65 20 62 75 66 66 65 72 20  i-Sample buffer 
c3c0: 74 79 70 65 73 20 2a 2f 0d 0a 65 6e 75 6d 20 3a  types */..enum :
c3d0: 20 44 33 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f   D3DMULTISAMPLE_
c3e0: 54 59 50 45 20 7b 0d 0a 20 20 20 20 44 33 44 4d  TYPE {..    D3DM
c3f0: 55 4c 54 49 53 41 4d 50 4c 45 5f 4e 4f 4e 45 20  ULTISAMPLE_NONE 
c400: 20 20 20 20 20 20 20 20 20 20 20 3d 20 20 30 2c             =  0,
c410: 0d 0a 20 20 20 20 44 33 44 4d 55 4c 54 49 53 41  ..    D3DMULTISA
c420: 4d 50 4c 45 5f 4e 4f 4e 4d 41 53 4b 41 42 4c 45  MPLE_NONMASKABLE
c430: 20 20 20 20 20 3d 20 20 31 2c 0d 0a 20 20 20 20       =  1,..    
c440: 44 33 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f 32  D3DMULTISAMPLE_2
c450: 5f 53 41 4d 50 4c 45 53 20 20 20 20 20 20 20 3d  _SAMPLES       =
c460: 20 20 32 2c 0d 0a 20 20 20 20 44 33 44 4d 55 4c    2,..    D3DMUL
c470: 54 49 53 41 4d 50 4c 45 5f 33 5f 53 41 4d 50 4c  TISAMPLE_3_SAMPL
c480: 45 53 20 20 20 20 20 20 20 3d 20 20 33 2c 0d 0a  ES       =  3,..
c490: 20 20 20 20 44 33 44 4d 55 4c 54 49 53 41 4d 50      D3DMULTISAMP
c4a0: 4c 45 5f 34 5f 53 41 4d 50 4c 45 53 20 20 20 20  LE_4_SAMPLES    
c4b0: 20 20 20 3d 20 20 34 2c 0d 0a 20 20 20 20 44 33     =  4,..    D3
c4c0: 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f 35 5f 53  DMULTISAMPLE_5_S
c4d0: 41 4d 50 4c 45 53 20 20 20 20 20 20 20 3d 20 20  AMPLES       =  
c4e0: 35 2c 0d 0a 20 20 20 20 44 33 44 4d 55 4c 54 49  5,..    D3DMULTI
c4f0: 53 41 4d 50 4c 45 5f 36 5f 53 41 4d 50 4c 45 53  SAMPLE_6_SAMPLES
c500: 20 20 20 20 20 20 20 3d 20 20 36 2c 0d 0a 20 20         =  6,..  
c510: 20 20 44 33 44 4d 55 4c 54 49 53 41 4d 50 4c 45    D3DMULTISAMPLE
c520: 5f 37 5f 53 41 4d 50 4c 45 53 20 20 20 20 20 20  _7_SAMPLES      
c530: 20 3d 20 20 37 2c 0d 0a 20 20 20 20 44 33 44 4d   =  7,..    D3DM
c540: 55 4c 54 49 53 41 4d 50 4c 45 5f 38 5f 53 41 4d  ULTISAMPLE_8_SAM
c550: 50 4c 45 53 20 20 20 20 20 20 20 3d 20 20 38 2c  PLES       =  8,
c560: 0d 0a 20 20 20 20 44 33 44 4d 55 4c 54 49 53 41  ..    D3DMULTISA
c570: 4d 50 4c 45 5f 39 5f 53 41 4d 50 4c 45 53 20 20  MPLE_9_SAMPLES  
c580: 20 20 20 20 20 3d 20 20 39 2c 0d 0a 20 20 20 20       =  9,..    
c590: 44 33 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f 31  D3DMULTISAMPLE_1
c5a0: 30 5f 53 41 4d 50 4c 45 53 20 20 20 20 20 20 3d  0_SAMPLES      =
c5b0: 20 31 30 2c 0d 0a 20 20 20 20 44 33 44 4d 55 4c   10,..    D3DMUL
c5c0: 54 49 53 41 4d 50 4c 45 5f 31 31 5f 53 41 4d 50  TISAMPLE_11_SAMP
c5d0: 4c 45 53 20 20 20 20 20 20 3d 20 31 31 2c 0d 0a  LES      = 11,..
c5e0: 20 20 20 20 44 33 44 4d 55 4c 54 49 53 41 4d 50      D3DMULTISAMP
c5f0: 4c 45 5f 31 32 5f 53 41 4d 50 4c 45 53 20 20 20  LE_12_SAMPLES   
c600: 20 20 20 3d 20 31 32 2c 0d 0a 20 20 20 20 44 33     = 12,..    D3
c610: 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f 31 33 5f  DMULTISAMPLE_13_
c620: 53 41 4d 50 4c 45 53 20 20 20 20 20 20 3d 20 31  SAMPLES      = 1
c630: 33 2c 0d 0a 20 20 20 20 44 33 44 4d 55 4c 54 49  3,..    D3DMULTI
c640: 53 41 4d 50 4c 45 5f 31 34 5f 53 41 4d 50 4c 45  SAMPLE_14_SAMPLE
c650: 53 20 20 20 20 20 20 3d 20 31 34 2c 0d 0a 20 20  S      = 14,..  
c660: 20 20 44 33 44 4d 55 4c 54 49 53 41 4d 50 4c 45    D3DMULTISAMPLE
c670: 5f 31 35 5f 53 41 4d 50 4c 45 53 20 20 20 20 20  _15_SAMPLES     
c680: 20 3d 20 31 35 2c 0d 0a 20 20 20 20 44 33 44 4d   = 15,..    D3DM
c690: 55 4c 54 49 53 41 4d 50 4c 45 5f 31 36 5f 53 41  ULTISAMPLE_16_SA
c6a0: 4d 50 4c 45 53 20 20 20 20 20 20 3d 20 31 36 0d  MPLES      = 16.
c6b0: 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65  .}..alias TypeDe
c6c0: 66 21 28 75 69 6e 74 29 20 44 33 44 4d 55 4c 54  f!(uint) D3DMULT
c6d0: 49 53 41 4d 50 4c 45 5f 54 59 50 45 3b 0d 0a 0d  ISAMPLE_TYPE;...
c6e0: 0a 2f 2a 20 46 6f 72 6d 61 74 73 0d 0a 20 2a 20  ./* Formats.. * 
c6f0: 4d 6f 73 74 20 6f 66 20 74 68 65 73 65 20 6e 61  Most of these na
c700: 6d 65 73 20 68 61 76 65 20 74 68 65 20 66 6f 6c  mes have the fol
c710: 6c 6f 77 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f  lowing conventio
c720: 6e 3a 0d 0a 20 2a 20 20 20 20 20 20 41 20 3d 20  n:.. *      A = 
c730: 41 6c 70 68 61 0d 0a 20 2a 20 20 20 20 20 20 52  Alpha.. *      R
c740: 20 3d 20 52 65 64 0d 0a 20 2a 20 20 20 20 20 20   = Red.. *      
c750: 47 20 3d 20 47 72 65 65 6e 0d 0a 20 2a 20 20 20  G = Green.. *   
c760: 20 20 20 42 20 3d 20 42 6c 75 65 0d 0a 20 2a 20     B = Blue.. * 
c770: 20 20 20 20 20 58 20 3d 20 55 6e 75 73 65 64 20       X = Unused 
c780: 42 69 74 73 0d 0a 20 2a 20 20 20 20 20 20 50 20  Bits.. *      P 
c790: 3d 20 50 61 6c 65 74 74 65 0d 0a 20 2a 20 20 20  = Palette.. *   
c7a0: 20 20 20 4c 20 3d 20 4c 75 6d 69 6e 61 6e 63 65     L = Luminance
c7b0: 0d 0a 20 2a 20 20 20 20 20 20 55 20 3d 20 64 55  .. *      U = dU
c7c0: 20 63 6f 6f 72 64 69 6e 61 74 65 20 66 6f 72 20   coordinate for 
c7d0: 42 75 6d 70 4d 61 70 0d 0a 20 2a 20 20 20 20 20  BumpMap.. *     
c7e0: 20 56 20 3d 20 64 56 20 63 6f 6f 72 64 69 6e 61   V = dV coordina
c7f0: 74 65 20 66 6f 72 20 42 75 6d 70 4d 61 70 0d 0a  te for BumpMap..
c800: 20 2a 20 20 20 20 20 20 53 20 3d 20 53 74 65 6e   *      S = Sten
c810: 63 69 6c 0d 0a 20 2a 20 20 20 20 20 20 44 20 3d  cil.. *      D =
c820: 20 44 65 70 74 68 20 28 65 2e 67 2e 20 5a 20 6f   Depth (e.g. Z o
c830: 72 20 57 20 62 75 66 66 65 72 29 0d 0a 20 2a 20  r W buffer).. * 
c840: 20 20 20 20 20 43 20 3d 20 43 6f 6d 70 75 74 65       C = Compute
c850: 64 20 66 72 6f 6d 20 6f 74 68 65 72 20 63 68 61  d from other cha
c860: 6e 6e 65 6c 73 20 28 74 79 70 69 63 61 6c 6c 79  nnels (typically
c870: 20 6f 6e 20 63 65 72 74 61 69 6e 20 72 65 61 64   on certain read
c880: 20 6f 70 65 72 61 74 69 6f 6e 73 29 0d 0a 20 2a   operations).. *
c890: 0d 0a 20 2a 20 20 20 20 20 20 46 75 72 74 68 65  .. *      Furthe
c8a0: 72 2c 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20  r, the order of 
c8b0: 74 68 65 20 70 69 65 63 65 73 20 61 72 65 20 66  the pieces are f
c8c0: 72 6f 6d 20 4d 53 42 20 66 69 72 73 74 3b 20 68  rom MSB first; h
c8d0: 65 6e 63 65 0d 0a 20 2a 20 20 20 20 20 20 44 33  ence.. *      D3
c8e0: 44 46 4d 54 5f 41 38 4c 38 20 69 6e 64 69 63 61  DFMT_A8L8 indica
c8f0: 74 65 73 20 74 68 61 74 20 74 68 65 20 68 69 67  tes that the hig
c900: 68 20 62 79 74 65 20 6f 66 20 74 68 69 73 20 74  h byte of this t
c910: 77 6f 20 62 79 74 65 0d 0a 20 2a 20 20 20 20 20  wo byte.. *     
c920: 20 66 6f 72 6d 61 74 20 69 73 20 61 6c 70 68 61   format is alpha
c930: 2e 0d 0a 20 2a 0d 0a 20 2a 20 20 20 20 20 20 44  ... *.. *      D
c940: 33 44 46 4d 54 5f 44 31 36 5f 4c 4f 43 4b 41 42  3DFMT_D16_LOCKAB
c950: 4c 45 20 69 6e 64 69 63 61 74 65 73 3a 0d 0a 20  LE indicates:.. 
c960: 2a 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 6e  *           - An
c970: 20 69 6e 74 65 67 65 72 20 31 36 2d 62 69 74 20   integer 16-bit 
c980: 76 61 6c 75 65 2e 0d 0a 20 2a 20 20 20 20 20 20  value... *      
c990: 20 20 20 20 20 2d 20 41 6e 20 61 70 70 2d 6c 6f       - An app-lo
c9a0: 63 6b 61 62 6c 65 20 73 75 72 66 61 63 65 2e 0d  ckable surface..
c9b0: 0a 20 2a 0d 0a 20 2a 20 20 20 20 20 20 44 33 44  . *.. *      D3D
c9c0: 46 4d 54 5f 44 33 32 46 5f 4c 4f 43 4b 41 42 4c  FMT_D32F_LOCKABL
c9d0: 45 20 69 6e 64 69 63 61 74 65 73 3a 0d 0a 20 2a  E indicates:.. *
c9e0: 20 20 20 20 20 20 20 20 20 20 20 2d 20 41 6e 20             - An 
c9f0: 49 45 45 45 20 37 35 34 20 66 6c 6f 61 74 69 6e  IEEE 754 floatin
ca00: 67 2d 70 6f 69 6e 74 20 76 61 6c 75 65 2e 0d 0a  g-point value...
ca10: 20 2a 20 20 20 20 20 20 20 20 20 20 20 2d 20 41   *           - A
ca20: 6e 20 61 70 70 2d 6c 6f 63 6b 61 62 6c 65 20 73  n app-lockable s
ca30: 75 72 66 61 63 65 2e 0d 0a 20 2a 0d 0a 20 2a 20  urface... *.. * 
ca40: 20 20 20 20 20 41 6c 6c 20 44 65 70 74 68 2f 53       All Depth/S
ca50: 74 65 6e 63 69 6c 20 66 6f 72 6d 61 74 73 20 65  tencil formats e
ca60: 78 63 65 70 74 20 44 33 44 46 4d 54 5f 44 31 36  xcept D3DFMT_D16
ca70: 5f 4c 4f 43 4b 41 42 4c 45 20 61 6e 64 20 44 33  _LOCKABLE and D3
ca80: 44 46 4d 54 5f 44 33 32 46 5f 4c 4f 43 4b 41 42  DFMT_D32F_LOCKAB
ca90: 4c 45 20 69 6e 64 69 63 61 74 65 3a 0d 0a 20 2a  LE indicate:.. *
caa0: 20 20 20 20 20 20 20 20 20 20 2d 20 6e 6f 20 70            - no p
cab0: 61 72 74 69 63 75 6c 61 72 20 62 69 74 20 6f 72  articular bit or
cac0: 64 65 72 69 6e 67 20 70 65 72 20 70 69 78 65 6c  dering per pixel
cad0: 2c 20 61 6e 64 0d 0a 20 2a 20 20 20 20 20 20 20  , and.. *       
cae0: 20 20 20 2d 20 61 72 65 20 6e 6f 74 20 61 70 70     - are not app
caf0: 20 6c 6f 63 6b 61 62 6c 65 2c 20 61 6e 64 0d 0a   lockable, and..
cb00: 20 2a 20 20 20 20 20 20 20 20 20 20 2d 20 74 68   *          - th
cb10: 65 20 64 72 69 76 65 72 20 69 73 20 61 6c 6c 6f  e driver is allo
cb20: 77 65 64 20 74 6f 20 63 6f 6e 73 75 6d 65 20 6d  wed to consume m
cb30: 6f 72 65 20 74 68 61 6e 20 74 68 65 20 69 6e 64  ore than the ind
cb40: 69 63 61 74 65 64 0d 0a 20 2a 20 20 20 20 20 20  icated.. *      
cb50: 20 20 20 20 20 20 6e 75 6d 62 65 72 20 6f 66 20        number of 
cb60: 62 69 74 73 20 70 65 72 20 44 65 70 74 68 20 63  bits per Depth c
cb70: 68 61 6e 6e 65 6c 20 28 62 75 74 20 6e 6f 74 20  hannel (but not 
cb80: 53 74 65 6e 63 69 6c 20 63 68 61 6e 6e 65 6c 29  Stencil channel)
cb90: 2e 0d 0a 20 2a 2f 0d 0a 75 69 6e 74 20 4d 41 4b  ... */..uint MAK
cba0: 45 46 4f 55 52 43 43 28 75 62 79 74 65 20 63 68  EFOURCC(ubyte ch
cbb0: 30 2c 20 75 62 79 74 65 20 63 68 31 2c 20 75 62  0, ubyte ch1, ub
cbc0: 79 74 65 20 63 68 32 2c 20 75 62 79 74 65 20 63  yte ch2, ubyte c
cbd0: 68 33 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 72  h3) {..    retur
cbe0: 6e 20 63 61 73 74 28 75 69 6e 74 29 63 68 30 20  n cast(uint)ch0 
cbf0: 7c 20 63 61 73 74 28 75 69 6e 74 29 28 63 68 31  | cast(uint)(ch1
cc00: 20 3c 3c 20 38 29 20 7c 20 63 61 73 74 28 75 69   << 8) | cast(ui
cc10: 6e 74 29 28 63 68 32 20 3c 3c 20 31 36 29 20 7c  nt)(ch2 << 16) |
cc20: 20 63 61 73 74 28 75 69 6e 74 29 28 63 68 33 20   cast(uint)(ch3 
cc30: 3c 3c 20 32 34 20 29 3b 0d 0a 7d 0d 0a 74 65 6d  << 24 );..}..tem
cc40: 70 6c 61 74 65 20 54 5f 4d 41 4b 45 46 4f 55 52  plate T_MAKEFOUR
cc50: 43 43 28 75 62 79 74 65 20 63 68 30 2c 20 75 62  CC(ubyte ch0, ub
cc60: 79 74 65 20 63 68 31 2c 20 75 62 79 74 65 20 63  yte ch1, ubyte c
cc70: 68 32 2c 20 75 62 79 74 65 20 63 68 33 29 20 7b  h2, ubyte ch3) {
cc80: 0d 0a 20 20 20 20 63 6f 6e 73 74 20 54 5f 4d 41  ..    const T_MA
cc90: 4b 45 46 4f 55 52 43 43 20 3d 20 63 61 73 74 28  KEFOURCC = cast(
cca0: 75 69 6e 74 29 63 68 30 20 7c 20 63 61 73 74 28  uint)ch0 | cast(
ccb0: 75 69 6e 74 29 28 63 68 31 20 3c 3c 20 38 29 20  uint)(ch1 << 8) 
ccc0: 7c 20 63 61 73 74 28 75 69 6e 74 29 28 63 68 32  | cast(uint)(ch2
ccd0: 20 3c 3c 20 31 36 29 20 7c 20 63 61 73 74 28 75   << 16) | cast(u
cce0: 69 6e 74 29 28 63 68 33 20 3c 3c 20 32 34 20 29  int)(ch3 << 24 )
ccf0: 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  ;..}....enum : D
cd00: 33 44 46 4f 52 4d 41 54 20 7b 0d 0a 20 20 20 20  3DFORMAT {..    
cd10: 44 33 44 46 4d 54 5f 55 4e 4b 4e 4f 57 4e 20 20  D3DFMT_UNKNOWN  
cd20: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 20 30              =  0
cd30: 2c 0d 0a 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  ,....    D3DFMT_
cd40: 52 38 47 38 42 38 20 20 20 20 20 20 20 20 20 20  R8G8B8          
cd50: 20 20 20 20 20 3d 20 32 30 2c 0d 0a 20 20 20 20       = 20,..    
cd60: 44 33 44 46 4d 54 5f 41 38 52 38 47 38 42 38 20  D3DFMT_A8R8G8B8 
cd70: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 31              = 21
cd80: 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 58 38  ,..    D3DFMT_X8
cd90: 52 38 47 38 42 38 20 20 20 20 20 20 20 20 20 20  R8G8B8          
cda0: 20 20 20 3d 20 32 32 2c 0d 0a 20 20 20 20 44 33     = 22,..    D3
cdb0: 44 46 4d 54 5f 52 35 47 36 42 35 20 20 20 20 20  DFMT_R5G6B5     
cdc0: 20 20 20 20 20 20 20 20 20 20 3d 20 32 33 2c 0d            = 23,.
cdd0: 0a 20 20 20 20 44 33 44 46 4d 54 5f 58 31 52 35  .    D3DFMT_X1R5
cde0: 47 35 42 35 20 20 20 20 20 20 20 20 20 20 20 20  G5B5            
cdf0: 20 3d 20 32 34 2c 0d 0a 20 20 20 20 44 33 44 46   = 24,..    D3DF
ce00: 4d 54 5f 41 31 52 35 47 35 42 35 20 20 20 20 20  MT_A1R5G5B5     
ce10: 20 20 20 20 20 20 20 20 3d 20 32 35 2c 0d 0a 20          = 25,.. 
ce20: 20 20 20 44 33 44 46 4d 54 5f 41 34 52 34 47 34     D3DFMT_A4R4G4
ce30: 42 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  B4             =
ce40: 20 32 36 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54   26,..    D3DFMT
ce50: 5f 52 33 47 33 42 32 20 20 20 20 20 20 20 20 20  _R3G3B2         
ce60: 20 20 20 20 20 20 3d 20 32 37 2c 0d 0a 20 20 20        = 27,..   
ce70: 20 44 33 44 46 4d 54 5f 41 38 20 20 20 20 20 20   D3DFMT_A8      
ce80: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32               = 2
ce90: 38 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 41  8,..    D3DFMT_A
cea0: 38 52 33 47 33 42 32 20 20 20 20 20 20 20 20 20  8R3G3B2         
ceb0: 20 20 20 20 3d 20 32 39 2c 0d 0a 20 20 20 20 44      = 29,..    D
cec0: 33 44 46 4d 54 5f 58 34 52 34 47 34 42 34 20 20  3DFMT_X4R4G4B4  
ced0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 33 30 2c             = 30,
cee0: 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 41 32 42  ..    D3DFMT_A2B
cef0: 31 30 47 31 30 52 31 30 20 20 20 20 20 20 20 20  10G10R10        
cf00: 20 20 3d 20 33 31 2c 0d 0a 20 20 20 20 44 33 44    = 31,..    D3D
cf10: 46 4d 54 5f 41 38 42 38 47 38 52 38 20 20 20 20  FMT_A8B8G8R8    
cf20: 20 20 20 20 20 20 20 20 20 3d 20 33 32 2c 0d 0a           = 32,..
cf30: 20 20 20 20 44 33 44 46 4d 54 5f 58 38 42 38 47      D3DFMT_X8B8G
cf40: 38 52 38 20 20 20 20 20 20 20 20 20 20 20 20 20  8R8             
cf50: 3d 20 33 33 2c 0d 0a 20 20 20 20 44 33 44 46 4d  = 33,..    D3DFM
cf60: 54 5f 47 31 36 52 31 36 20 20 20 20 20 20 20 20  T_G16R16        
cf70: 20 20 20 20 20 20 20 3d 20 33 34 2c 0d 0a 20 20         = 34,..  
cf80: 20 20 44 33 44 46 4d 54 5f 41 32 52 31 30 47 31    D3DFMT_A2R10G1
cf90: 30 42 31 30 20 20 20 20 20 20 20 20 20 20 3d 20  0B10          = 
cfa0: 33 35 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  35,..    D3DFMT_
cfb0: 41 31 36 42 31 36 47 31 36 52 31 36 20 20 20 20  A16B16G16R16    
cfc0: 20 20 20 20 20 3d 20 33 36 2c 0d 0a 0d 0a 20 20       = 36,....  
cfd0: 20 20 44 33 44 46 4d 54 5f 41 38 50 38 20 20 20    D3DFMT_A8P8   
cfe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
cff0: 34 30 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  40,..    D3DFMT_
d000: 50 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20  P8              
d010: 20 20 20 20 20 3d 20 34 31 2c 0d 0a 0d 0a 20 20       = 41,....  
d020: 20 20 44 33 44 46 4d 54 5f 4c 38 20 20 20 20 20    D3DFMT_L8     
d030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
d040: 35 30 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  50,..    D3DFMT_
d050: 41 38 4c 38 20 20 20 20 20 20 20 20 20 20 20 20  A8L8            
d060: 20 20 20 20 20 3d 20 35 31 2c 0d 0a 20 20 20 20       = 51,..    
d070: 44 33 44 46 4d 54 5f 41 34 4c 34 20 20 20 20 20  D3DFMT_A4L4     
d080: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 35 32              = 52
d090: 2c 0d 0a 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  ,....    D3DFMT_
d0a0: 56 38 55 38 20 20 20 20 20 20 20 20 20 20 20 20  V8U8            
d0b0: 20 20 20 20 20 3d 20 36 30 2c 0d 0a 20 20 20 20       = 60,..    
d0c0: 44 33 44 46 4d 54 5f 4c 36 56 35 55 35 20 20 20  D3DFMT_L6V5U5   
d0d0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 36 31              = 61
d0e0: 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 58 38  ,..    D3DFMT_X8
d0f0: 4c 38 56 38 55 38 20 20 20 20 20 20 20 20 20 20  L8V8U8          
d100: 20 20 20 3d 20 36 32 2c 0d 0a 20 20 20 20 44 33     = 62,..    D3
d110: 44 46 4d 54 5f 51 38 57 38 56 38 55 38 20 20 20  DFMT_Q8W8V8U8   
d120: 20 20 20 20 20 20 20 20 20 20 3d 20 36 33 2c 0d            = 63,.
d130: 0a 20 20 20 20 44 33 44 46 4d 54 5f 56 31 36 55  .    D3DFMT_V16U
d140: 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20  16              
d150: 20 3d 20 36 34 2c 0d 0a 20 20 20 20 44 33 44 46   = 64,..    D3DF
d160: 4d 54 5f 41 32 57 31 30 56 31 30 55 31 30 20 20  MT_A2W10V10U10  
d170: 20 20 20 20 20 20 20 20 3d 20 36 37 2c 0d 0a 0d          = 67,...
d180: 0a 20 20 20 20 44 33 44 46 4d 54 5f 55 59 56 59  .    D3DFMT_UYVY
d190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d1a0: 20 3d 20 54 5f 4d 41 4b 45 46 4f 55 52 43 43 21   = T_MAKEFOURCC!
d1b0: 28 27 55 27 2c 20 27 59 27 2c 20 27 56 27 2c 20  ('U', 'Y', 'V', 
d1c0: 27 59 27 29 2c 0d 0a 20 20 20 20 44 33 44 46 4d  'Y'),..    D3DFM
d1d0: 54 5f 52 38 47 38 5f 42 38 47 38 20 20 20 20 20  T_R8G8_B8G8     
d1e0: 20 20 20 20 20 20 20 3d 20 54 5f 4d 41 4b 45 46         = T_MAKEF
d1f0: 4f 55 52 43 43 21 28 27 52 27 2c 20 27 47 27 2c  OURCC!('R', 'G',
d200: 20 27 42 27 2c 20 27 47 27 29 2c 0d 0a 20 20 20   'B', 'G'),..   
d210: 20 44 33 44 46 4d 54 5f 59 55 59 32 20 20 20 20   D3DFMT_YUY2    
d220: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 54               = T
d230: 5f 4d 41 4b 45 46 4f 55 52 43 43 21 28 27 59 27  _MAKEFOURCC!('Y'
d240: 2c 20 27 55 27 2c 20 27 59 27 2c 20 27 32 27 29  , 'U', 'Y', '2')
d250: 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 47 38  ,..    D3DFMT_G8
d260: 52 38 5f 47 38 42 38 20 20 20 20 20 20 20 20 20  R8_G8B8         
d270: 20 20 20 3d 20 54 5f 4d 41 4b 45 46 4f 55 52 43     = T_MAKEFOURC
d280: 43 21 28 27 47 27 2c 20 27 52 27 2c 20 27 47 27  C!('G', 'R', 'G'
d290: 2c 20 27 42 27 29 2c 0d 0a 20 20 20 20 44 33 44  , 'B'),..    D3D
d2a0: 46 4d 54 5f 44 58 54 31 20 20 20 20 20 20 20 20  FMT_DXT1        
d2b0: 20 20 20 20 20 20 20 20 20 3d 20 54 5f 4d 41 4b           = T_MAK
d2c0: 45 46 4f 55 52 43 43 21 28 27 44 27 2c 20 27 58  EFOURCC!('D', 'X
d2d0: 27 2c 20 27 54 27 2c 20 27 31 27 29 2c 0d 0a 20  ', 'T', '1'),.. 
d2e0: 20 20 20 44 33 44 46 4d 54 5f 44 58 54 32 20 20     D3DFMT_DXT2  
d2f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
d300: 20 54 5f 4d 41 4b 45 46 4f 55 52 43 43 21 28 27   T_MAKEFOURCC!('
d310: 44 27 2c 20 27 58 27 2c 20 27 54 27 2c 20 27 32  D', 'X', 'T', '2
d320: 27 29 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  '),..    D3DFMT_
d330: 44 58 54 33 20 20 20 20 20 20 20 20 20 20 20 20  DXT3            
d340: 20 20 20 20 20 3d 20 54 5f 4d 41 4b 45 46 4f 55       = T_MAKEFOU
d350: 52 43 43 21 28 27 44 27 2c 20 27 58 27 2c 20 27  RCC!('D', 'X', '
d360: 54 27 2c 20 27 33 27 29 2c 0d 0a 20 20 20 20 44  T', '3'),..    D
d370: 33 44 46 4d 54 5f 44 58 54 34 20 20 20 20 20 20  3DFMT_DXT4      
d380: 20 20 20 20 20 20 20 20 20 20 20 3d 20 54 5f 4d             = T_M
d390: 41 4b 45 46 4f 55 52 43 43 21 28 27 44 27 2c 20  AKEFOURCC!('D', 
d3a0: 27 58 27 2c 20 27 54 27 2c 20 27 34 27 29 2c 0d  'X', 'T', '4'),.
d3b0: 0a 20 20 20 20 44 33 44 46 4d 54 5f 44 58 54 35  .    D3DFMT_DXT5
d3c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d3d0: 20 3d 20 54 5f 4d 41 4b 45 46 4f 55 52 43 43 21   = T_MAKEFOURCC!
d3e0: 28 27 44 27 2c 20 27 58 27 2c 20 27 54 27 2c 20  ('D', 'X', 'T', 
d3f0: 27 35 27 29 2c 0d 0a 0d 0a 20 20 20 20 44 33 44  '5'),....    D3D
d400: 46 4d 54 5f 44 31 36 5f 4c 4f 43 4b 41 42 4c 45  FMT_D16_LOCKABLE
d410: 20 20 20 20 20 20 20 20 20 3d 20 37 30 2c 0d 0a           = 70,..
d420: 20 20 20 20 44 33 44 46 4d 54 5f 44 33 32 20 20      D3DFMT_D32  
d430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d440: 3d 20 37 31 2c 0d 0a 20 20 20 20 44 33 44 46 4d  = 71,..    D3DFM
d450: 54 5f 44 31 35 53 31 20 20 20 20 20 20 20 20 20  T_D15S1         
d460: 20 20 20 20 20 20 20 3d 20 37 33 2c 0d 0a 20 20         = 73,..  
d470: 20 20 44 33 44 46 4d 54 5f 44 32 34 53 38 20 20    D3DFMT_D24S8  
d480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
d490: 37 35 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  75,..    D3DFMT_
d4a0: 44 32 34 58 38 20 20 20 20 20 20 20 20 20 20 20  D24X8           
d4b0: 20 20 20 20 20 3d 20 37 37 2c 0d 0a 20 20 20 20       = 77,..    
d4c0: 44 33 44 46 4d 54 5f 44 32 34 58 34 53 34 20 20  D3DFMT_D24X4S4  
d4d0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 37 39              = 79
d4e0: 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 44 31  ,..    D3DFMT_D1
d4f0: 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  6               
d500: 20 20 20 3d 20 38 30 2c 0d 0a 0d 0a 20 20 20 20     = 80,....    
d510: 44 33 44 46 4d 54 5f 44 33 32 46 5f 4c 4f 43 4b  D3DFMT_D32F_LOCK
d520: 41 42 4c 45 20 20 20 20 20 20 20 20 3d 20 38 32  ABLE        = 82
d530: 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 44 32  ,..    D3DFMT_D2
d540: 34 46 53 38 20 20 20 20 20 20 20 20 20 20 20 20  4FS8            
d550: 20 20 20 3d 20 38 33 2c 0d 0a 0d 0a 20 20 20 20     = 83,....    
d560: 2f 2a 20 5a 2d 53 74 65 6e 63 69 6c 20 66 6f 72  /* Z-Stencil for
d570: 6d 61 74 73 20 76 61 6c 69 64 20 66 6f 72 20 43  mats valid for C
d580: 50 55 20 61 63 63 65 73 73 20 2a 2f 0d 0a 20 20  PU access */..  
d590: 20 20 44 33 44 46 4d 54 5f 44 33 32 5f 4c 4f 43    D3DFMT_D32_LOC
d5a0: 4b 41 42 4c 45 20 20 20 20 20 20 20 20 20 3d 20  KABLE         = 
d5b0: 38 34 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  84,..    D3DFMT_
d5c0: 53 38 5f 4c 4f 43 4b 41 42 4c 45 20 20 20 20 20  S8_LOCKABLE     
d5d0: 20 20 20 20 20 3d 20 38 35 2c 0d 0a 0d 0a 20 20       = 85,....  
d5e0: 20 20 44 33 44 46 4d 54 5f 4c 31 36 20 20 20 20    D3DFMT_L16    
d5f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
d600: 38 31 2c 0d 0a 0d 0a 20 20 20 20 44 33 44 46 4d  81,....    D3DFM
d610: 54 5f 56 45 52 54 45 58 44 41 54 41 20 20 20 20  T_VERTEXDATA    
d620: 20 20 20 20 20 20 20 3d 31 30 30 2c 0d 0a 20 20         =100,..  
d630: 20 20 44 33 44 46 4d 54 5f 49 4e 44 45 58 31 36    D3DFMT_INDEX16
d640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 31                =1
d650: 30 31 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f  01,..    D3DFMT_
d660: 49 4e 44 45 58 33 32 20 20 20 20 20 20 20 20 20  INDEX32         
d670: 20 20 20 20 20 3d 31 30 32 2c 0d 0a 0d 0a 20 20       =102,....  
d680: 20 20 44 33 44 46 4d 54 5f 51 31 36 57 31 36 56    D3DFMT_Q16W16V
d690: 31 36 55 31 36 20 20 20 20 20 20 20 20 20 3d 31  16U16         =1
d6a0: 31 30 2c 0d 0a 0d 0a 20 20 20 20 44 33 44 46 4d  10,....    D3DFM
d6b0: 54 5f 4d 55 4c 54 49 32 5f 41 52 47 42 38 20 20  T_MULTI2_ARGB8  
d6c0: 20 20 20 20 20 20 20 3d 20 54 5f 4d 41 4b 45 46         = T_MAKEF
d6d0: 4f 55 52 43 43 21 28 27 4d 27 2c 27 45 27 2c 27  OURCC!('M','E','
d6e0: 54 27 2c 27 31 27 29 2c 0d 0a 0d 0a 20 20 20 20  T','1'),....    
d6f0: 2f 2f 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  // Floating poin
d700: 74 20 73 75 72 66 61 63 65 20 66 6f 72 6d 61 74  t surface format
d710: 73 0d 0a 0d 0a 20 20 20 20 2f 2f 20 73 31 30 65  s....    // s10e
d720: 35 20 66 6f 72 6d 61 74 73 20 28 31 36 2d 62 69  5 formats (16-bi
d730: 74 73 20 70 65 72 20 63 68 61 6e 6e 65 6c 29 0d  ts per channel).
d740: 0a 20 20 20 20 44 33 44 46 4d 54 5f 52 31 36 46  .    D3DFMT_R16F
d750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
d760: 20 3d 20 31 31 31 2c 0d 0a 20 20 20 20 44 33 44   = 111,..    D3D
d770: 46 4d 54 5f 47 31 36 52 31 36 46 20 20 20 20 20  FMT_G16R16F     
d780: 20 20 20 20 20 20 20 20 20 3d 20 31 31 32 2c 0d           = 112,.
d790: 0a 20 20 20 20 44 33 44 46 4d 54 5f 41 31 36 42  .    D3DFMT_A16B
d7a0: 31 36 47 31 36 52 31 36 46 20 20 20 20 20 20 20  16G16R16F       
d7b0: 20 3d 20 31 31 33 2c 0d 0a 0d 0a 20 20 20 20 2f   = 113,....    /
d7c0: 2f 20 49 45 45 45 20 73 32 33 65 38 20 66 6f 72  / IEEE s23e8 for
d7d0: 6d 61 74 73 20 28 33 32 2d 62 69 74 73 20 70 65  mats (32-bits pe
d7e0: 72 20 63 68 61 6e 6e 65 6c 29 0d 0a 20 20 20 20  r channel)..    
d7f0: 44 33 44 46 4d 54 5f 52 33 32 46 20 20 20 20 20  D3DFMT_R32F     
d800: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 31              = 11
d810: 34 2c 0d 0a 20 20 20 20 44 33 44 46 4d 54 5f 47  4,..    D3DFMT_G
d820: 33 32 52 33 32 46 20 20 20 20 20 20 20 20 20 20  32R32F          
d830: 20 20 20 20 3d 20 31 31 35 2c 0d 0a 20 20 20 20      = 115,..    
d840: 44 33 44 46 4d 54 5f 41 33 32 42 33 32 47 33 32  D3DFMT_A32B32G32
d850: 52 33 32 46 20 20 20 20 20 20 20 20 3d 20 31 31  R32F        = 11
d860: 36 2c 0d 0a 0d 0a 20 20 20 20 44 33 44 46 4d 54  6,....    D3DFMT
d870: 5f 43 78 56 38 55 38 20 20 20 20 20 20 20 20 20  _CxV8U8         
d880: 20 20 20 20 20 20 3d 20 31 31 37 2c 0d 0a 0d 0a        = 117,....
d890: 20 20 20 20 2f 2f 20 4d 6f 6e 6f 63 68 72 6f 6d      // Monochrom
d8a0: 65 20 31 20 62 69 74 20 70 65 72 20 70 69 78 65  e 1 bit per pixe
d8b0: 6c 20 66 6f 72 6d 61 74 0d 0a 20 20 20 20 44 33  l format..    D3
d8c0: 44 46 4d 54 5f 41 31 20 20 20 20 20 20 20 20 20  DFMT_A1         
d8d0: 20 20 20 20 20 20 20 20 20 20 3d 20 31 31 38 2c            = 118,
d8e0: 0d 0a 0d 0a 0d 0a 20 20 20 20 2f 2f 20 42 69 6e  ......    // Bin
d8f0: 61 72 79 20 66 6f 72 6d 61 74 20 69 6e 64 69 63  ary format indic
d900: 61 74 69 6e 67 20 74 68 61 74 20 74 68 65 20 64  ating that the d
d910: 61 74 61 20 68 61 73 20 6e 6f 20 69 6e 68 65 72  ata has no inher
d920: 65 6e 74 20 74 79 70 65 0d 0a 20 20 20 20 44 33  ent type..    D3
d930: 44 46 4d 54 5f 42 49 4e 41 52 59 42 55 46 46 45  DFMT_BINARYBUFFE
d940: 52 20 20 20 20 20 20 20 20 20 3d 20 31 39 39 0d  R         = 199.
d950: 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65  .}..alias TypeDe
d960: 66 21 28 75 69 6e 74 29 20 44 33 44 46 4f 52 4d  f!(uint) D3DFORM
d970: 41 54 3b 0d 0a 0d 0a 2f 2a 20 44 69 73 70 6c 61  AT;..../* Displa
d980: 79 20 4d 6f 64 65 73 20 2a 2f 0d 0a 73 74 72 75  y Modes */..stru
d990: 63 74 20 44 33 44 44 49 53 50 4c 41 59 4d 4f 44  ct D3DDISPLAYMOD
d9a0: 45 20 7b 0d 0a 20 20 20 20 75 69 6e 74 20 20 20  E {..    uint   
d9b0: 20 20 20 20 20 20 20 20 20 57 69 64 74 68 3b 0d           Width;.
d9c0: 0a 20 20 20 20 75 69 6e 74 20 20 20 20 20 20 20  .    uint       
d9d0: 20 20 20 20 20 48 65 69 67 68 74 3b 0d 0a 20 20       Height;..  
d9e0: 20 20 75 69 6e 74 20 20 20 20 20 20 20 20 20 20    uint          
d9f0: 20 20 52 65 66 72 65 73 68 52 61 74 65 3b 0d 0a    RefreshRate;..
da00: 20 20 20 20 44 33 44 46 4f 52 4d 41 54 20 20 20      D3DFORMAT   
da10: 20 20 20 20 46 6f 72 6d 61 74 3b 0d 0a 7d 0d 0a      Format;..}..
da20: 0d 0a 2f 2a 20 43 72 65 61 74 69 6f 6e 20 50 61  ../* Creation Pa
da30: 72 61 6d 65 74 65 72 73 20 2a 2f 0d 0a 73 74 72  rameters */..str
da40: 75 63 74 20 44 33 44 44 45 56 49 43 45 5f 43 52  uct D3DDEVICE_CR
da50: 45 41 54 49 4f 4e 5f 50 41 52 41 4d 45 54 45 52  EATION_PARAMETER
da60: 53 0d 0a 7b 0d 0a 20 20 20 20 55 49 4e 54 20 20  S..{..    UINT  
da70: 20 20 20 20 20 20 20 20 20 20 41 64 61 70 74 65            Adapte
da80: 72 4f 72 64 69 6e 61 6c 3b 0d 0a 20 20 20 20 44  rOrdinal;..    D
da90: 33 44 44 45 56 54 59 50 45 20 20 20 20 20 20 44  3DDEVTYPE      D
daa0: 65 76 69 63 65 54 79 70 65 3b 0d 0a 20 20 20 20  eviceType;..    
dab0: 48 57 4e 44 20 20 20 20 20 20 20 20 20 20 20 20  HWND            
dac0: 68 46 6f 63 75 73 57 69 6e 64 6f 77 3b 0d 0a 20  hFocusWindow;.. 
dad0: 20 20 20 44 57 4f 52 44 20 20 20 20 20 20 20 20     DWORD        
dae0: 20 20 20 42 65 68 61 76 69 6f 72 46 6c 61 67 73     BehaviorFlags
daf0: 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2a 20 53 77 61  ;..}....../* Swa
db00: 70 45 66 66 65 63 74 73 20 2a 2f 0d 0a 65 6e 75  pEffects */..enu
db10: 6d 20 3a 20 44 33 44 53 57 41 50 45 46 46 45 43  m : D3DSWAPEFFEC
db20: 54 20 7b 0d 0a 20 20 20 20 44 33 44 53 57 41 50  T {..    D3DSWAP
db30: 45 46 46 45 43 54 5f 44 49 53 43 41 52 44 20 20  EFFECT_DISCARD  
db40: 20 20 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 20           = 1,.. 
db50: 20 20 20 44 33 44 53 57 41 50 45 46 46 45 43 54     D3DSWAPEFFECT
db60: 5f 46 4c 49 50 20 20 20 20 20 20 20 20 20 20 20  _FLIP           
db70: 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44     = 2,..    D3D
db80: 53 57 41 50 45 46 46 45 43 54 5f 43 4f 50 59 20  SWAPEFFECT_COPY 
db90: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 33               = 3
dba0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
dbb0: 65 66 21 28 75 69 6e 74 29 20 44 33 44 53 57 41  ef!(uint) D3DSWA
dbc0: 50 45 46 46 45 43 54 3b 0d 0a 0d 0a 2f 2a 20 50  PEFFECT;..../* P
dbd0: 6f 6f 6c 20 74 79 70 65 73 20 2a 2f 0d 0a 65 6e  ool types */..en
dbe0: 75 6d 20 3a 20 44 33 44 50 4f 4f 4c 20 7b 0d 0a  um : D3DPOOL {..
dbf0: 20 20 20 20 44 33 44 50 4f 4f 4c 5f 44 45 46 41      D3DPOOL_DEFA
dc00: 55 4c 54 20 20 20 20 20 20 20 20 20 20 20 20 20  ULT             
dc10: 20 20 20 20 3d 20 30 2c 0d 0a 20 20 20 20 44 33      = 0,..    D3
dc20: 44 50 4f 4f 4c 5f 4d 41 4e 41 47 45 44 20 20 20  DPOOL_MANAGED   
dc30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
dc40: 31 2c 0d 0a 20 20 20 20 44 33 44 50 4f 4f 4c 5f  1,..    D3DPOOL_
dc50: 53 59 53 54 45 4d 4d 45 4d 20 20 20 20 20 20 20  SYSTEMMEM       
dc60: 20 20 20 20 20 20 20 20 3d 20 32 2c 0d 0a 20 20          = 2,..  
dc70: 20 20 44 33 44 50 4f 4f 4c 5f 53 43 52 41 54 43    D3DPOOL_SCRATC
dc80: 48 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  H               
dc90: 20 20 3d 20 33 0d 0a 7d 0d 0a 61 6c 69 61 73 20    = 3..}..alias 
dca0: 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20 44  TypeDef!(uint) D
dcb0: 33 44 50 4f 4f 4c 3b 0d 0a 0d 0a 0d 0a 2f 2a 20  3DPOOL;....../* 
dcc0: 52 65 66 72 65 73 68 52 61 74 65 20 70 72 65 2d  RefreshRate pre-
dcd0: 64 65 66 69 6e 65 73 20 2a 2f 0d 0a 63 6f 6e 73  defines */..cons
dce0: 74 20 44 33 44 50 52 45 53 45 4e 54 5f 52 41 54  t D3DPRESENT_RAT
dcf0: 45 5f 44 45 46 41 55 4c 54 20 3d 20 30 78 30 30  E_DEFAULT = 0x00
dd00: 30 30 30 30 30 30 3b 0d 0a 0d 0a 0d 0a 2f 2a 20  000000;....../* 
dd10: 52 65 73 69 7a 65 20 4f 70 74 69 6f 6e 61 6c 20  Resize Optional 
dd20: 50 61 72 61 6d 65 74 65 72 73 20 2a 2f 0d 0a 73  Parameters */..s
dd30: 74 72 75 63 74 20 44 33 44 50 52 45 53 45 4e 54  truct D3DPRESENT
dd40: 5f 50 41 52 41 4d 45 54 45 52 53 0d 0a 7b 0d 0a  _PARAMETERS..{..
dd50: 20 20 20 20 55 49 4e 54 20 20 20 20 20 20 20 20      UINT        
dd60: 20 20 20 20 20 20 20 20 42 61 63 6b 42 75 66 66          BackBuff
dd70: 65 72 57 69 64 74 68 3b 0d 0a 20 20 20 20 55 49  erWidth;..    UI
dd80: 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NT              
dd90: 20 20 42 61 63 6b 42 75 66 66 65 72 48 65 69 67    BackBufferHeig
dda0: 68 74 3b 0d 0a 20 20 20 20 44 33 44 46 4f 52 4d  ht;..    D3DFORM
ddb0: 41 54 20 20 20 20 20 20 20 20 20 20 20 42 61 63  AT           Bac
ddc0: 6b 42 75 66 66 65 72 46 6f 72 6d 61 74 3b 0d 0a  kBufferFormat;..
ddd0: 20 20 20 20 55 49 4e 54 20 20 20 20 20 20 20 20      UINT        
dde0: 20 20 20 20 20 20 20 20 42 61 63 6b 42 75 66 66          BackBuff
ddf0: 65 72 43 6f 75 6e 74 3b 0d 0a 0d 0a 20 20 20 20  erCount;....    
de00: 44 33 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f 54  D3DMULTISAMPLE_T
de10: 59 50 45 20 4d 75 6c 74 69 53 61 6d 70 6c 65 54  YPE MultiSampleT
de20: 79 70 65 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20  ype;..    DWORD 
de30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 75                Mu
de40: 6c 74 69 53 61 6d 70 6c 65 51 75 61 6c 69 74 79  ltiSampleQuality
de50: 3b 0d 0a 0d 0a 20 20 20 20 44 33 44 53 57 41 50  ;....    D3DSWAP
de60: 45 46 46 45 43 54 20 20 20 20 20 20 20 53 77 61  EFFECT       Swa
de70: 70 45 66 66 65 63 74 3b 0d 0a 20 20 20 20 48 57  pEffect;..    HW
de80: 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ND              
de90: 20 20 68 44 65 76 69 63 65 57 69 6e 64 6f 77 3b    hDeviceWindow;
dea0: 0d 0a 20 20 20 20 42 4f 4f 4c 20 20 20 20 20 20  ..    BOOL      
deb0: 20 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77            Window
dec0: 65 64 3b 0d 0a 20 20 20 20 42 4f 4f 4c 20 20 20  ed;..    BOOL   
ded0: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 61               Ena
dee0: 62 6c 65 41 75 74 6f 44 65 70 74 68 53 74 65 6e  bleAutoDepthSten
def0: 63 69 6c 3b 0d 0a 20 20 20 20 44 33 44 46 4f 52  cil;..    D3DFOR
df00: 4d 41 54 20 20 20 20 20 20 20 20 20 20 20 41 75  MAT           Au
df10: 74 6f 44 65 70 74 68 53 74 65 6e 63 69 6c 46 6f  toDepthStencilFo
df20: 72 6d 61 74 3b 0d 0a 20 20 20 20 44 57 4f 52 44  rmat;..    DWORD
df30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46                 F
df40: 6c 61 67 73 3b 0d 0a 0d 0a 20 20 20 20 2f 2a 20  lags;....    /* 
df50: 46 75 6c 6c 53 63 72 65 65 6e 5f 52 65 66 72 65  FullScreen_Refre
df60: 73 68 52 61 74 65 49 6e 48 7a 20 6d 75 73 74 20  shRateInHz must 
df70: 62 65 20 7a 65 72 6f 20 66 6f 72 20 57 69 6e 64  be zero for Wind
df80: 6f 77 65 64 20 6d 6f 64 65 20 2a 2f 0d 0a 20 20  owed mode */..  
df90: 20 20 55 49 4e 54 20 20 20 20 20 20 20 20 20 20    UINT          
dfa0: 20 20 20 20 20 20 46 75 6c 6c 53 63 72 65 65 6e        FullScreen
dfb0: 5f 52 65 66 72 65 73 68 52 61 74 65 49 6e 48 7a  _RefreshRateInHz
dfc0: 3b 0d 0a 20 20 20 20 55 49 4e 54 20 20 20 20 20  ;..    UINT     
dfd0: 20 20 20 20 20 20 20 20 20 20 20 50 72 65 73 65             Prese
dfe0: 6e 74 61 74 69 6f 6e 49 6e 74 65 72 76 61 6c 3b  ntationInterval;
dff0: 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 56 61 6c 75 65 73  ..}....// Values
e000: 20 66 6f 72 20 44 33 44 50 52 45 53 45 4e 54 5f   for D3DPRESENT_
e010: 50 41 52 41 4d 45 54 45 52 53 2e 46 6c 61 67 73  PARAMETERS.Flags
e020: 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 50 52 45  ....const D3DPRE
e030: 53 45 4e 54 46 4c 41 47 5f 4c 4f 43 4b 41 42 4c  SENTFLAG_LOCKABL
e040: 45 5f 42 41 43 4b 42 55 46 46 45 52 20 3d 20 30  E_BACKBUFFER = 0
e050: 78 30 30 30 30 30 30 30 31 3b 0d 0a 63 6f 6e 73  x00000001;..cons
e060: 74 20 44 33 44 50 52 45 53 45 4e 54 46 4c 41 47  t D3DPRESENTFLAG
e070: 5f 44 49 53 43 41 52 44 5f 44 45 50 54 48 53 54  _DISCARD_DEPTHST
e080: 45 4e 43 49 4c 20 3d 20 30 78 30 30 30 30 30 30  ENCIL = 0x000000
e090: 30 32 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 50 52  02;..const D3DPR
e0a0: 45 53 45 4e 54 46 4c 41 47 5f 44 45 56 49 43 45  ESENTFLAG_DEVICE
e0b0: 43 4c 49 50 20 3d 20 30 78 30 30 30 30 30 30 30  CLIP = 0x0000000
e0c0: 34 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 50 52 45  4;..const D3DPRE
e0d0: 53 45 4e 54 46 4c 41 47 5f 56 49 44 45 4f 20 3d  SENTFLAG_VIDEO =
e0e0: 20 30 78 30 30 30 30 30 30 31 30 3b 0d 0a 0d 0a   0x00000010;....
e0f0: 63 6f 6e 73 74 20 44 33 44 50 52 45 53 45 4e 54  const D3DPRESENT
e100: 46 4c 41 47 5f 4e 4f 41 55 54 4f 52 4f 54 41 54  FLAG_NOAUTOROTAT
e110: 45 20 3d 20 30 78 30 30 30 30 30 30 32 30 3b 0d  E = 0x00000020;.
e120: 0a 63 6f 6e 73 74 20 44 33 44 50 52 45 53 45 4e  .const D3DPRESEN
e130: 54 46 4c 41 47 5f 55 4e 50 52 55 4e 45 44 4d 4f  TFLAG_UNPRUNEDMO
e140: 44 45 20 3d 20 30 78 30 30 30 30 30 30 34 30 3b  DE = 0x00000040;
e150: 0d 0a 0d 0a 2f 2a 20 47 61 6d 6d 61 20 52 61 6d  ..../* Gamma Ram
e160: 70 3a 20 53 61 6d 65 20 61 73 20 44 58 37 20 2a  p: Same as DX7 *
e170: 2f 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 47  /....struct D3DG
e180: 41 4d 4d 41 52 41 4d 50 0d 0a 7b 0d 0a 20 20 20  AMMARAMP..{..   
e190: 20 75 73 68 6f 72 74 5b 32 35 36 5d 20 72 65 64   ushort[256] red
e1a0: 3b 0d 0a 20 20 20 20 75 73 68 6f 72 74 5b 32 35  ;..    ushort[25
e1b0: 36 5d 20 67 72 65 65 6e 3b 0d 0a 20 20 20 20 75  6] green;..    u
e1c0: 73 68 6f 72 74 5b 32 35 36 5d 20 62 6c 75 65 3b  short[256] blue;
e1d0: 0d 0a 7d 0d 0a 0d 0a 2f 2a 20 42 61 63 6b 20 62  ..}..../* Back b
e1e0: 75 66 66 65 72 20 74 79 70 65 73 20 2a 2f 0d 0a  uffer types */..
e1f0: 65 6e 75 6d 20 3a 20 44 33 44 42 41 43 4b 42 55  enum : D3DBACKBU
e200: 46 46 45 52 5f 54 59 50 45 20 7b 0d 0a 20 20 20  FFER_TYPE {..   
e210: 20 44 33 44 42 41 43 4b 42 55 46 46 45 52 5f 54   D3DBACKBUFFER_T
e220: 59 50 45 5f 4d 4f 4e 4f 20 20 20 20 20 20 20 20  YPE_MONO        
e230: 20 3d 20 30 2c 0d 0a 20 20 20 20 44 33 44 42 41   = 0,..    D3DBA
e240: 43 4b 42 55 46 46 45 52 5f 54 59 50 45 5f 4c 45  CKBUFFER_TYPE_LE
e250: 46 54 20 20 20 20 20 20 20 20 20 3d 20 31 2c 0d  FT         = 1,.
e260: 0a 20 20 20 20 44 33 44 42 41 43 4b 42 55 46 46  .    D3DBACKBUFF
e270: 45 52 5f 54 59 50 45 5f 52 49 47 48 54 20 20 20  ER_TYPE_RIGHT   
e280: 20 20 20 20 20 3d 20 32 0d 0a 7d 0d 0a 61 6c 69       = 2..}..ali
e290: 61 73 20 54 79 70 65 44 65 66 21 28 75 69 6e 74  as TypeDef!(uint
e2a0: 29 20 44 33 44 42 41 43 4b 42 55 46 46 45 52 5f  ) D3DBACKBUFFER_
e2b0: 54 59 50 45 3b 0d 0a 0d 0a 2f 2a 20 54 79 70 65  TYPE;..../* Type
e2c0: 73 20 2a 2f 0d 0a 65 6e 75 6d 20 3a 20 44 33 44  s */..enum : D3D
e2d0: 52 45 53 4f 55 52 43 45 54 59 50 45 20 7b 0d 0a  RESOURCETYPE {..
e2e0: 20 20 20 20 44 33 44 52 54 59 50 45 5f 53 55 52      D3DRTYPE_SUR
e2f0: 46 41 43 45 20 20 20 20 20 20 20 20 20 20 20 20  FACE            
e300: 20 20 20 20 3d 20 20 31 2c 0d 0a 20 20 20 20 44      =  1,..    D
e310: 33 44 52 54 59 50 45 5f 56 4f 4c 55 4d 45 20 20  3DRTYPE_VOLUME  
e320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
e330: 20 20 32 2c 0d 0a 20 20 20 20 44 33 44 52 54 59    2,..    D3DRTY
e340: 50 45 5f 54 45 58 54 55 52 45 20 20 20 20 20 20  PE_TEXTURE      
e350: 20 20 20 20 20 20 20 20 20 20 3d 20 20 33 2c 0d            =  3,.
e360: 0a 20 20 20 20 44 33 44 52 54 59 50 45 5f 56 4f  .    D3DRTYPE_VO
e370: 4c 55 4d 45 54 45 58 54 55 52 45 20 20 20 20 20  LUMETEXTURE     
e380: 20 20 20 20 20 3d 20 20 34 2c 0d 0a 20 20 20 20       =  4,..    
e390: 44 33 44 52 54 59 50 45 5f 43 55 42 45 54 45 58  D3DRTYPE_CUBETEX
e3a0: 54 55 52 45 20 20 20 20 20 20 20 20 20 20 20 20  TURE            
e3b0: 3d 20 20 35 2c 0d 0a 20 20 20 20 44 33 44 52 54  =  5,..    D3DRT
e3c0: 59 50 45 5f 56 45 52 54 45 58 42 55 46 46 45 52  YPE_VERTEXBUFFER
e3d0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 20 36 2c             =  6,
e3e0: 0d 0a 20 20 20 20 44 33 44 52 54 59 50 45 5f 49  ..    D3DRTYPE_I
e3f0: 4e 44 45 58 42 55 46 46 45 52 20 20 20 20 20 20  NDEXBUFFER      
e400: 20 20 20 20 20 20 3d 20 20 37 20 20 20 20 20 20        =  7      
e410: 20 20 20 20 20 20 2f 2f 69 66 20 74 68 69 73 20        //if this 
e420: 63 68 61 6e 67 65 73 2c 20 63 68 61 6e 67 65 20  changes, change 
e430: 5f 44 33 44 44 45 56 49 4e 46 4f 5f 52 45 53 4f  _D3DDEVINFO_RESO
e440: 55 52 43 45 4d 41 4e 41 47 45 52 20 64 65 66 69  URCEMANAGER defi
e450: 6e 69 74 69 6f 6e 0d 0a 7d 0d 0a 61 6c 69 61 73  nition..}..alias
e460: 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20   TypeDef!(uint) 
e470: 44 33 44 52 45 53 4f 55 52 43 45 54 59 50 45 3b  D3DRESOURCETYPE;
e480: 0d 0a 0d 0a 2f 2a 20 55 73 61 67 65 73 20 2a 2f  ..../* Usages */
e490: 0d 0a 63 6f 6e 73 74 20 44 33 44 55 53 41 47 45  ..const D3DUSAGE
e4a0: 5f 52 45 4e 44 45 52 54 41 52 47 45 54 20 3d 20  _RENDERTARGET = 
e4b0: 30 78 30 30 30 30 30 30 30 31 4c 3b 0d 0a 63 6f  0x00000001L;..co
e4c0: 6e 73 74 20 44 33 44 55 53 41 47 45 5f 44 45 50  nst D3DUSAGE_DEP
e4d0: 54 48 53 54 45 4e 43 49 4c 20 3d 20 30 78 30 30  THSTENCIL = 0x00
e4e0: 30 30 30 30 30 32 4c 3b 0d 0a 63 6f 6e 73 74 20  000002L;..const 
e4f0: 44 33 44 55 53 41 47 45 5f 44 59 4e 41 4d 49 43  D3DUSAGE_DYNAMIC
e500: 20 3d 20 30 78 30 30 30 30 30 32 30 30 4c 3b 0d   = 0x00000200L;.
e510: 0a 63 6f 6e 73 74 20 44 33 44 55 53 41 47 45 5f  .const D3DUSAGE_
e520: 4e 4f 4e 53 45 43 55 52 45 20 3d 20 30 78 30 30  NONSECURE = 0x00
e530: 38 30 30 30 30 30 4c 3b 0d 0a 0d 0a 2f 2f 20 57  800000L;....// W
e540: 68 65 6e 20 70 61 73 73 65 64 20 74 6f 20 43 68  hen passed to Ch
e550: 65 63 6b 44 65 76 69 63 65 46 6f 72 6d 61 74 2c  eckDeviceFormat,
e560: 20 44 33 44 55 53 41 47 45 5f 41 55 54 4f 47 45   D3DUSAGE_AUTOGE
e570: 4e 4d 49 50 4d 41 50 20 6d 61 79 20 72 65 74 75  NMIPMAP may retu
e580: 72 6e 0d 0a 2f 2f 20 44 33 44 4f 4b 5f 4e 4f 41  rn..// D3DOK_NOA
e590: 55 54 4f 47 45 4e 20 69 66 20 74 68 65 20 64 65  UTOGEN if the de
e5a0: 76 69 63 65 20 64 6f 65 73 6e 27 74 20 73 75 70  vice doesn't sup
e5b0: 70 6f 72 74 20 61 75 74 6f 67 65 6e 65 72 61 74  port autogenerat
e5c0: 69 6f 6e 20 66 6f 72 20 74 68 61 74 20 66 6f 72  ion for that for
e5d0: 6d 61 74 2e 0d 0a 2f 2f 20 44 33 44 4f 4b 5f 4e  mat...// D3DOK_N
e5e0: 4f 41 55 54 4f 47 45 4e 20 69 73 20 61 20 73 75  OAUTOGEN is a su
e5f0: 63 63 65 73 73 20 63 6f 64 65 2c 20 6e 6f 74 20  ccess code, not 
e600: 61 20 66 61 69 6c 75 72 65 20 63 6f 64 65 2e 2e  a failure code..
e610: 2e 20 74 68 65 20 53 55 43 43 45 45 44 45 44 20  . the SUCCEEDED 
e620: 61 6e 64 20 46 41 49 4c 45 44 20 6d 61 63 72 6f  and FAILED macro
e630: 73 0d 0a 2f 2f 20 77 69 6c 6c 20 72 65 74 75 72  s..// will retur
e640: 6e 20 74 72 75 65 20 61 6e 64 20 66 61 6c 73 65  n true and false
e650: 20 72 65 73 70 65 63 74 69 76 65 6c 79 20 66 6f   respectively fo
e660: 72 20 74 68 69 73 20 63 6f 64 65 2e 0d 0a 63 6f  r this code...co
e670: 6e 73 74 20 44 33 44 55 53 41 47 45 5f 41 55 54  nst D3DUSAGE_AUT
e680: 4f 47 45 4e 4d 49 50 4d 41 50 20 3d 20 30 78 30  OGENMIPMAP = 0x0
e690: 30 30 30 30 34 30 30 4c 3b 0d 0a 63 6f 6e 73 74  0000400L;..const
e6a0: 20 44 33 44 55 53 41 47 45 5f 44 4d 41 50 20 3d   D3DUSAGE_DMAP =
e6b0: 20 30 78 30 30 30 30 34 30 30 30 4c 3b 0d 0a 0d   0x00004000L;...
e6c0: 0a 2f 2f 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e  .// The followin
e6d0: 67 20 75 73 61 67 65 73 20 61 72 65 20 76 61 6c  g usages are val
e6e0: 69 64 20 6f 6e 6c 79 20 66 6f 72 20 71 75 65 72  id only for quer
e6f0: 79 69 6e 67 20 43 68 65 63 6b 44 65 76 69 63 65  ying CheckDevice
e700: 46 6f 72 6d 61 74 0d 0a 63 6f 6e 73 74 20 44 33  Format..const D3
e710: 44 55 53 41 47 45 5f 51 55 45 52 59 5f 4c 45 47  DUSAGE_QUERY_LEG
e720: 41 43 59 42 55 4d 50 4d 41 50 20 3d 20 30 78 30  ACYBUMPMAP = 0x0
e730: 30 30 30 38 30 30 30 4c 3b 0d 0a 63 6f 6e 73 74  0008000L;..const
e740: 20 44 33 44 55 53 41 47 45 5f 51 55 45 52 59 5f   D3DUSAGE_QUERY_
e750: 53 52 47 42 52 45 41 44 20 3d 20 30 78 30 30 30  SRGBREAD = 0x000
e760: 31 30 30 30 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44  10000L;..const D
e770: 33 44 55 53 41 47 45 5f 51 55 45 52 59 5f 46 49  3DUSAGE_QUERY_FI
e780: 4c 54 45 52 20 3d 20 30 78 30 30 30 32 30 30 30  LTER = 0x0002000
e790: 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 55 53  0L;..const D3DUS
e7a0: 41 47 45 5f 51 55 45 52 59 5f 53 52 47 42 57 52  AGE_QUERY_SRGBWR
e7b0: 49 54 45 20 3d 20 30 78 30 30 30 34 30 30 30 30  ITE = 0x00040000
e7c0: 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 55 53 41  L;..const D3DUSA
e7d0: 47 45 5f 51 55 45 52 59 5f 50 4f 53 54 50 49 58  GE_QUERY_POSTPIX
e7e0: 45 4c 53 48 41 44 45 52 5f 42 4c 45 4e 44 49 4e  ELSHADER_BLENDIN
e7f0: 47 20 3d 20 30 78 30 30 30 38 30 30 30 30 4c 3b  G = 0x00080000L;
e800: 0d 0a 63 6f 6e 73 74 20 44 33 44 55 53 41 47 45  ..const D3DUSAGE
e810: 5f 51 55 45 52 59 5f 56 45 52 54 45 58 54 45 58  _QUERY_VERTEXTEX
e820: 54 55 52 45 20 3d 20 30 78 30 30 31 30 30 30 30  TURE = 0x0010000
e830: 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 55 53  0L;..const D3DUS
e840: 41 47 45 5f 51 55 45 52 59 5f 57 52 41 50 41 4e  AGE_QUERY_WRAPAN
e850: 44 4d 49 50 20 3d 20 30 78 30 30 32 30 30 30 30  DMIP = 0x0020000
e860: 30 4c 3b 0d 0a 0d 0a 2f 2a 20 55 73 61 67 65 73  0L;..../* Usages
e870: 20 66 6f 72 20 56 65 72 74 65 78 2f 49 6e 64 65   for Vertex/Inde
e880: 78 20 62 75 66 66 65 72 73 20 2a 2f 0d 0a 63 6f  x buffers */..co
e890: 6e 73 74 20 44 33 44 55 53 41 47 45 5f 57 52 49  nst D3DUSAGE_WRI
e8a0: 54 45 4f 4e 4c 59 20 3d 20 30 78 30 30 30 30 30  TEONLY = 0x00000
e8b0: 30 30 38 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  008L;..const D3D
e8c0: 55 53 41 47 45 5f 53 4f 46 54 57 41 52 45 50 52  USAGE_SOFTWAREPR
e8d0: 4f 43 45 53 53 49 4e 47 20 3d 20 30 78 30 30 30  OCESSING = 0x000
e8e0: 30 30 30 31 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44  00010L;..const D
e8f0: 33 44 55 53 41 47 45 5f 44 4f 4e 4f 54 43 4c 49  3DUSAGE_DONOTCLI
e900: 50 20 3d 20 30 78 30 30 30 30 30 30 32 30 4c 3b  P = 0x00000020L;
e910: 0d 0a 63 6f 6e 73 74 20 44 33 44 55 53 41 47 45  ..const D3DUSAGE
e920: 5f 50 4f 49 4e 54 53 20 3d 20 30 78 30 30 30 30  _POINTS = 0x0000
e930: 30 30 34 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33  0040L;..const D3
e940: 44 55 53 41 47 45 5f 52 54 50 41 54 43 48 45 53  DUSAGE_RTPATCHES
e950: 20 3d 20 30 78 30 30 30 30 30 30 38 30 4c 3b 0d   = 0x00000080L;.
e960: 0a 63 6f 6e 73 74 20 44 33 44 55 53 41 47 45 5f  .const D3DUSAGE_
e970: 4e 50 41 54 43 48 45 53 20 3d 20 30 78 30 30 30  NPATCHES = 0x000
e980: 30 30 31 30 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44  00100L;..const D
e990: 33 44 55 53 41 47 45 5f 54 45 58 54 41 50 49 20  3DUSAGE_TEXTAPI 
e9a0: 3d 20 30 78 31 30 30 30 30 30 30 30 4c 3b 0d 0a  = 0x10000000L;..
e9b0: 0d 0a 2f 2a 20 43 75 62 65 4d 61 70 20 46 61 63  ../* CubeMap Fac
e9c0: 65 20 69 64 65 6e 74 69 66 69 65 72 73 20 2a 2f  e identifiers */
e9d0: 0d 0a 65 6e 75 6d 20 3a 20 44 33 44 43 55 42 45  ..enum : D3DCUBE
e9e0: 4d 41 50 5f 46 41 43 45 53 20 7b 0d 0a 20 20 20  MAP_FACES {..   
e9f0: 20 44 33 44 43 55 42 45 4d 41 50 5f 46 41 43 45   D3DCUBEMAP_FACE
ea00: 5f 50 4f 53 49 54 49 56 45 5f 58 20 20 20 20 20  _POSITIVE_X     
ea10: 3d 20 30 2c 0d 0a 20 20 20 20 44 33 44 43 55 42  = 0,..    D3DCUB
ea20: 45 4d 41 50 5f 46 41 43 45 5f 4e 45 47 41 54 49  EMAP_FACE_NEGATI
ea30: 56 45 5f 58 20 20 20 20 20 3d 20 31 2c 0d 0a 20  VE_X     = 1,.. 
ea40: 20 20 20 44 33 44 43 55 42 45 4d 41 50 5f 46 41     D3DCUBEMAP_FA
ea50: 43 45 5f 50 4f 53 49 54 49 56 45 5f 59 20 20 20  CE_POSITIVE_Y   
ea60: 20 20 3d 20 32 2c 0d 0a 20 20 20 20 44 33 44 43    = 2,..    D3DC
ea70: 55 42 45 4d 41 50 5f 46 41 43 45 5f 4e 45 47 41  UBEMAP_FACE_NEGA
ea80: 54 49 56 45 5f 59 20 20 20 20 20 3d 20 33 2c 0d  TIVE_Y     = 3,.
ea90: 0a 20 20 20 20 44 33 44 43 55 42 45 4d 41 50 5f  .    D3DCUBEMAP_
eaa0: 46 41 43 45 5f 50 4f 53 49 54 49 56 45 5f 5a 20  FACE_POSITIVE_Z 
eab0: 20 20 20 20 3d 20 34 2c 0d 0a 20 20 20 20 44 33      = 4,..    D3
eac0: 44 43 55 42 45 4d 41 50 5f 46 41 43 45 5f 4e 45  DCUBEMAP_FACE_NE
ead0: 47 41 54 49 56 45 5f 5a 20 20 20 20 20 3d 20 35  GATIVE_Z     = 5
eae0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
eaf0: 65 66 21 28 75 69 6e 74 29 20 44 33 44 43 55 42  ef!(uint) D3DCUB
eb00: 45 4d 41 50 5f 46 41 43 45 53 3b 0d 0a 0d 0a 2f  EMAP_FACES;..../
eb10: 2a 20 4c 6f 63 6b 20 66 6c 61 67 73 20 2a 2f 0d  * Lock flags */.
eb20: 0a 63 6f 6e 73 74 20 44 33 44 4c 4f 43 4b 5f 52  .const D3DLOCK_R
eb30: 45 41 44 4f 4e 4c 59 20 3d 20 30 78 30 30 30 30  EADONLY = 0x0000
eb40: 30 30 31 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33  0010L;..const D3
eb50: 44 4c 4f 43 4b 5f 44 49 53 43 41 52 44 20 3d 20  DLOCK_DISCARD = 
eb60: 30 78 30 30 30 30 32 30 30 30 4c 3b 0d 0a 63 6f  0x00002000L;..co
eb70: 6e 73 74 20 44 33 44 4c 4f 43 4b 5f 4e 4f 4f 56  nst D3DLOCK_NOOV
eb80: 45 52 57 52 49 54 45 20 3d 20 30 78 30 30 30 30  ERWRITE = 0x0000
eb90: 31 30 30 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33  1000L;..const D3
eba0: 44 4c 4f 43 4b 5f 4e 4f 53 59 53 4c 4f 43 4b 20  DLOCK_NOSYSLOCK 
ebb0: 3d 20 30 78 30 30 30 30 30 38 30 30 4c 3b 0d 0a  = 0x00000800L;..
ebc0: 63 6f 6e 73 74 20 44 33 44 4c 4f 43 4b 5f 44 4f  const D3DLOCK_DO
ebd0: 4e 4f 54 57 41 49 54 20 3d 20 30 78 30 30 30 30  NOTWAIT = 0x0000
ebe0: 34 30 30 30 4c 3b 20 20 20 20 20 20 20 20 20 20  4000L;          
ebf0: 20 20 20 20 20 20 20 20 0d 0a 63 6f 6e 73 74 20          ..const 
ec00: 44 33 44 4c 4f 43 4b 5f 4e 4f 5f 44 49 52 54 59  D3DLOCK_NO_DIRTY
ec10: 5f 55 50 44 41 54 45 20 3d 20 30 78 30 30 30 30  _UPDATE = 0x0000
ec20: 38 30 30 30 4c 3b 0d 0a 0d 0a 2f 2a 20 56 65 72  8000L;..../* Ver
ec30: 74 65 78 20 42 75 66 66 65 72 20 44 65 73 63 72  tex Buffer Descr
ec40: 69 70 74 69 6f 6e 20 2a 2f 0d 0a 73 74 72 75 63  iption */..struc
ec50: 74 20 44 33 44 56 45 52 54 45 58 42 55 46 46 45  t D3DVERTEXBUFFE
ec60: 52 5f 44 45 53 43 20 7b 0d 0a 20 20 20 20 44 33  R_DESC {..    D3
ec70: 44 46 4f 52 4d 41 54 20 20 20 20 20 20 20 20 20  DFORMAT         
ec80: 20 20 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 44    Format;..    D
ec90: 33 44 52 45 53 4f 55 52 43 45 54 59 50 45 20 20  3DRESOURCETYPE  
eca0: 20 20 20 54 79 70 65 3b 0d 0a 20 20 20 20 44 57     Type;..    DW
ecb0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20  ORD             
ecc0: 20 20 55 73 61 67 65 3b 0d 0a 20 20 20 20 44 33    Usage;..    D3
ecd0: 44 50 4f 4f 4c 20 20 20 20 20 20 20 20 20 20 20  DPOOL           
ece0: 20 20 50 6f 6f 6c 3b 0d 0a 20 20 20 20 55 49 4e    Pool;..    UIN
ecf0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
ed00: 20 53 69 7a 65 3b 0d 0a 20 20 20 20 44 57 4f 52   Size;..    DWOR
ed10: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D               
ed20: 46 56 46 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 20 49 6e  FVF;..}..../* In
ed30: 64 65 78 20 42 75 66 66 65 72 20 44 65 73 63 72  dex Buffer Descr
ed40: 69 70 74 69 6f 6e 20 2a 2f 0d 0a 73 74 72 75 63  iption */..struc
ed50: 74 20 44 33 44 49 4e 44 45 58 42 55 46 46 45 52  t D3DINDEXBUFFER
ed60: 5f 44 45 53 43 20 7b 0d 0a 20 20 20 20 44 33 44  _DESC {..    D3D
ed70: 46 4f 52 4d 41 54 20 20 20 20 20 20 20 20 20 20  FORMAT          
ed80: 20 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 44 33   Format;..    D3
ed90: 44 52 45 53 4f 55 52 43 45 54 59 50 45 20 20 20  DRESOURCETYPE   
eda0: 20 20 54 79 70 65 3b 0d 0a 20 20 20 20 44 57 4f    Type;..    DWO
edb0: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  RD              
edc0: 20 55 73 61 67 65 3b 0d 0a 20 20 20 20 44 33 44   Usage;..    D3D
edd0: 50 4f 4f 4c 20 20 20 20 20 20 20 20 20 20 20 20  POOL            
ede0: 20 50 6f 6f 6c 3b 0d 0a 20 20 20 20 55 49 4e 54   Pool;..    UINT
edf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
ee00: 53 69 7a 65 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2a  Size;..}....../*
ee10: 20 53 75 72 66 61 63 65 20 44 65 73 63 72 69 70   Surface Descrip
ee20: 74 69 6f 6e 20 2a 2f 0d 0a 73 74 72 75 63 74 20  tion */..struct 
ee30: 44 33 44 53 55 52 46 41 43 45 5f 44 45 53 43 20  D3DSURFACE_DESC 
ee40: 7b 0d 0a 20 20 20 20 44 33 44 46 4f 52 4d 41 54  {..    D3DFORMAT
ee50: 20 20 20 20 20 20 20 20 20 20 20 46 6f 72 6d 61             Forma
ee60: 74 3b 0d 0a 20 20 20 20 44 33 44 52 45 53 4f 55  t;..    D3DRESOU
ee70: 52 43 45 54 59 50 45 20 20 20 20 20 54 79 70 65  RCETYPE     Type
ee80: 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20 20 20 20  ;..    DWORD    
ee90: 20 20 20 20 20 20 20 20 20 20 20 55 73 61 67 65             Usage
eea0: 3b 0d 0a 20 20 20 20 44 33 44 50 4f 4f 4c 20 20  ;..    D3DPOOL  
eeb0: 20 20 20 20 20 20 20 20 20 20 20 50 6f 6f 6c 3b             Pool;
eec0: 0d 0a 0d 0a 20 20 20 20 44 33 44 4d 55 4c 54 49  ....    D3DMULTI
eed0: 53 41 4d 50 4c 45 5f 54 59 50 45 20 4d 75 6c 74  SAMPLE_TYPE Mult
eee0: 69 53 61 6d 70 6c 65 54 79 70 65 3b 0d 0a 20 20  iSampleType;..  
eef0: 20 20 44 57 4f 52 44 20 20 20 20 20 20 20 20 20    DWORD         
ef00: 20 20 20 20 20 20 4d 75 6c 74 69 53 61 6d 70 6c        MultiSampl
ef10: 65 51 75 61 6c 69 74 79 3b 0d 0a 20 20 20 20 55  eQuality;..    U
ef20: 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  INT             
ef30: 20 20 20 57 69 64 74 68 3b 0d 0a 20 20 20 20 55     Width;..    U
ef40: 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  INT             
ef50: 20 20 20 48 65 69 67 68 74 3b 0d 0a 7d 0d 0a 0d     Height;..}...
ef60: 0a 73 74 72 75 63 74 20 44 33 44 56 4f 4c 55 4d  .struct D3DVOLUM
ef70: 45 5f 44 45 53 43 20 7b 0d 0a 20 20 20 20 44 33  E_DESC {..    D3
ef80: 44 46 4f 52 4d 41 54 20 20 20 20 20 20 20 20 20  DFORMAT         
ef90: 20 20 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 44    Format;..    D
efa0: 33 44 52 45 53 4f 55 52 43 45 54 59 50 45 20 20  3DRESOURCETYPE  
efb0: 20 20 20 54 79 70 65 3b 0d 0a 20 20 20 20 44 57     Type;..    DW
efc0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20  ORD             
efd0: 20 20 55 73 61 67 65 3b 0d 0a 20 20 20 20 44 33    Usage;..    D3
efe0: 44 50 4f 4f 4c 20 20 20 20 20 20 20 20 20 20 20  DPOOL           
eff0: 20 20 50 6f 6f 6c 3b 0d 0a 0d 0a 20 20 20 20 55    Pool;....    U
f000: 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  INT             
f010: 20 20 20 57 69 64 74 68 3b 0d 0a 20 20 20 20 55     Width;..    U
f020: 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  INT             
f030: 20 20 20 48 65 69 67 68 74 3b 0d 0a 20 20 20 20     Height;..    
f040: 55 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20  UINT            
f050: 20 20 20 20 44 65 70 74 68 3b 0d 0a 7d 0d 0a 0d      Depth;..}...
f060: 0a 2f 2a 20 53 74 72 75 63 74 75 72 65 20 66 6f  ./* Structure fo
f070: 72 20 4c 6f 63 6b 52 65 63 74 20 2a 2f 0d 0a 73  r LockRect */..s
f080: 74 72 75 63 74 20 44 33 44 4c 4f 43 4b 45 44 5f  truct D3DLOCKED_
f090: 52 45 43 54 20 7b 0d 0a 20 20 20 20 49 4e 54 20  RECT {..    INT 
f0a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f0b0: 50 69 74 63 68 3b 0d 0a 20 20 20 20 76 6f 69 64  Pitch;..    void
f0c0: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
f0d0: 70 42 69 74 73 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 20  pBits;..}..../* 
f0e0: 53 74 72 75 63 74 75 72 65 73 20 66 6f 72 20 4c  Structures for L
f0f0: 6f 63 6b 42 6f 78 20 2a 2f 0d 0a 73 74 72 75 63  ockBox */..struc
f100: 74 20 44 33 44 42 4f 58 20 7b 0d 0a 20 20 20 20  t D3DBOX {..    
f110: 55 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20  UINT            
f120: 20 20 20 20 4c 65 66 74 3b 0d 0a 20 20 20 20 55      Left;..    U
f130: 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  INT             
f140: 20 20 20 54 6f 70 3b 0d 0a 20 20 20 20 55 49 4e     Top;..    UIN
f150: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f160: 20 52 69 67 68 74 3b 0d 0a 20 20 20 20 55 49 4e   Right;..    UIN
f170: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f180: 20 42 6f 74 74 6f 6d 3b 0d 0a 20 20 20 20 55 49   Bottom;..    UI
f190: 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NT              
f1a0: 20 20 46 72 6f 6e 74 3b 0d 0a 20 20 20 20 55 49    Front;..    UI
f1b0: 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NT              
f1c0: 20 20 42 61 63 6b 3b 0d 0a 7d 0d 0a 0d 0a 73 74    Back;..}....st
f1d0: 72 75 63 74 20 44 33 44 4c 4f 43 4b 45 44 5f 42  ruct D3DLOCKED_B
f1e0: 4f 58 0d 0a 7b 0d 0a 20 20 20 20 49 4e 54 20 20  OX..{..    INT  
f1f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52                 R
f200: 6f 77 50 69 74 63 68 3b 0d 0a 20 20 20 20 49 4e  owPitch;..    IN
f210: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f220: 20 20 53 6c 69 63 65 50 69 74 63 68 3b 0d 0a 20    SlicePitch;.. 
f230: 20 20 20 76 6f 69 64 2a 20 20 20 20 20 20 20 20     void*        
f240: 20 20 20 20 20 20 20 70 42 69 74 73 3b 0d 0a 7d         pBits;..}
f250: 0d 0a 0d 0a 2f 2a 20 53 74 72 75 63 74 75 72 65  ..../* Structure
f260: 73 20 66 6f 72 20 4c 6f 63 6b 52 61 6e 67 65 20  s for LockRange 
f270: 2a 2f 0d 0a 73 74 72 75 63 74 20 44 33 44 52 41  */..struct D3DRA
f280: 4e 47 45 0d 0a 7b 0d 0a 20 20 20 20 55 49 4e 54  NGE..{..    UINT
f290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
f2a0: 4f 66 66 73 65 74 3b 0d 0a 20 20 20 20 55 49 4e  Offset;..    UIN
f2b0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f2c0: 20 53 69 7a 65 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 20   Size;..}..../* 
f2d0: 53 74 72 75 63 74 75 72 65 73 20 66 6f 72 20 68  Structures for h
f2e0: 69 67 68 20 6f 72 64 65 72 20 70 72 69 6d 69 74  igh order primit
f2f0: 69 76 65 73 20 2a 2f 0d 0a 73 74 72 75 63 74 20  ives */..struct 
f300: 44 33 44 52 45 43 54 50 41 54 43 48 5f 49 4e 46  D3DRECTPATCH_INF
f310: 4f 0d 0a 7b 0d 0a 20 20 20 20 55 49 4e 54 20 20  O..{..    UINT  
f320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 74                St
f330: 61 72 74 56 65 72 74 65 78 4f 66 66 73 65 74 57  artVertexOffsetW
f340: 69 64 74 68 3b 0d 0a 20 20 20 20 55 49 4e 54 20  idth;..    UINT 
f350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53                 S
f360: 74 61 72 74 56 65 72 74 65 78 4f 66 66 73 65 74  tartVertexOffset
f370: 48 65 69 67 68 74 3b 0d 0a 20 20 20 20 55 49 4e  Height;..    UIN
f380: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f390: 20 57 69 64 74 68 3b 0d 0a 20 20 20 20 55 49 4e   Width;..    UIN
f3a0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f3b0: 20 48 65 69 67 68 74 3b 0d 0a 20 20 20 20 55 49   Height;..    UI
f3c0: 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20  NT              
f3d0: 20 20 53 74 72 69 64 65 3b 0d 0a 20 20 20 20 44    Stride;..    D
f3e0: 33 44 42 41 53 49 53 54 59 50 45 20 20 20 20 20  3DBASISTYPE     
f3f0: 20 20 20 42 61 73 69 73 3b 0d 0a 20 20 20 20 44     Basis;..    D
f400: 33 44 44 45 47 52 45 45 54 59 50 45 20 20 20 20  3DDEGREETYPE    
f410: 20 20 20 44 65 67 72 65 65 3b 0d 0a 7d 0d 0a 0d     Degree;..}...
f420: 0a 73 74 72 75 63 74 20 44 33 44 54 52 49 50 41  .struct D3DTRIPA
f430: 54 43 48 5f 49 4e 46 4f 0d 0a 7b 0d 0a 20 20 20  TCH_INFO..{..   
f440: 20 55 49 4e 54 20 20 20 20 20 20 20 20 20 20 20   UINT           
f450: 20 20 20 20 20 53 74 61 72 74 56 65 72 74 65 78       StartVertex
f460: 4f 66 66 73 65 74 3b 0d 0a 20 20 20 20 55 49 4e  Offset;..    UIN
f470: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
f480: 20 4e 75 6d 56 65 72 74 69 63 65 73 3b 0d 0a 20   NumVertices;.. 
f490: 20 20 20 44 33 44 42 41 53 49 53 54 59 50 45 20     D3DBASISTYPE 
f4a0: 20 20 20 20 20 20 20 42 61 73 69 73 3b 0d 0a 20         Basis;.. 
f4b0: 20 20 20 44 33 44 44 45 47 52 45 45 54 59 50 45     D3DDEGREETYPE
f4c0: 20 20 20 20 20 20 20 44 65 67 72 65 65 3b 0d 0a         Degree;..
f4d0: 7d 0d 0a 0d 0a 2f 2a 20 41 64 61 70 74 65 72 20  }..../* Adapter 
f4e0: 49 64 65 6e 74 69 66 69 65 72 20 2a 2f 0d 0a 0d  Identifier */...
f4f0: 0a 63 6f 6e 73 74 20 4d 41 58 5f 44 45 56 49 43  .const MAX_DEVIC
f500: 45 5f 49 44 45 4e 54 49 46 49 45 52 5f 53 54 52  E_IDENTIFIER_STR
f510: 49 4e 47 20 3d 20 35 31 32 3b 0d 0a 73 74 72 75  ING = 512;..stru
f520: 63 74 20 44 33 44 41 44 41 50 54 45 52 5f 49 44  ct D3DADAPTER_ID
f530: 45 4e 54 49 46 49 45 52 39 0d 0a 7b 0d 0a 20 20  ENTIFIER9..{..  
f540: 20 20 63 68 61 72 5b 4d 41 58 5f 44 45 56 49 43    char[MAX_DEVIC
f550: 45 5f 49 44 45 4e 54 49 46 49 45 52 5f 53 54 52  E_IDENTIFIER_STR
f560: 49 4e 47 5d 20 44 72 69 76 65 72 3b 0d 0a 20 20  ING] Driver;..  
f570: 20 20 63 68 61 72 5b 4d 41 58 5f 44 45 56 49 43    char[MAX_DEVIC
f580: 45 5f 49 44 45 4e 54 49 46 49 45 52 5f 53 54 52  E_IDENTIFIER_STR
f590: 49 4e 47 5d 20 44 65 73 63 72 69 70 74 69 6f 6e  ING] Description
f5a0: 3b 0d 0a 20 20 20 20 63 68 61 72 5b 33 32 5d 20  ;..    char[32] 
f5b0: 44 65 76 69 63 65 4e 61 6d 65 3b 20 20 20 20 20  DeviceName;     
f5c0: 20 20 20 20 2f 2a 20 44 65 76 69 63 65 20 6e 61      /* Device na
f5d0: 6d 65 20 66 6f 72 20 47 44 49 20 28 65 78 2e 20  me for GDI (ex. 
f5e0: 5c 5c 2e 5c 44 49 53 50 4c 41 59 31 29 20 2a 2f  \\.\DISPLAY1) */
f5f0: 0d 0a 0d 0a 20 20 20 20 4c 41 52 47 45 5f 49 4e  ....    LARGE_IN
f600: 54 45 47 45 52 20 20 20 44 72 69 76 65 72 56 65  TEGER   DriverVe
f610: 72 73 69 6f 6e 3b 20 20 20 20 20 20 20 20 20 20  rsion;          
f620: 2f 2a 20 44 65 66 69 6e 65 64 20 66 6f 72 20 33  /* Defined for 3
f630: 32 20 62 69 74 20 63 6f 6d 70 6f 6e 65 6e 74 73  2 bit components
f640: 20 2a 2f 0d 0a 0d 0a 20 20 20 20 44 57 4f 52 44   */....    DWORD
f650: 20 20 20 20 20 20 20 20 20 20 20 56 65 6e 64 6f             Vendo
f660: 72 49 64 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20  rId;..    DWORD 
f670: 20 20 20 20 20 20 20 20 20 20 44 65 76 69 63 65            Device
f680: 49 64 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20 20  Id;..    DWORD  
f690: 20 20 20 20 20 20 20 20 20 53 75 62 53 79 73 49           SubSysI
f6a0: 64 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20 20 20  d;..    DWORD   
f6b0: 20 20 20 20 20 20 20 20 52 65 76 69 73 69 6f 6e          Revision
f6c0: 3b 0d 0a 0d 0a 20 20 20 20 47 55 49 44 20 20 20  ;....    GUID   
f6d0: 20 20 20 20 20 20 20 20 20 44 65 76 69 63 65 49           DeviceI
f6e0: 64 65 6e 74 69 66 69 65 72 3b 0d 0a 0d 0a 20 20  dentifier;....  
f6f0: 20 20 44 57 4f 52 44 20 20 20 20 20 20 20 20 20    DWORD         
f700: 20 20 57 48 51 4c 4c 65 76 65 6c 3b 0d 0a 7d 0d    WHQLLevel;..}.
f710: 0a 0d 0a 0d 0a 2f 2a 20 52 61 73 74 65 72 20 53  ...../* Raster S
f720: 74 61 74 75 73 20 73 74 72 75 63 74 75 72 65 20  tatus structure 
f730: 72 65 74 75 72 6e 65 64 20 62 79 20 47 65 74 52  returned by GetR
f740: 61 73 74 65 72 53 74 61 74 75 73 20 2a 2f 0d 0a  asterStatus */..
f750: 73 74 72 75 63 74 20 44 33 44 52 41 53 54 45 52  struct D3DRASTER
f760: 5f 53 54 41 54 55 53 0d 0a 7b 0d 0a 20 20 20 20  _STATUS..{..    
f770: 42 4f 4f 4c 20 49 6e 56 42 6c 61 6e 6b 3b 0d 0a  BOOL InVBlank;..
f780: 20 20 20 20 55 49 4e 54 20 53 63 61 6e 4c 69 6e      UINT ScanLin
f790: 65 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2a 20  e;..}......../* 
f7a0: 44 65 62 75 67 20 6d 6f 6e 69 74 6f 72 20 74 6f  Debug monitor to
f7b0: 6b 65 6e 73 20 28 44 45 42 55 47 20 6f 6e 6c 79  kens (DEBUG only
f7c0: 29 0d 0a 0d 0a 20 20 20 4e 6f 74 65 20 74 68 61  )....   Note tha
f7d0: 74 20 69 66 20 44 33 44 52 53 5f 44 45 42 55 47  t if D3DRS_DEBUG
f7e0: 4d 4f 4e 49 54 4f 52 54 4f 4b 45 4e 20 69 73 20  MONITORTOKEN is 
f7f0: 73 65 74 2c 20 74 68 65 20 63 61 6c 6c 20 69 73  set, the call is
f800: 20 74 72 65 61 74 65 64 20 61 73 0d 0a 20 20 20   treated as..   
f810: 70 61 73 73 69 6e 67 20 61 20 74 6f 6b 65 6e 20  passing a token 
f820: 74 6f 20 74 68 65 20 64 65 62 75 67 20 6d 6f 6e  to the debug mon
f830: 69 74 6f 72 2e 20 20 46 6f 72 20 65 78 61 6d 70  itor.  For examp
f840: 6c 65 2c 20 69 66 2c 20 61 66 74 65 72 20 70 61  le, if, after pa
f850: 73 73 69 6e 67 0d 0a 20 20 20 44 33 44 44 4d 54  ssing..   D3DDMT
f860: 5f 45 4e 41 42 4c 45 2f 44 49 53 41 42 4c 45 20  _ENABLE/DISABLE 
f870: 74 6f 20 44 33 44 52 53 5f 44 45 42 55 47 4d 4f  to D3DRS_DEBUGMO
f880: 4e 49 54 4f 52 54 4f 4b 45 4e 20 6f 74 68 65 72  NITORTOKEN other
f890: 20 74 6f 6b 65 6e 20 76 61 6c 75 65 73 0d 0a 20   token values.. 
f8a0: 20 20 61 72 65 20 70 61 73 73 65 64 20 69 6e 2c    are passed in,
f8b0: 20 74 68 65 20 65 6e 61 62 6c 65 64 2f 64 69 73   the enabled/dis
f8c0: 61 62 6c 65 64 20 73 74 61 74 65 20 6f 66 20 74  abled state of t
f8d0: 68 65 20 64 65 62 75 67 0d 0a 20 20 20 6d 6f 6e  he debug..   mon
f8e0: 69 74 6f 72 20 77 69 6c 6c 20 73 74 69 6c 6c 20  itor will still 
f8f0: 70 65 72 73 69 73 74 2e 0d 0a 0d 0a 20 20 20 54  persist.....   T
f900: 68 65 20 64 65 62 75 67 20 6d 6f 6e 69 74 6f 72  he debug monitor
f910: 20 64 65 66 61 75 6c 74 73 20 74 6f 20 65 6e 61   defaults to ena
f920: 62 6c 65 64 2e 0d 0a 0d 0a 20 20 20 43 61 6c 6c  bled.....   Call
f930: 69 6e 67 20 47 65 74 52 65 6e 64 65 72 53 74 61  ing GetRenderSta
f940: 74 65 20 6f 6e 20 44 33 44 52 53 5f 44 45 42 55  te on D3DRS_DEBU
f950: 47 4d 4f 4e 49 54 4f 52 54 4f 4b 45 4e 20 69 73  GMONITORTOKEN is
f960: 20 6e 6f 74 20 6f 66 20 61 6e 79 20 75 73 65 2e   not of any use.
f970: 0d 0a 2a 2f 0d 0a 65 6e 75 6d 20 3a 20 44 33 44  ..*/..enum : D3D
f980: 44 45 42 55 47 4d 4f 4e 49 54 4f 52 54 4f 4b 45  DEBUGMONITORTOKE
f990: 4e 53 20 7b 0d 0a 20 20 20 20 44 33 44 44 4d 54  NS {..    D3DDMT
f9a0: 5f 45 4e 41 42 4c 45 20 20 20 20 20 20 20 20 20  _ENABLE         
f9b0: 20 20 20 3d 20 30 2c 20 20 20 20 2f 2f 20 65 6e     = 0,    // en
f9c0: 61 62 6c 65 20 64 65 62 75 67 20 6d 6f 6e 69 74  able debug monit
f9d0: 6f 72 0d 0a 20 20 20 20 44 33 44 44 4d 54 5f 44  or..    D3DDMT_D
f9e0: 49 53 41 42 4c 45 20 20 20 20 20 20 20 20 20 20  ISABLE          
f9f0: 20 3d 20 31 20 20 20 20 20 2f 2f 20 64 69 73 61   = 1     // disa
fa00: 62 6c 65 20 64 65 62 75 67 20 6d 6f 6e 69 74 6f  ble debug monito
fa10: 72 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65  r..}..alias Type
fa20: 44 65 66 21 28 75 69 6e 74 29 20 44 33 44 44 45  Def!(uint) D3DDE
fa30: 42 55 47 4d 4f 4e 49 54 4f 52 54 4f 4b 45 4e 53  BUGMONITORTOKENS
fa40: 3b 0d 0a 0d 0a 2f 2f 20 41 73 79 6e 63 20 66 65  ;....// Async fe
fa50: 65 64 62 61 63 6b 0d 0a 0d 0a 65 6e 75 6d 20 3a  edback....enum :
fa60: 20 44 33 44 51 55 45 52 59 54 59 50 45 20 7b 0d   D3DQUERYTYPE {.
fa70: 0a 20 20 20 20 44 33 44 51 55 45 52 59 54 59 50  .    D3DQUERYTYP
fa80: 45 5f 56 43 41 43 48 45 20 20 20 20 20 20 20 20  E_VCACHE        
fa90: 20 20 20 20 20 20 20 20 20 3d 20 34 2c 20 2f 2a           = 4, /*
faa0: 20 44 33 44 49 53 53 55 45 5f 45 4e 44 20 2a 2f   D3DISSUE_END */
fab0: 0d 0a 20 20 20 20 44 33 44 51 55 45 52 59 54 59  ..    D3DQUERYTY
fac0: 50 45 5f 52 45 53 4f 55 52 43 45 4d 41 4e 41 47  PE_RESOURCEMANAG
fad0: 45 52 20 20 20 20 20 20 20 20 3d 20 35 2c 20 2f  ER        = 5, /
fae0: 2a 20 44 33 44 49 53 53 55 45 5f 45 4e 44 20 2a  * D3DISSUE_END *
faf0: 2f 0d 0a 20 20 20 20 44 33 44 51 55 45 52 59 54  /..    D3DQUERYT
fb00: 59 50 45 5f 56 45 52 54 45 58 53 54 41 54 53 20  YPE_VERTEXSTATS 
fb10: 20 20 20 20 20 20 20 20 20 20 20 3d 20 36 2c 20             = 6, 
fb20: 2f 2a 20 44 33 44 49 53 53 55 45 5f 45 4e 44 20  /* D3DISSUE_END 
fb30: 2a 2f 0d 0a 20 20 20 20 44 33 44 51 55 45 52 59  */..    D3DQUERY
fb40: 54 59 50 45 5f 45 56 45 4e 54 20 20 20 20 20 20  TYPE_EVENT      
fb50: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 38 2c              = 8,
fb60: 20 2f 2a 20 44 33 44 49 53 53 55 45 5f 45 4e 44   /* D3DISSUE_END
fb70: 20 2a 2f 0d 0a 20 20 20 20 44 33 44 51 55 45 52   */..    D3DQUER
fb80: 59 54 59 50 45 5f 4f 43 43 4c 55 53 49 4f 4e 20  YTYPE_OCCLUSION 
fb90: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 39               = 9
fba0: 2c 20 2f 2a 20 44 33 44 49 53 53 55 45 5f 42 45  , /* D3DISSUE_BE
fbb0: 47 49 4e 2c 20 44 33 44 49 53 53 55 45 5f 45 4e  GIN, D3DISSUE_EN
fbc0: 44 20 2a 2f 0d 0a 20 20 20 20 44 33 44 51 55 45  D */..    D3DQUE
fbd0: 52 59 54 59 50 45 5f 54 49 4d 45 53 54 41 4d 50  RYTYPE_TIMESTAMP
fbe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
fbf0: 31 30 2c 20 2f 2a 20 44 33 44 49 53 53 55 45 5f  10, /* D3DISSUE_
fc00: 45 4e 44 20 2a 2f 0d 0a 20 20 20 20 44 33 44 51  END */..    D3DQ
fc10: 55 45 52 59 54 59 50 45 5f 54 49 4d 45 53 54 41  UERYTYPE_TIMESTA
fc20: 4d 50 44 49 53 4a 4f 49 4e 54 20 20 20 20 20 20  MPDISJOINT      
fc30: 3d 20 31 31 2c 20 2f 2a 20 44 33 44 49 53 53 55  = 11, /* D3DISSU
fc40: 45 5f 42 45 47 49 4e 2c 20 44 33 44 49 53 53 55  E_BEGIN, D3DISSU
fc50: 45 5f 45 4e 44 20 2a 2f 0d 0a 20 20 20 20 44 33  E_END */..    D3
fc60: 44 51 55 45 52 59 54 59 50 45 5f 54 49 4d 45 53  DQUERYTYPE_TIMES
fc70: 54 41 4d 50 46 52 45 51 20 20 20 20 20 20 20 20  TAMPFREQ        
fc80: 20 20 3d 20 31 32 2c 20 2f 2a 20 44 33 44 49 53    = 12, /* D3DIS
fc90: 53 55 45 5f 45 4e 44 20 2a 2f 0d 0a 20 20 20 20  SUE_END */..    
fca0: 44 33 44 51 55 45 52 59 54 59 50 45 5f 50 49 50  D3DQUERYTYPE_PIP
fcb0: 45 4c 49 4e 45 54 49 4d 49 4e 47 53 20 20 20 20  ELINETIMINGS    
fcc0: 20 20 20 20 3d 20 31 33 2c 20 2f 2a 20 44 33 44      = 13, /* D3D
fcd0: 49 53 53 55 45 5f 42 45 47 49 4e 2c 20 44 33 44  ISSUE_BEGIN, D3D
fce0: 49 53 53 55 45 5f 45 4e 44 20 2a 2f 0d 0a 20 20  ISSUE_END */..  
fcf0: 20 20 44 33 44 51 55 45 52 59 54 59 50 45 5f 49    D3DQUERYTYPE_I
fd00: 4e 54 45 52 46 41 43 45 54 49 4d 49 4e 47 53 20  NTERFACETIMINGS 
fd10: 20 20 20 20 20 20 3d 20 31 34 2c 20 2f 2a 20 44        = 14, /* D
fd20: 33 44 49 53 53 55 45 5f 42 45 47 49 4e 2c 20 44  3DISSUE_BEGIN, D
fd30: 33 44 49 53 53 55 45 5f 45 4e 44 20 2a 2f 0d 0a  3DISSUE_END */..
fd40: 20 20 20 20 44 33 44 51 55 45 52 59 54 59 50 45      D3DQUERYTYPE
fd50: 5f 56 45 52 54 45 58 54 49 4d 49 4e 47 53 20 20  _VERTEXTIMINGS  
fd60: 20 20 20 20 20 20 20 20 3d 20 31 35 2c 20 2f 2a          = 15, /*
fd70: 20 44 33 44 49 53 53 55 45 5f 42 45 47 49 4e 2c   D3DISSUE_BEGIN,
fd80: 20 44 33 44 49 53 53 55 45 5f 45 4e 44 20 2a 2f   D3DISSUE_END */
fd90: 0d 0a 20 20 20 20 44 33 44 51 55 45 52 59 54 59  ..    D3DQUERYTY
fda0: 50 45 5f 50 49 58 45 4c 54 49 4d 49 4e 47 53 20  PE_PIXELTIMINGS 
fdb0: 20 20 20 20 20 20 20 20 20 20 3d 20 31 36 2c 20            = 16, 
fdc0: 2f 2a 20 44 33 44 49 53 53 55 45 5f 42 45 47 49  /* D3DISSUE_BEGI
fdd0: 4e 2c 20 44 33 44 49 53 53 55 45 5f 45 4e 44 20  N, D3DISSUE_END 
fde0: 2a 2f 0d 0a 20 20 20 20 44 33 44 51 55 45 52 59  */..    D3DQUERY
fdf0: 54 59 50 45 5f 42 41 4e 44 57 49 44 54 48 54 49  TYPE_BANDWIDTHTI
fe00: 4d 49 4e 47 53 20 20 20 20 20 20 20 3d 20 31 37  MINGS       = 17
fe10: 2c 20 2f 2a 20 44 33 44 49 53 53 55 45 5f 42 45  , /* D3DISSUE_BE
fe20: 47 49 4e 2c 20 44 33 44 49 53 53 55 45 5f 45 4e  GIN, D3DISSUE_EN
fe30: 44 20 2a 2f 0d 0a 20 20 20 20 44 33 44 51 55 45  D */..    D3DQUE
fe40: 52 59 54 59 50 45 5f 43 41 43 48 45 55 54 49 4c  RYTYPE_CACHEUTIL
fe50: 49 5a 41 54 49 4f 4e 20 20 20 20 20 20 20 3d 20  IZATION       = 
fe60: 31 38 2c 20 2f 2a 20 44 33 44 49 53 53 55 45 5f  18, /* D3DISSUE_
fe70: 42 45 47 49 4e 2c 20 44 33 44 49 53 53 55 45 5f  BEGIN, D3DISSUE_
fe80: 45 4e 44 20 2a 2f 0d 0a 7d 0d 0a 61 6c 69 61 73  END */..}..alias
fe90: 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20   TypeDef!(uint) 
fea0: 44 33 44 51 55 45 52 59 54 59 50 45 3b 0d 0a 0d  D3DQUERYTYPE;...
feb0: 0a 2f 2f 20 46 6c 61 67 73 20 66 69 65 6c 64 20  .// Flags field 
fec0: 66 6f 72 20 49 73 73 75 65 0d 0a 63 6f 6e 73 74  for Issue..const
fed0: 20 44 33 44 49 53 53 55 45 5f 45 4e 44 20 3d 20   D3DISSUE_END = 
fee0: 28 31 20 3c 3c 20 30 29 3b 20 2f 2f 20 54 65 6c  (1 << 0); // Tel
fef0: 6c 73 20 74 68 65 20 72 75 6e 74 69 6d 65 20 74  ls the runtime t
ff00: 6f 20 69 73 73 75 65 20 74 68 65 20 65 6e 64 20  o issue the end 
ff10: 6f 66 20 61 20 71 75 65 72 79 2c 20 63 68 61 6e  of a query, chan
ff20: 67 69 6e 67 20 69 74 27 73 20 73 74 61 74 65 20  ging it's state 
ff30: 74 6f 20 22 6e 6f 6e 2d 73 69 67 6e 61 6c 65 64  to "non-signaled
ff40: 22 2e 0d 0a 63 6f 6e 73 74 20 44 33 44 49 53 53  "...const D3DISS
ff50: 55 45 5f 42 45 47 49 4e 20 3d 20 28 31 20 3c 3c  UE_BEGIN = (1 <<
ff60: 20 31 29 3b 20 2f 2f 20 54 65 6c 6c 73 20 74 68   1); // Tells th
ff70: 65 20 72 75 6e 74 69 6d 65 20 74 6f 20 69 73 73  e runtime to iss
ff80: 75 65 20 74 68 65 20 62 65 67 69 6e 6e 67 20 6f  ue the beginng o
ff90: 66 20 61 20 71 75 65 72 79 2e 0d 0a 0d 0a 0d 0a  f a query.......
ffa0: 2f 2f 20 46 6c 61 67 73 20 66 69 65 6c 64 20 66  // Flags field f
ffb0: 6f 72 20 47 65 74 44 61 74 61 0d 0a 63 6f 6e 73  or GetData..cons
ffc0: 74 20 44 33 44 47 45 54 44 41 54 41 5f 46 4c 55  t D3DGETDATA_FLU
ffd0: 53 48 20 3d 20 28 31 20 3c 3c 20 30 29 3b 20 2f  SH = (1 << 0); /
ffe0: 2f 20 54 65 6c 6c 73 20 74 68 65 20 72 75 6e 74  / Tells the runt
fff0: 69 6d 65 20 74 6f 20 66 6c 75 73 68 20 69 66 20  ime to flush if 
10000 74 68 65 20 71 75 65 72 79 20 69 73 20 6f 75 74  the query is out
10010 73 74 61 6e 64 69 6e 67 2e 0d 0a 0d 0a 0d 0a 73  standing.......s
10020 74 72 75 63 74 20 44 33 44 52 45 53 4f 55 52 43  truct D3DRESOURC
10030 45 53 54 41 54 53 0d 0a 7b 0d 0a 2f 2f 20 44 61  ESTATS..{..// Da
10040 74 61 20 63 6f 6c 6c 65 63 74 65 64 20 73 69 6e  ta collected sin
10050 63 65 20 6c 61 73 74 20 50 72 65 73 65 6e 74 28  ce last Present(
10060 29 0d 0a 20 20 20 20 42 4f 4f 4c 20 20 20 20 62  )..    BOOL    b
10070 54 68 72 61 73 68 69 6e 67 3b 20 20 20 20 20 20  Thrashing;      
10080 20 20 20 20 20 20 20 2f 2a 20 69 6e 64 69 63 61         /* indica
10090 74 65 73 20 69 66 20 74 68 72 61 73 68 69 6e 67  tes if thrashing
100a0 20 2a 2f 0d 0a 20 20 20 20 44 57 4f 52 44 20 20   */..    DWORD  
100b0 20 41 70 70 72 6f 78 42 79 74 65 73 44 6f 77 6e   ApproxBytesDown
100c0 6c 6f 61 64 65 64 3b 20 20 2f 2a 20 41 70 70 72  loaded;  /* Appr
100d0 6f 78 69 6d 61 74 65 20 6e 75 6d 62 65 72 20 6f  oximate number o
100e0 66 20 62 79 74 65 73 20 64 6f 77 6e 6c 6f 61 64  f bytes download
100f0 65 64 20 62 79 20 72 65 73 6f 75 72 63 65 20 6d  ed by resource m
10100 61 6e 61 67 65 72 20 2a 2f 0d 0a 20 20 20 20 44  anager */..    D
10110 57 4f 52 44 20 20 20 4e 75 6d 45 76 69 63 74 73  WORD   NumEvicts
10120 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f  ;              /
10130 2a 20 6e 75 6d 62 65 72 20 6f 66 20 6f 62 6a 65  * number of obje
10140 63 74 73 20 65 76 69 63 74 65 64 20 2a 2f 0d 0a  cts evicted */..
10150 20 20 20 20 44 57 4f 52 44 20 20 20 4e 75 6d 56      DWORD   NumV
10160 69 64 43 72 65 61 74 65 73 3b 20 20 20 20 20 20  idCreates;      
10170 20 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66      /* number of
10180 20 6f 62 6a 65 63 74 73 20 63 72 65 61 74 65 64   objects created
10190 20 69 6e 20 76 69 64 65 6f 20 6d 65 6d 6f 72 79   in video memory
101a0 20 2a 2f 0d 0a 20 20 20 20 44 57 4f 52 44 20 20   */..    DWORD  
101b0 20 4c 61 73 74 50 72 69 3b 20 20 20 20 20 20 20   LastPri;       
101c0 20 20 20 20 20 20 20 20 20 2f 2a 20 70 72 69 6f           /* prio
101d0 72 69 74 79 20 6f 66 20 6c 61 73 74 20 6f 62 6a  rity of last obj
101e0 65 63 74 20 65 76 69 63 74 65 64 20 2a 2f 0d 0a  ect evicted */..
101f0 20 20 20 20 44 57 4f 52 44 20 20 20 4e 75 6d 55      DWORD   NumU
10200 73 65 64 3b 20 20 20 20 20 20 20 20 20 20 20 20  sed;            
10210 20 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66      /* number of
10220 20 6f 62 6a 65 63 74 73 20 73 65 74 20 74 6f 20   objects set to 
10230 74 68 65 20 64 65 76 69 63 65 20 2a 2f 0d 0a 20  the device */.. 
10240 20 20 20 44 57 4f 52 44 20 20 20 4e 75 6d 55 73     DWORD   NumUs
10250 65 64 49 6e 56 69 64 4d 65 6d 3b 20 20 20 20 20  edInVidMem;     
10260 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20 6f 66 20     /* number of 
10270 6f 62 6a 65 63 74 73 20 73 65 74 20 74 6f 20 74  objects set to t
10280 68 65 20 64 65 76 69 63 65 2c 20 77 68 69 63 68  he device, which
10290 20 61 72 65 20 61 6c 72 65 61 64 79 20 69 6e 20   are already in 
102a0 76 69 64 65 6f 20 6d 65 6d 6f 72 79 20 2a 2f 0d  video memory */.
102b0 0a 2f 2f 20 50 65 72 73 69 73 74 65 6e 74 20 64  .// Persistent d
102c0 61 74 61 0d 0a 20 20 20 20 44 57 4f 52 44 20 20  ata..    DWORD  
102d0 20 57 6f 72 6b 69 6e 67 53 65 74 3b 20 20 20 20   WorkingSet;    
102e0 20 20 20 20 20 20 20 20 20 2f 2a 20 6e 75 6d 62           /* numb
102f0 65 72 20 6f 66 20 6f 62 6a 65 63 74 73 20 69 6e  er of objects in
10300 20 76 69 64 65 6f 20 6d 65 6d 6f 72 79 20 2a 2f   video memory */
10310 0d 0a 20 20 20 20 44 57 4f 52 44 20 20 20 57 6f  ..    DWORD   Wo
10320 72 6b 69 6e 67 53 65 74 42 79 74 65 73 3b 20 20  rkingSetBytes;  
10330 20 20 20 20 20 20 2f 2a 20 6e 75 6d 62 65 72 20        /* number 
10340 6f 66 20 62 79 74 65 73 20 69 6e 20 76 69 64 65  of bytes in vide
10350 6f 20 6d 65 6d 6f 72 79 20 2a 2f 0d 0a 20 20 20  o memory */..   
10360 20 44 57 4f 52 44 20 20 20 54 6f 74 61 6c 4d 61   DWORD   TotalMa
10370 6e 61 67 65 64 3b 20 20 20 20 20 20 20 20 20 20  naged;          
10380 20 2f 2a 20 74 6f 74 61 6c 20 6e 75 6d 62 65 72   /* total number
10390 20 6f 66 20 6d 61 6e 61 67 65 64 20 6f 62 6a 65   of managed obje
103a0 63 74 73 20 2a 2f 0d 0a 20 20 20 20 44 57 4f 52  cts */..    DWOR
103b0 44 20 20 20 54 6f 74 61 6c 42 79 74 65 73 3b 20  D   TotalBytes; 
103c0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 74              /* t
103d0 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 62  otal number of b
103e0 79 74 65 73 20 6f 66 20 6d 61 6e 61 67 65 64 20  ytes of managed 
103f0 6f 62 6a 65 63 74 73 20 2a 2f 0d 0a 7d 0d 0a 0d  objects */..}...
10400 0a 63 6f 6e 73 74 20 44 33 44 52 54 59 50 45 43  .const D3DRTYPEC
10410 4f 55 4e 54 20 3d 20 44 33 44 52 54 59 50 45 5f  OUNT = D3DRTYPE_
10420 49 4e 44 45 58 42 55 46 46 45 52 2b 31 3b 0d 0a  INDEXBUFFER+1;..
10430 0d 0a 73 74 72 75 63 74 20 44 33 44 44 45 56 49  ..struct D3DDEVI
10440 4e 46 4f 5f 52 45 53 4f 55 52 43 45 4d 41 4e 41  NFO_RESOURCEMANA
10450 47 45 52 0d 0a 7b 0d 0a 2f 2f 23 69 66 6e 64 65  GER..{..//#ifnde
10460 66 20 57 4f 57 36 34 5f 45 4e 55 4d 5f 57 4f 52  f WOW64_ENUM_WOR
10470 4b 41 52 4f 55 4e 44 0d 0a 2f 2f 20 20 20 20 44  KAROUND..//    D
10480 33 44 52 45 53 4f 55 52 43 45 53 54 41 54 53 20  3DRESOURCESTATS 
10490 20 20 20 73 74 61 74 73 5b 44 33 44 52 54 59 50     stats[D3DRTYP
104a0 45 43 4f 55 4e 54 5d 3b 0d 0a 20 20 20 20 44 33  ECOUNT];..    D3
104b0 44 52 45 53 4f 55 52 43 45 53 54 41 54 53 5b 38  DRESOURCESTATS[8
104c0 5d 20 73 74 61 74 73 3b 0d 0a 7d 0d 0a 61 6c 69  ] stats;..}..ali
104d0 61 73 20 44 33 44 44 45 56 49 4e 46 4f 5f 52 45  as D3DDEVINFO_RE
104e0 53 4f 55 52 43 45 4d 41 4e 41 47 45 52 2a 20 4c  SOURCEMANAGER* L
104f0 50 44 33 44 44 45 56 49 4e 46 4f 5f 52 45 53 4f  PD3DDEVINFO_RESO
10500 55 52 43 45 4d 41 4e 41 47 45 52 3b 0d 0a 0d 0a  URCEMANAGER;....
10510 73 74 72 75 63 74 20 44 33 44 44 45 56 49 4e 46  struct D3DDEVINF
10520 4f 5f 44 33 44 56 45 52 54 45 58 53 54 41 54 53  O_D3DVERTEXSTATS
10530 0d 0a 7b 0d 0a 20 20 20 20 44 57 4f 52 44 20 20  ..{..    DWORD  
10540 20 4e 75 6d 52 65 6e 64 65 72 65 64 54 72 69 61   NumRenderedTria
10550 6e 67 6c 65 73 3b 20 20 20 20 20 20 20 2f 2a 20  ngles;       /* 
10560 74 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20  total number of 
10570 74 72 69 61 6e 67 6c 65 73 20 74 68 61 74 20 61  triangles that a
10580 72 65 20 6e 6f 74 20 63 6c 69 70 70 65 64 20 69  re not clipped i
10590 6e 20 74 68 69 73 20 66 72 61 6d 65 20 2a 2f 0d  n this frame */.
105a0 0a 20 20 20 20 44 57 4f 52 44 20 20 20 4e 75 6d  .    DWORD   Num
105b0 45 78 74 72 61 43 6c 69 70 70 69 6e 67 54 72 69  ExtraClippingTri
105c0 61 6e 67 6c 65 73 3b 20 20 2f 2a 20 4e 75 6d 62  angles;  /* Numb
105d0 65 72 20 6f 66 20 6e 65 77 20 74 72 69 61 6e 67  er of new triang
105e0 6c 65 73 20 67 65 6e 65 72 61 74 65 64 20 62 79  les generated by
105f0 20 63 6c 69 70 70 69 6e 67 20 2a 2f 0d 0a 7d 0d   clipping */..}.
10600 0a 61 6c 69 61 73 20 44 33 44 44 45 56 49 4e 46  .alias D3DDEVINF
10610 4f 5f 44 33 44 56 45 52 54 45 58 53 54 41 54 53  O_D3DVERTEXSTATS
10620 20 2a 4c 50 44 33 44 44 45 56 49 4e 46 4f 5f 44   *LPD3DDEVINFO_D
10630 33 44 56 45 52 54 45 58 53 54 41 54 53 3b 0d 0a  3DVERTEXSTATS;..
10640 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 44 45  ....struct D3DDE
10650 56 49 4e 46 4f 5f 56 43 41 43 48 45 20 7b 0d 0a  VINFO_VCACHE {..
10660 20 20 20 20 44 57 4f 52 44 20 20 20 50 61 74 74      DWORD   Patt
10670 65 72 6e 3b 20 20 20 20 20 20 20 20 20 20 20 20  ern;            
10680 20 20 20 20 20 20 20 20 2f 2a 20 62 69 74 20 70          /* bit p
10690 61 74 74 65 72 6e 2c 20 72 65 74 75 72 6e 20 76  attern, return v
106a0 61 6c 75 65 20 6d 75 73 74 20 62 65 20 46 4f 55  alue must be FOU
106b0 52 5f 43 43 28 27 43 27 2c 20 27 41 27 2c 20 27  R_CC('C', 'A', '
106c0 43 27 2c 20 27 48 27 29 20 2a 2f 0d 0a 20 20 20  C', 'H') */..   
106d0 20 44 57 4f 52 44 20 20 20 4f 70 74 4d 65 74 68   DWORD   OptMeth
106e0 6f 64 3b 20 20 20 20 20 20 20 20 20 20 20 20 20  od;             
106f0 20 20 20 20 20 2f 2a 20 6f 70 74 69 6d 69 7a 61       /* optimiza
10700 74 69 6f 6e 20 6d 65 74 68 6f 64 20 30 20 6d 65  tion method 0 me
10710 61 6e 73 20 6c 6f 6e 67 65 73 74 20 73 74 72 69  ans longest stri
10720 70 73 2c 20 31 20 6d 65 61 6e 73 20 76 65 72 74  ps, 1 means vert
10730 65 78 20 63 61 63 68 65 20 62 61 73 65 64 20 2a  ex cache based *
10740 2f 0d 0a 20 20 20 20 44 57 4f 52 44 20 20 20 43  /..    DWORD   C
10750 61 63 68 65 53 69 7a 65 3b 20 20 20 20 20 20 20  acheSize;       
10760 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 63 61             /* ca
10770 63 68 65 20 73 69 7a 65 20 74 6f 20 6f 70 74 69  che size to opti
10780 6d 69 7a 65 20 66 6f 72 20 20 28 6f 6e 6c 79 20  mize for  (only 
10790 72 65 71 75 69 72 65 64 20 69 66 20 74 79 70 65  required if type
107a0 20 69 73 20 31 29 20 2a 2f 0d 0a 20 20 20 20 44   is 1) */..    D
107b0 57 4f 52 44 20 20 20 4d 61 67 69 63 4e 75 6d 62  WORD   MagicNumb
107c0 65 72 3b 20 20 20 20 20 20 20 20 20 20 20 20 20  er;             
107d0 20 20 20 2f 2a 20 75 73 65 64 20 74 6f 20 64 65     /* used to de
107e0 74 65 72 6d 69 6e 65 20 77 68 65 6e 20 74 6f 20  termine when to 
107f0 72 65 73 74 61 72 74 20 73 74 72 69 70 73 20 28  restart strips (
10800 6f 6e 6c 79 20 72 65 71 75 69 72 65 64 20 69 66  only required if
10810 20 74 79 70 65 20 69 73 20 31 29 2a 2f 0d 0a 7d   type is 1)*/..}
10820 0d 0a 61 6c 69 61 73 20 44 33 44 44 45 56 49 4e  ..alias D3DDEVIN
10830 46 4f 5f 56 43 41 43 48 45 20 2a 4c 50 44 33 44  FO_VCACHE *LPD3D
10840 44 45 56 49 4e 46 4f 5f 56 43 41 43 48 45 3b 0d  DEVINFO_VCACHE;.
10850 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 44 45 56  ...struct D3DDEV
10860 49 4e 46 4f 5f 44 33 44 39 50 49 50 45 4c 49 4e  INFO_D3D9PIPELIN
10870 45 54 49 4d 49 4e 47 53 0d 0a 7b 0d 0a 20 20 20  ETIMINGS..{..   
10880 20 46 4c 4f 41 54 20 56 65 72 74 65 78 50 72 6f   FLOAT VertexPro
10890 63 65 73 73 69 6e 67 54 69 6d 65 50 65 72 63 65  cessingTimePerce
108a0 6e 74 3b 0d 0a 20 20 20 20 46 4c 4f 41 54 20 50  nt;..    FLOAT P
108b0 69 78 65 6c 50 72 6f 63 65 73 73 69 6e 67 54 69  ixelProcessingTi
108c0 6d 65 50 65 72 63 65 6e 74 3b 0d 0a 20 20 20 20  mePercent;..    
108d0 46 4c 4f 41 54 20 4f 74 68 65 72 47 50 55 50 72  FLOAT OtherGPUPr
108e0 6f 63 65 73 73 69 6e 67 54 69 6d 65 50 65 72 63  ocessingTimePerc
108f0 65 6e 74 3b 0d 0a 20 20 20 20 46 4c 4f 41 54 20  ent;..    FLOAT 
10900 47 50 55 49 64 6c 65 54 69 6d 65 50 65 72 63 65  GPUIdleTimePerce
10910 6e 74 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74  nt;..}....struct
10920 20 44 33 44 44 45 56 49 4e 46 4f 5f 44 33 44 39   D3DDEVINFO_D3D9
10930 49 4e 54 45 52 46 41 43 45 54 49 4d 49 4e 47 53  INTERFACETIMINGS
10940 0d 0a 7b 0d 0a 20 20 20 20 46 4c 4f 41 54 20 57  ..{..    FLOAT W
10950 61 69 74 69 6e 67 46 6f 72 47 50 55 54 6f 55 73  aitingForGPUToUs
10960 65 41 70 70 6c 69 63 61 74 69 6f 6e 52 65 73 6f  eApplicationReso
10970 75 72 63 65 54 69 6d 65 50 65 72 63 65 6e 74 3b  urceTimePercent;
10980 0d 0a 20 20 20 20 46 4c 4f 41 54 20 57 61 69 74  ..    FLOAT Wait
10990 69 6e 67 46 6f 72 47 50 55 54 6f 41 63 63 65 70  ingForGPUToAccep
109a0 74 4d 6f 72 65 43 6f 6d 6d 61 6e 64 73 54 69 6d  tMoreCommandsTim
109b0 65 50 65 72 63 65 6e 74 3b 0d 0a 20 20 20 20 46  ePercent;..    F
109c0 4c 4f 41 54 20 57 61 69 74 69 6e 67 46 6f 72 47  LOAT WaitingForG
109d0 50 55 54 6f 53 74 61 79 57 69 74 68 69 6e 4c 61  PUToStayWithinLa
109e0 74 65 6e 63 79 54 69 6d 65 50 65 72 63 65 6e 74  tencyTimePercent
109f0 3b 0d 0a 20 20 20 20 46 4c 4f 41 54 20 57 61 69  ;..    FLOAT Wai
10a00 74 69 6e 67 46 6f 72 47 50 55 45 78 63 6c 75 73  tingForGPUExclus
10a10 69 76 65 52 65 73 6f 75 72 63 65 54 69 6d 65 50  iveResourceTimeP
10a20 65 72 63 65 6e 74 3b 0d 0a 20 20 20 20 46 4c 4f  ercent;..    FLO
10a30 41 54 20 57 61 69 74 69 6e 67 46 6f 72 47 50 55  AT WaitingForGPU
10a40 4f 74 68 65 72 54 69 6d 65 50 65 72 63 65 6e 74  OtherTimePercent
10a50 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44  ;..}....struct D
10a60 33 44 44 45 56 49 4e 46 4f 5f 44 33 44 39 53 54  3DDEVINFO_D3D9ST
10a70 41 47 45 54 49 4d 49 4e 47 53 0d 0a 7b 0d 0a 20  AGETIMINGS..{.. 
10a80 20 20 20 46 4c 4f 41 54 20 4d 65 6d 6f 72 79 50     FLOAT MemoryP
10a90 72 6f 63 65 73 73 69 6e 67 50 65 72 63 65 6e 74  rocessingPercent
10aa0 3b 0d 0a 20 20 20 20 46 4c 4f 41 54 20 43 6f 6d  ;..    FLOAT Com
10ab0 70 75 74 61 74 69 6f 6e 50 72 6f 63 65 73 73 69  putationProcessi
10ac0 6e 67 50 65 72 63 65 6e 74 3b 0d 0a 7d 0d 0a 0d  ngPercent;..}...
10ad0 0a 73 74 72 75 63 74 20 44 33 44 44 45 56 49 4e  .struct D3DDEVIN
10ae0 46 4f 5f 44 33 44 39 42 41 4e 44 57 49 44 54 48  FO_D3D9BANDWIDTH
10af0 54 49 4d 49 4e 47 53 0d 0a 7b 0d 0a 20 20 20 20  TIMINGS..{..    
10b00 46 4c 4f 41 54 20 4d 61 78 42 61 6e 64 77 69 64  FLOAT MaxBandwid
10b10 74 68 55 74 69 6c 69 7a 65 64 3b 0d 0a 20 20 20  thUtilized;..   
10b20 20 46 4c 4f 41 54 20 46 72 6f 6e 74 45 6e 64 55   FLOAT FrontEndU
10b30 70 6c 6f 61 64 4d 65 6d 6f 72 79 55 74 69 6c 69  ploadMemoryUtili
10b40 7a 65 64 50 65 72 63 65 6e 74 3b 0d 0a 20 20 20  zedPercent;..   
10b50 20 46 4c 4f 41 54 20 56 65 72 74 65 78 52 61 74   FLOAT VertexRat
10b60 65 55 74 69 6c 69 7a 65 64 50 65 72 63 65 6e 74  eUtilizedPercent
10b70 3b 0d 0a 20 20 20 20 46 4c 4f 41 54 20 54 72 69  ;..    FLOAT Tri
10b80 61 6e 67 6c 65 53 65 74 75 70 52 61 74 65 55 74  angleSetupRateUt
10b90 69 6c 69 7a 65 64 50 65 72 63 65 6e 74 3b 0d 0a  ilizedPercent;..
10ba0 20 20 20 20 46 4c 4f 41 54 20 46 69 6c 6c 52 61      FLOAT FillRa
10bb0 74 65 55 74 69 6c 69 7a 65 64 50 65 72 63 65 6e  teUtilizedPercen
10bc0 74 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20  t;..}....struct 
10bd0 44 33 44 44 45 56 49 4e 46 4f 5f 44 33 44 39 43  D3DDEVINFO_D3D9C
10be0 41 43 48 45 55 54 49 4c 49 5a 41 54 49 4f 4e 0d  ACHEUTILIZATION.
10bf0 0a 7b 0d 0a 20 20 20 20 46 4c 4f 41 54 20 54 65  .{..    FLOAT Te
10c00 78 74 75 72 65 43 61 63 68 65 48 69 74 52 61 74  xtureCacheHitRat
10c10 65 3b 20 2f 2f 20 50 65 72 63 65 6e 74 61 67 65  e; // Percentage
10c20 20 6f 66 20 63 61 63 68 65 20 68 69 74 73 0d 0a   of cache hits..
10c30 20 20 20 20 46 4c 4f 41 54 20 50 6f 73 74 54 72      FLOAT PostTr
10c40 61 6e 73 66 6f 72 6d 56 65 72 74 65 78 43 61 63  ansformVertexCac
10c50 68 65 48 69 74 52 61 74 65 3b 0d 0a 7d 0d 0a 0d  heHitRate;..}...
10c60 0a 65 6e 75 6d 20 3a 20 44 33 44 43 4f 4d 50 4f  .enum : D3DCOMPO
10c70 53 45 52 45 43 54 53 4f 50 20 7b 0d 0a 20 20 20  SERECTSOP {..   
10c80 20 44 33 44 43 4f 4d 50 4f 53 45 52 45 43 54 53   D3DCOMPOSERECTS
10c90 5f 43 4f 50 59 20 20 20 20 20 3d 20 31 2c 0d 0a  _COPY     = 1,..
10ca0 20 20 20 20 44 33 44 43 4f 4d 50 4f 53 45 52 45      D3DCOMPOSERE
10cb0 43 54 53 5f 4f 52 20 20 20 20 20 20 20 3d 20 32  CTS_OR       = 2
10cc0 2c 0d 0a 20 20 20 20 44 33 44 43 4f 4d 50 4f 53  ,..    D3DCOMPOS
10cd0 45 52 45 43 54 53 5f 41 4e 44 20 20 20 20 20 20  ERECTS_AND      
10ce0 3d 20 33 2c 0d 0a 20 20 20 20 44 33 44 43 4f 4d  = 3,..    D3DCOM
10cf0 50 4f 53 45 52 45 43 54 53 5f 4e 45 47 20 20 20  POSERECTS_NEG   
10d00 20 20 20 3d 20 34 0d 0a 7d 0d 0a 61 6c 69 61 73     = 4..}..alias
10d10 20 54 79 70 65 44 65 66 21 28 75 69 6e 74 29 20   TypeDef!(uint) 
10d20 44 33 44 43 4f 4d 50 4f 53 45 52 45 43 54 53 4f  D3DCOMPOSERECTSO
10d30 50 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44  P;....struct D3D
10d40 43 4f 4d 50 4f 53 45 52 45 43 54 44 45 53 43 0d  COMPOSERECTDESC.
10d50 0a 7b 0d 0a 20 20 20 20 55 53 48 4f 52 54 20 20  .{..    USHORT  
10d60 58 2c 20 59 3b 20 20 20 20 20 20 20 20 20 20 20  X, Y;           
10d70 2f 2f 20 54 6f 70 2d 6c 65 66 74 20 63 6f 6f 72  // Top-left coor
10d80 64 69 6e 61 74 65 73 20 6f 66 20 61 20 72 65 63  dinates of a rec
10d90 74 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20  t in the source 
10da0 73 75 72 66 61 63 65 0d 0a 20 20 20 20 55 53 48  surface..    USH
10db0 4f 52 54 20 20 57 69 64 74 68 2c 20 48 65 69 67  ORT  Width, Heig
10dc0 68 74 3b 20 20 2f 2f 20 44 69 6d 65 6e 73 69 6f  ht;  // Dimensio
10dd0 6e 73 20 6f 66 20 74 68 65 20 72 65 63 74 0d 0a  ns of the rect..
10de0 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 43  }....struct D3DC
10df0 4f 4d 50 4f 53 45 52 45 43 54 44 45 53 54 49 4e  OMPOSERECTDESTIN
10e00 41 54 49 4f 4e 0d 0a 7b 0d 0a 20 20 20 20 55 53  ATION..{..    US
10e10 48 4f 52 54 20 53 72 63 52 65 63 74 49 6e 64 65  HORT SrcRectInde
10e20 78 3b 20 20 20 20 2f 2f 20 49 6e 64 65 78 20 6f  x;    // Index o
10e30 66 20 44 33 44 43 4f 4d 50 4f 53 45 52 45 43 54  f D3DCOMPOSERECT
10e40 44 45 53 43 0d 0a 20 20 20 20 55 53 48 4f 52 54  DESC..    USHORT
10e50 20 52 65 73 65 72 76 65 64 3b 20 20 20 20 20 20   Reserved;      
10e60 20 20 2f 2f 20 46 6f 72 20 61 6c 69 67 6e 6d 65    // For alignme
10e70 6e 74 0d 0a 20 20 20 20 53 48 4f 52 54 20 20 58  nt..    SHORT  X
10e80 2c 20 59 3b 20 20 20 20 20 20 20 20 20 20 20 20  , Y;            
10e90 2f 2f 20 54 6f 70 2d 6c 65 66 74 20 63 6f 6f 72  // Top-left coor
10ea0 64 69 6e 61 74 65 73 20 6f 66 20 74 68 65 20 72  dinates of the r
10eb0 65 63 74 20 69 6e 20 74 68 65 20 64 65 73 74 69  ect in the desti
10ec0 6e 61 74 69 6f 6e 20 73 75 72 66 61 63 65 0d 0a  nation surface..
10ed0 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 43 4f  }....const D3DCO
10ee0 4d 50 4f 53 45 52 45 43 54 53 5f 4d 41 58 4e 55  MPOSERECTS_MAXNU
10ef0 4d 52 45 43 54 53 20 3d 20 30 78 46 46 46 46 3b  MRECTS = 0xFFFF;
10f00 0d 0a 63 6f 6e 73 74 20 44 33 44 43 4f 4e 56 4f  ..const D3DCONVO
10f10 4c 55 54 49 4f 4e 4d 4f 4e 4f 5f 4d 41 58 57 49  LUTIONMONO_MAXWI
10f20 44 54 48 20 3d 20 37 3b 0d 0a 63 6f 6e 73 74 20  DTH = 7;..const 
10f30 44 33 44 43 4f 4e 56 4f 4c 55 54 49 4f 4e 4d 4f  D3DCONVOLUTIONMO
10f40 4e 4f 5f 4d 41 58 48 45 49 47 48 54 20 3d 20 44  NO_MAXHEIGHT = D
10f50 33 44 43 4f 4e 56 4f 4c 55 54 49 4f 4e 4d 4f 4e  3DCONVOLUTIONMON
10f60 4f 5f 4d 41 58 57 49 44 54 48 3b 0d 0a 63 6f 6e  O_MAXWIDTH;..con
10f70 73 74 20 44 33 44 46 4d 54 5f 41 31 5f 53 55 52  st D3DFMT_A1_SUR
10f80 46 41 43 45 5f 4d 41 58 57 49 44 54 48 20 3d 20  FACE_MAXWIDTH = 
10f90 38 31 39 32 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  8192;..const D3D
10fa0 46 4d 54 5f 41 31 5f 53 55 52 46 41 43 45 5f 4d  FMT_A1_SURFACE_M
10fb0 41 58 48 45 49 47 48 54 20 3d 20 32 30 34 38 3b  AXHEIGHT = 2048;
10fc0 0d 0a 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44  ......struct D3D
10fd0 50 52 45 53 45 4e 54 53 54 41 54 53 20 7b 0d 0a  PRESENTSTATS {..
10fe0 20 20 20 20 55 49 4e 54 20 50 72 65 73 65 6e 74      UINT Present
10ff0 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 55 49 4e 54  Count;..    UINT
11000 20 50 72 65 73 65 6e 74 52 65 66 72 65 73 68 43   PresentRefreshC
11010 6f 75 6e 74 3b 0d 0a 20 20 20 20 55 49 4e 54 20  ount;..    UINT 
11020 53 79 6e 63 52 65 66 72 65 73 68 43 6f 75 6e 74  SyncRefreshCount
11030 3b 0d 0a 20 20 20 20 4c 41 52 47 45 5f 49 4e 54  ;..    LARGE_INT
11040 45 47 45 52 20 53 79 6e 63 51 50 43 54 69 6d 65  EGER SyncQPCTime
11050 3b 0d 0a 20 20 20 20 4c 41 52 47 45 5f 49 4e 54  ;..    LARGE_INT
11060 45 47 45 52 20 53 79 6e 63 47 50 55 54 69 6d 65  EGER SyncGPUTime
11070 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  ;..}....enum : D
11080 33 44 53 43 41 4e 4c 49 4e 45 4f 52 44 45 52 49  3DSCANLINEORDERI
11090 4e 47 0d 0a 7b 0d 0a 20 20 20 20 44 33 44 53 43  NG..{..    D3DSC
110a0 41 4e 4c 49 4e 45 4f 52 44 45 52 49 4e 47 5f 55  ANLINEORDERING_U
110b0 4e 4b 4e 4f 57 4e 20 20 20 20 20 20 20 20 20 20  NKNOWN          
110c0 20 20 20 20 20 20 20 20 20 20 3d 20 30 2c 20 0d            = 0, .
110d0 0a 20 20 20 20 44 33 44 53 43 41 4e 4c 49 4e 45  .    D3DSCANLINE
110e0 4f 52 44 45 52 49 4e 47 5f 50 52 4f 47 52 45 53  ORDERING_PROGRES
110f0 53 49 56 45 20 20 20 20 20 20 20 20 20 20 20 20  SIVE            
11100 20 20 20 20 3d 20 31 2c 0d 0a 20 20 20 20 44 33      = 1,..    D3
11110 44 53 43 41 4e 4c 49 4e 45 4f 52 44 45 52 49 4e  DSCANLINEORDERIN
11120 47 5f 49 4e 54 45 52 4c 41 43 45 44 20 20 20 20  G_INTERLACED    
11130 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32               = 2
11140 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ..}..alias TypeD
11150 65 66 21 28 75 69 6e 74 29 20 44 33 44 53 43 41  ef!(uint) D3DSCA
11160 4e 4c 49 4e 45 4f 52 44 45 52 49 4e 47 3b 0d 0a  NLINEORDERING;..
11170 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 44 49  ....struct D3DDI
11180 53 50 4c 41 59 4d 4f 44 45 45 58 0d 0a 7b 0d 0a  SPLAYMODEEX..{..
11190 20 20 20 20 55 49 4e 54 20 20 20 20 20 20 20 20      UINT        
111a0 20 20 20 20 20 20 20 20 20 20 20 20 53 69 7a 65              Size
111b0 3b 0d 0a 20 20 20 20 55 49 4e 54 20 20 20 20 20  ;..    UINT     
111c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57                 W
111d0 69 64 74 68 3b 0d 0a 20 20 20 20 55 49 4e 54 20  idth;..    UINT 
111e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
111f0 20 20 20 48 65 69 67 68 74 3b 0d 0a 20 20 20 20     Height;..    
11200 55 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20  UINT            
11210 20 20 20 20 20 20 20 20 52 65 66 72 65 73 68 52          RefreshR
11220 61 74 65 3b 0d 0a 20 20 20 20 44 33 44 46 4f 52  ate;..    D3DFOR
11230 4d 41 54 20 20 20 20 20 20 20 20 20 20 20 20 20  MAT             
11240 20 20 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 44    Format;..    D
11250 33 44 53 43 41 4e 4c 49 4e 45 4f 52 44 45 52 49  3DSCANLINEORDERI
11260 4e 47 20 20 20 20 20 53 63 61 6e 4c 69 6e 65 4f  NG     ScanLineO
11270 72 64 65 72 69 6e 67 3b 0d 0a 7d 0d 0a 0d 0a 73  rdering;..}....s
11280 74 72 75 63 74 20 44 33 44 44 49 53 50 4c 41 59  truct D3DDISPLAY
11290 4d 4f 44 45 46 49 4c 54 45 52 0d 0a 7b 0d 0a 20  MODEFILTER..{.. 
112a0 20 20 20 55 49 4e 54 20 20 20 20 20 20 20 20 20     UINT         
112b0 20 20 20 20 20 20 20 20 20 20 20 53 69 7a 65 3b             Size;
112c0 0d 0a 20 20 20 20 44 33 44 46 4f 52 4d 41 54 20  ..    D3DFORMAT 
112d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f                Fo
112e0 72 6d 61 74 3b 0d 0a 20 20 20 20 44 33 44 53 43  rmat;..    D3DSC
112f0 41 4e 4c 49 4e 45 4f 52 44 45 52 49 4e 47 20 20  ANLINEORDERING  
11300 20 20 20 53 63 61 6e 4c 69 6e 65 4f 72 64 65 72     ScanLineOrder
11310 69 6e 67 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 65 6e 75  ing;..}......enu
11320 6d 20 3a 20 44 33 44 44 49 53 50 4c 41 59 52 4f  m : D3DDISPLAYRO
11330 54 41 54 49 4f 4e 0d 0a 7b 0d 0a 20 20 20 20 44  TATION..{..    D
11340 33 44 44 49 53 50 4c 41 59 52 4f 54 41 54 49 4f  3DDISPLAYROTATIO
11350 4e 5f 49 44 45 4e 54 49 54 59 20 3d 20 31 2c 20  N_IDENTITY = 1, 
11360 2f 2f 20 4e 6f 20 72 6f 74 61 74 69 6f 6e 2e 20  // No rotation. 
11370 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
11380 44 33 44 44 49 53 50 4c 41 59 52 4f 54 41 54 49  D3DDISPLAYROTATI
11390 4f 4e 5f 39 30 20 20 20 20 20 20 20 3d 20 32 2c  ON_90       = 2,
113a0 20 2f 2f 20 52 6f 74 61 74 65 64 20 39 30 20 64   // Rotated 90 d
113b0 65 67 72 65 65 73 2e 0d 0a 20 20 20 20 44 33 44  egrees...    D3D
113c0 44 49 53 50 4c 41 59 52 4f 54 41 54 49 4f 4e 5f  DISPLAYROTATION_
113d0 31 38 30 20 20 20 20 20 20 3d 20 33 2c 20 2f 2f  180      = 3, //
113e0 20 52 6f 74 61 74 65 64 20 31 38 30 20 64 65 67   Rotated 180 deg
113f0 72 65 65 73 2e 0d 0a 20 20 20 20 44 33 44 44 49  rees...    D3DDI
11400 53 50 4c 41 59 52 4f 54 41 54 49 4f 4e 5f 32 37  SPLAYROTATION_27
11410 30 20 20 20 20 20 20 3d 20 34 20 20 2f 2f 20 52  0      = 4  // R
11420 6f 74 61 74 65 64 20 32 37 30 20 64 65 67 72 65  otated 270 degre
11430 65 73 2e 0d 0a 7d 0d 0a 61 6c 69 61 73 20 54 79  es...}..alias Ty
11440 70 65 44 65 66 21 28 75 69 6e 74 29 20 44 33 44  peDef!(uint) D3D
11450 44 49 53 50 4c 41 59 52 4f 54 41 54 49 4f 4e 3b  DISPLAYROTATION;
11460 0d 0a 0d 0a 2f 2a 20 46 6f 72 20 75 73 65 20 69  ..../* For use i
11470 6e 20 49 44 33 44 52 65 73 6f 75 72 63 65 39 3a  n ID3DResource9:
11480 3a 53 65 74 50 72 69 6f 72 69 74 79 20 63 61 6c  :SetPriority cal
11490 6c 73 20 2a 2f 0d 0a 63 6f 6e 73 74 20 44 33 44  ls */..const D3D
114a0 39 5f 52 45 53 4f 55 52 43 45 5f 50 52 49 4f 52  9_RESOURCE_PRIOR
114b0 49 54 59 5f 4d 49 4e 49 4d 55 4d 20 3d 20 30 78  ITY_MINIMUM = 0x
114c0 32 38 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 73 74  28000000;..const
114d0 20 44 33 44 39 5f 52 45 53 4f 55 52 43 45 5f 50   D3D9_RESOURCE_P
114e0 52 49 4f 52 49 54 59 5f 4c 4f 57 20 3d 20 30 78  RIORITY_LOW = 0x
114f0 35 30 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 73 74  50000000;..const
11500 20 44 33 44 39 5f 52 45 53 4f 55 52 43 45 5f 50   D3D9_RESOURCE_P
11510 52 49 4f 52 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d  RIORITY_NORMAL =
11520 20 30 78 37 38 30 30 30 30 30 30 3b 0d 0a 63 6f   0x78000000;..co
11530 6e 73 74 20 44 33 44 39 5f 52 45 53 4f 55 52 43  nst D3D9_RESOURC
11540 45 5f 50 52 49 4f 52 49 54 59 5f 48 49 47 48 20  E_PRIORITY_HIGH 
11550 3d 20 30 78 61 30 30 30 30 30 30 30 3b 0d 0a 63  = 0xa0000000;..c
11560 6f 6e 73 74 20 44 33 44 39 5f 52 45 53 4f 55 52  onst D3D9_RESOUR
11570 43 45 5f 50 52 49 4f 52 49 54 59 5f 4d 41 58 49  CE_PRIORITY_MAXI
11580 4d 55 4d 20 3d 20 30 78 63 38 30 30 30 30 30 30  MUM = 0xc8000000
11590 3b                                               ;