Artifact 2c1af0c93353982726fce07894a59e7f363b5e26:
- File
src/win32/directx/d3d9types.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
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 ;