Hex Artifact Content

Not logged in

Artifact 31c199e5b62e320d90436c891c4cb7f4e081b116:


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 64 33 64 39 2e 68 0d 0a 20 2a 20 20 43     d3d9.h.. *  C
00b0: 6f 6e 74 65 6e 74 3a 20 20 20 20 44 69 72 65 63  ontent:    Direc
00c0: 74 33 44 20 69 6e 63 6c 75 64 65 20 66 69 6c 65  t3D include file
00d0: 0d 0a 20 2a 0d 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a  .. *.. *********
00e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
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 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e  ***/..module win
0130: 33 32 2e 64 69 72 65 63 74 78 2e 64 33 64 39 3b  32.directx.d3d9;
0140: 0d 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32  ....import win32
0150: 2e 77 69 6e 64 6f 77 73 3b 0d 0a 70 75 62 6c 69  .windows;..publi
0160: 63 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 64  c import win32.d
0170: 69 72 65 63 74 78 2e 64 33 64 39 74 79 70 65 73  irectx.d3d9types
0180: 3b 0d 0a 70 75 62 6c 69 63 20 69 6d 70 6f 72 74  ;..public import
0190: 20 77 69 6e 33 32 2e 64 69 72 65 63 74 78 2e 64   win32.directx.d
01a0: 33 64 39 63 61 70 73 3b 0d 0a 0d 0a 63 6f 6e 73  3d9caps;....cons
01b0: 74 20 44 49 52 45 43 54 33 44 5f 56 45 52 53 49  t DIRECT3D_VERSI
01c0: 4f 4e 20 3d 20 30 78 30 39 30 30 3b 0d 0a 0d 0a  ON = 0x0900;....
01d0: 2f 2a 2a 54 68 69 73 20 69 64 65 6e 74 69 66 69  /**This identifi
01e0: 65 72 20 69 73 20 70 61 73 73 65 64 20 74 6f 20  er is passed to 
01f0: 44 69 72 65 63 74 33 44 43 72 65 61 74 65 39 20  Direct3DCreate9 
0200: 69 6e 20 6f 72 64 65 72 20 74 6f 20 65 6e 73 75  in order to ensu
0210: 72 65 20 74 68 61 74 20 61 6e 0d 0a 20 2a 20 61  re that an.. * a
0220: 70 70 6c 69 63 61 74 69 6f 6e 20 77 61 73 20 62  pplication was b
0230: 75 69 6c 74 20 61 67 61 69 6e 73 74 20 74 68 65  uilt against the
0240: 20 63 6f 72 72 65 63 74 20 68 65 61 64 65 72 20   correct header 
0250: 66 69 6c 65 73 2e 20 54 68 69 73 20 6e 75 6d 62  files. This numb
0260: 65 72 20 69 73 0d 0a 20 2a 20 69 6e 63 72 65 6d  er is.. * increm
0270: 65 6e 74 65 64 20 77 68 65 6e 65 76 65 72 20 61  ented whenever a
0280: 20 68 65 61 64 65 72 20 28 6f 72 20 6f 74 68 65   header (or othe
0290: 72 29 20 63 68 61 6e 67 65 20 77 6f 75 6c 64 20  r) change would 
02a0: 72 65 71 75 69 72 65 20 61 70 70 6c 69 63 61 74  require applicat
02b0: 69 6f 6e 73 0d 0a 20 2a 20 74 6f 20 62 65 20 72  ions.. * to be r
02c0: 65 62 75 69 6c 74 2e 20 49 66 20 74 68 65 20 76  ebuilt. If the v
02d0: 65 72 73 69 6f 6e 20 64 6f 65 73 6e 27 74 20 6d  ersion doesn't m
02e0: 61 74 63 68 2c 20 44 69 72 65 63 74 33 44 43 72  atch, Direct3DCr
02f0: 65 61 74 65 39 20 77 69 6c 6c 20 66 61 69 6c 2e  eate9 will fail.
0300: 0d 0a 20 2a 20 28 54 68 65 20 6e 75 6d 62 65 72  .. * (The number
0310: 20 69 74 73 65 6c 66 20 68 61 73 20 6e 6f 20 6d   itself has no m
0320: 65 61 6e 69 6e 67 2e 29 2a 2f 0d 0a 0d 0a 64 65  eaning.)*/....de
0330: 62 75 67 20 7b 0d 0a 20 20 20 20 63 6f 6e 73 74  bug {..    const
0340: 20 44 33 44 5f 53 44 4b 5f 56 45 52 53 49 4f 4e   D3D_SDK_VERSION
0350: 20 3d 20 28 33 32 20 7c 20 30 78 38 30 30 30 30   = (32 | 0x80000
0360: 30 30 30 29 3b 0d 0a 20 20 20 20 63 6f 6e 73 74  000);..    const
0370: 20 44 33 44 39 62 5f 53 44 4b 5f 56 45 52 53 49   D3D9b_SDK_VERSI
0380: 4f 4e 20 3d 20 28 33 31 20 7c 20 30 78 38 30 30  ON = (31 | 0x800
0390: 30 30 30 30 30 29 3b 0d 0a 7d 0d 0a 65 6c 73 65  00000);..}..else
03a0: 20 7b 0d 0a 20 20 20 20 63 6f 6e 73 74 20 44 33   {..    const D3
03b0: 44 5f 53 44 4b 5f 56 45 52 53 49 4f 4e 20 3d 20  D_SDK_VERSION = 
03c0: 33 32 3b 0d 0a 20 20 20 20 63 6f 6e 73 74 20 44  32;..    const D
03d0: 33 44 39 62 5f 53 44 4b 5f 56 45 52 53 49 4f 4e  3D9b_SDK_VERSION
03e0: 20 3d 20 33 31 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 20   = 31;..}..../* 
03f0: 49 49 44 5f 49 44 69 72 65 63 74 33 44 39 20 2a  IID_IDirect3D9 *
0400: 2f 0d 0a 2f 2a 20 7b 38 31 42 44 43 42 43 41 2d  /../* {81BDCBCA-
0410: 36 34 44 34 2d 34 32 36 64 2d 41 45 38 44 2d 41  64D4-426d-AE8D-A
0420: 44 30 31 34 37 46 34 32 37 35 43 7d 20 2a 2f 0d  D0147F4275C} */.
0430: 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73  .extern (C) cons
0440: 74 20 47 55 49 44 20 49 49 44 5f 49 44 69 72 65  t GUID IID_IDire
0450: 63 74 33 44 39 20 3d 20 7b 20 30 78 38 31 62 64  ct3D9 = { 0x81bd
0460: 63 62 63 61 2c 20 30 78 36 34 64 34 2c 20 30 78  cbca, 0x64d4, 0x
0470: 34 32 36 64 2c 20 5b 30 78 61 65 2c 20 30 78 38  426d, [0xae, 0x8
0480: 64 2c 20 30 78 61 64 2c 20 30 78 31 2c 20 30 78  d, 0xad, 0x1, 0x
0490: 34 37 2c 20 30 78 66 34 2c 20 30 78 32 37 2c 20  47, 0xf4, 0x27, 
04a0: 30 78 35 63 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20 49  0x5c] };..../* I
04b0: 49 44 5f 49 44 69 72 65 63 74 33 44 44 65 76 69  ID_IDirect3DDevi
04c0: 63 65 39 20 2a 2f 0d 0a 2f 2f 20 7b 44 30 32 32  ce9 */..// {D022
04d0: 33 42 39 36 2d 42 46 37 41 2d 34 33 66 64 2d 39  3B96-BF7A-43fd-9
04e0: 32 42 44 2d 41 34 33 42 30 44 38 32 42 39 45 42  2BD-A43B0D82B9EB
04f0: 7d 20 2a 2f 0d 0a 65 78 74 65 72 6e 20 28 43 29  } */..extern (C)
0500: 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49 44 5f   const GUID IID_
0510: 49 44 69 72 65 63 74 33 44 44 65 76 69 63 65 39  IDirect3DDevice9
0520: 20 3d 20 7b 20 30 78 64 30 32 32 33 62 39 36 2c   = { 0xd0223b96,
0530: 20 30 78 62 66 37 61 2c 20 30 78 34 33 66 64 2c   0xbf7a, 0x43fd,
0540: 20 5b 30 78 39 32 2c 20 30 78 62 64 2c 20 30 78   [0x92, 0xbd, 0x
0550: 61 34 2c 20 30 78 33 62 2c 20 30 78 64 2c 20 30  a4, 0x3b, 0xd, 0
0560: 78 38 32 2c 20 30 78 62 39 2c 20 30 78 65 62 5d  x82, 0xb9, 0xeb]
0570: 20 7d 3b 0d 0a 0d 0a 2f 2a 20 49 49 44 5f 49 44   };..../* IID_ID
0580: 69 72 65 63 74 33 44 52 65 73 6f 75 72 63 65 39  irect3DResource9
0590: 20 2a 2f 0d 0a 2f 2f 20 7b 30 35 45 45 43 30 35   */..// {05EEC05
05a0: 44 2d 38 46 37 44 2d 34 33 36 32 2d 42 39 39 39  D-8F7D-4362-B999
05b0: 2d 44 31 42 41 46 33 35 37 43 37 30 34 7d 0d 0a  -D1BAF357C704}..
05c0: 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73 74  extern (C) const
05d0: 20 47 55 49 44 20 49 49 44 5f 49 44 69 72 65 63   GUID IID_IDirec
05e0: 74 33 44 52 65 73 6f 75 72 63 65 39 20 3d 20 7b  t3DResource9 = {
05f0: 20 30 78 30 35 65 65 63 30 35 64 2c 20 30 78 38   0x05eec05d, 0x8
0600: 66 37 64 2c 20 30 78 34 33 36 32 2c 20 5b 30 78  f7d, 0x4362, [0x
0610: 62 39 2c 20 30 78 39 39 2c 20 30 78 64 31 2c 20  b9, 0x99, 0xd1, 
0620: 30 78 62 61 2c 20 30 78 66 33 2c 20 30 78 35 37  0xba, 0xf3, 0x57
0630: 2c 20 30 78 63 37 2c 20 30 78 30 34 5d 20 7d 3b  , 0xc7, 0x04] };
0640: 0d 0a 0d 0a 2f 2a 20 49 49 44 5f 49 44 69 72 65  ..../* IID_IDire
0650: 63 74 33 44 42 61 73 65 54 65 78 74 75 72 65 39  ct3DBaseTexture9
0660: 20 2a 2f 0d 0a 2f 2a 20 7b 35 38 30 43 41 38 37   */../* {580CA87
0670: 45 2d 31 44 33 43 2d 34 64 35 34 2d 39 39 31 44  E-1D3C-4d54-991D
0680: 2d 42 37 44 33 45 33 43 32 39 38 43 45 7d 20 2a  -B7D3E3C298CE} *
0690: 2f 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f  /..extern (C) co
06a0: 6e 73 74 20 47 55 49 44 20 49 49 44 5f 49 44 69  nst GUID IID_IDi
06b0: 72 65 63 74 33 44 42 61 73 65 54 65 78 74 75 72  rect3DBaseTextur
06c0: 65 39 20 3d 20 7b 20 30 78 35 38 30 63 61 38 37  e9 = { 0x580ca87
06d0: 65 2c 20 30 78 31 64 33 63 2c 20 30 78 34 64 35  e, 0x1d3c, 0x4d5
06e0: 34 2c 20 5b 30 78 39 39 2c 20 30 78 31 64 2c 20  4, [0x99, 0x1d, 
06f0: 30 78 62 37 2c 20 30 78 64 33 2c 20 30 78 65 33  0xb7, 0xd3, 0xe3
0700: 2c 20 30 78 63 32 2c 20 30 78 39 38 2c 20 30 78  , 0xc2, 0x98, 0x
0710: 63 65 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20 49 49 44  ce] };..../* IID
0720: 5f 49 44 69 72 65 63 74 33 44 54 65 78 74 75 72  _IDirect3DTextur
0730: 65 39 20 2a 2f 0d 0a 2f 2a 20 7b 38 35 43 33 31  e9 */../* {85C31
0740: 32 32 37 2d 33 44 45 35 2d 34 66 30 30 2d 39 42  227-3DE5-4f00-9B
0750: 33 41 2d 46 31 31 41 43 33 38 43 31 38 42 35 7d  3A-F11AC38C18B5}
0760: 20 2a 2f 0d 0a 65 78 74 65 72 6e 20 28 43 29 20   */..extern (C) 
0770: 63 6f 6e 73 74 20 47 55 49 44 20 49 49 44 5f 49  const GUID IID_I
0780: 44 69 72 65 63 74 33 44 54 65 78 74 75 72 65 39  Direct3DTexture9
0790: 20 3d 20 7b 20 30 78 38 35 63 33 31 32 32 37 2c   = { 0x85c31227,
07a0: 20 30 78 33 64 65 35 2c 20 30 78 34 66 30 30 2c   0x3de5, 0x4f00,
07b0: 20 5b 30 78 39 62 2c 20 30 78 33 61 2c 20 30 78   [0x9b, 0x3a, 0x
07c0: 66 31 2c 20 30 78 31 61 2c 20 30 78 63 33 2c 20  f1, 0x1a, 0xc3, 
07d0: 30 78 38 63 2c 20 30 78 31 38 2c 20 30 78 62 35  0x8c, 0x18, 0xb5
07e0: 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20 49 49 44 5f 49  ] };..../* IID_I
07f0: 44 69 72 65 63 74 33 44 43 75 62 65 54 65 78 74  Direct3DCubeText
0800: 75 72 65 39 20 2a 2f 0d 0a 2f 2a 20 7b 46 46 46  ure9 */../* {FFF
0810: 33 32 46 38 31 2d 44 39 35 33 2d 34 37 33 61 2d  32F81-D953-473a-
0820: 39 32 32 33 2d 39 33 44 36 35 32 41 42 41 39 33  9223-93D652ABA93
0830: 46 7d 20 2a 2f 0d 0a 65 78 74 65 72 6e 20 28 43  F} */..extern (C
0840: 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49 44  ) const GUID IID
0850: 5f 49 44 69 72 65 63 74 33 44 43 75 62 65 54 65  _IDirect3DCubeTe
0860: 78 74 75 72 65 39 20 3d 20 7b 20 30 78 66 66 66  xture9 = { 0xfff
0870: 33 32 66 38 31 2c 20 30 78 64 39 35 33 2c 20 30  32f81, 0xd953, 0
0880: 78 34 37 33 61 2c 20 5b 30 78 39 32 2c 20 30 78  x473a, [0x92, 0x
0890: 32 33 2c 20 30 78 39 33 2c 20 30 78 64 36 2c 20  23, 0x93, 0xd6, 
08a0: 30 78 35 32 2c 20 30 78 61 62 2c 20 30 78 61 39  0x52, 0xab, 0xa9
08b0: 2c 20 30 78 33 66 5d 20 7d 3b 0d 0a 0d 0a 2f 2a  , 0x3f] };..../*
08c0: 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 56 6f   IID_IDirect3DVo
08d0: 6c 75 6d 65 54 65 78 74 75 72 65 39 20 2a 2f 0d  lumeTexture9 */.
08e0: 0a 2f 2a 20 7b 32 35 31 38 35 32 36 43 2d 45 37  ./* {2518526C-E7
08f0: 38 39 2d 34 31 31 31 2d 41 37 42 39 2d 34 37 45  89-4111-A7B9-47E
0900: 46 33 32 38 44 31 33 45 36 7d 20 2a 2f 0d 0a 65  F328D13E6} */..e
0910: 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73 74 20  xtern (C) const 
0920: 47 55 49 44 20 49 49 44 5f 49 44 69 72 65 63 74  GUID IID_IDirect
0930: 33 44 56 6f 6c 75 6d 65 54 65 78 74 75 72 65 39  3DVolumeTexture9
0940: 20 3d 20 7b 20 30 78 32 35 31 38 35 32 36 63 2c   = { 0x2518526c,
0950: 20 30 78 65 37 38 39 2c 20 30 78 34 31 31 31 2c   0xe789, 0x4111,
0960: 20 5b 30 78 61 37 2c 20 30 78 62 39 2c 20 30 78   [0xa7, 0xb9, 0x
0970: 34 37 2c 20 30 78 65 66 2c 20 30 78 33 32 2c 20  47, 0xef, 0x32, 
0980: 30 78 38 64 2c 20 30 78 31 33 2c 20 30 78 65 36  0x8d, 0x13, 0xe6
0990: 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20 49 49 44 5f 49  ] };..../* IID_I
09a0: 44 69 72 65 63 74 33 44 56 65 72 74 65 78 42 75  Direct3DVertexBu
09b0: 66 66 65 72 39 20 2a 2f 0d 0a 2f 2a 20 7b 42 36  ffer9 */../* {B6
09c0: 34 42 42 31 42 35 2d 46 44 37 30 2d 34 64 66 36  4BB1B5-FD70-4df6
09d0: 2d 42 46 39 31 2d 31 39 44 30 41 31 32 34 35 35  -BF91-19D0A12455
09e0: 45 33 7d 20 2a 2f 0d 0a 65 78 74 65 72 6e 20 28  E3} */..extern (
09f0: 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49  C) const GUID II
0a00: 44 5f 49 44 69 72 65 63 74 33 44 56 65 72 74 65  D_IDirect3DVerte
0a10: 78 42 75 66 66 65 72 39 20 3d 20 7b 20 30 78 62  xBuffer9 = { 0xb
0a20: 36 34 62 62 31 62 35 2c 20 30 78 66 64 37 30 2c  64bb1b5, 0xfd70,
0a30: 20 30 78 34 64 66 36 2c 20 5b 30 78 62 66 2c 20   0x4df6, [0xbf, 
0a40: 30 78 39 31 2c 20 30 78 31 39 2c 20 30 78 64 30  0x91, 0x19, 0xd0
0a50: 2c 20 30 78 61 31 2c 20 30 78 32 34 2c 20 30 78  , 0xa1, 0x24, 0x
0a60: 35 35 2c 20 30 78 65 33 5d 20 7d 3b 0d 0a 0d 0a  55, 0xe3] };....
0a70: 2f 2a 20 49 49 44 5f 49 44 69 72 65 63 74 33 44  /* IID_IDirect3D
0a80: 49 6e 64 65 78 42 75 66 66 65 72 39 20 2a 2f 0d  IndexBuffer9 */.
0a90: 0a 2f 2a 20 7b 37 43 39 44 44 36 35 45 2d 44 33  ./* {7C9DD65E-D3
0aa0: 46 37 2d 34 35 32 39 2d 41 43 45 45 2d 37 38 35  F7-4529-ACEE-785
0ab0: 38 33 30 41 43 44 45 33 35 7d 20 2a 2f 0d 0a 65  830ACDE35} */..e
0ac0: 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73 74 20  xtern (C) const 
0ad0: 47 55 49 44 20 49 49 44 5f 49 44 69 72 65 63 74  GUID IID_IDirect
0ae0: 33 44 49 6e 64 65 78 42 75 66 66 65 72 39 20 3d  3DIndexBuffer9 =
0af0: 20 7b 20 30 78 37 63 39 64 64 36 35 65 2c 20 30   { 0x7c9dd65e, 0
0b00: 78 64 33 66 37 2c 20 30 78 34 35 32 39 2c 20 5b  xd3f7, 0x4529, [
0b10: 30 78 61 63 2c 20 30 78 65 65 2c 20 30 78 37 38  0xac, 0xee, 0x78
0b20: 2c 20 30 78 35 38 2c 20 30 78 33 30 2c 20 30 78  , 0x58, 0x30, 0x
0b30: 61 63 2c 20 30 78 64 65 2c 20 30 78 33 35 5d 20  ac, 0xde, 0x35] 
0b40: 7d 3b 0d 0a 0d 0a 2f 2a 20 49 49 44 5f 49 44 69  };..../* IID_IDi
0b50: 72 65 63 74 33 44 53 75 72 66 61 63 65 39 20 2a  rect3DSurface9 *
0b60: 2f 0d 0a 2f 2a 20 7b 30 43 46 42 41 46 33 41 2d  /../* {0CFBAF3A-
0b70: 39 46 46 36 2d 34 32 39 61 2d 39 39 42 33 2d 41  9FF6-429a-99B3-A
0b80: 32 37 39 36 41 46 38 42 38 39 42 7d 20 2a 2f 0d  2796AF8B89B} */.
0b90: 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73  .extern (C) cons
0ba0: 74 20 47 55 49 44 20 49 49 44 5f 49 44 69 72 65  t GUID IID_IDire
0bb0: 63 74 33 44 53 75 72 66 61 63 65 39 20 3d 20 7b  ct3DSurface9 = {
0bc0: 20 30 78 63 66 62 61 66 33 61 2c 20 30 78 39 66   0xcfbaf3a, 0x9f
0bd0: 66 36 2c 20 30 78 34 32 39 61 2c 20 5b 30 78 39  f6, 0x429a, [0x9
0be0: 39 2c 20 30 78 62 33 2c 20 30 78 61 32 2c 20 30  9, 0xb3, 0xa2, 0
0bf0: 78 37 39 2c 20 30 78 36 61 2c 20 30 78 66 38 2c  x79, 0x6a, 0xf8,
0c00: 20 30 78 62 38 2c 20 30 78 39 62 5d 20 7d 3b 0d   0xb8, 0x9b] };.
0c10: 0a 0d 0a 2f 2a 20 49 49 44 5f 49 44 69 72 65 63  .../* IID_IDirec
0c20: 74 33 44 56 6f 6c 75 6d 65 39 20 2a 2f 0d 0a 2f  t3DVolume9 */../
0c30: 2a 20 7b 32 34 46 34 31 36 45 36 2d 31 46 36 37  * {24F416E6-1F67
0c40: 2d 34 61 61 37 2d 42 38 38 45 2d 44 33 33 46 36  -4aa7-B88E-D33F6
0c50: 46 33 31 32 38 41 31 7d 20 2a 2f 0d 0a 65 78 74  F3128A1} */..ext
0c60: 65 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55  ern (C) const GU
0c70: 49 44 20 49 49 44 5f 49 44 69 72 65 63 74 33 44  ID IID_IDirect3D
0c80: 56 6f 6c 75 6d 65 39 20 3d 20 7b 20 30 78 32 34  Volume9 = { 0x24
0c90: 66 34 31 36 65 36 2c 20 30 78 31 66 36 37 2c 20  f416e6, 0x1f67, 
0ca0: 30 78 34 61 61 37 2c 20 5b 30 78 62 38 2c 20 30  0x4aa7, [0xb8, 0
0cb0: 78 38 65 2c 20 30 78 64 33 2c 20 30 78 33 66 2c  x8e, 0xd3, 0x3f,
0cc0: 20 30 78 36 66 2c 20 30 78 33 31 2c 20 30 78 32   0x6f, 0x31, 0x2
0cd0: 38 2c 20 30 78 61 31 5d 20 7d 3b 0d 0a 0d 0a 2f  8, 0xa1] };..../
0ce0: 2a 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 53  * IID_IDirect3DS
0cf0: 77 61 70 43 68 61 69 6e 39 20 2a 2f 0d 0a 2f 2a  wapChain9 */../*
0d00: 20 7b 37 39 34 39 35 30 46 32 2d 41 44 46 43 2d   {794950F2-ADFC-
0d10: 34 35 38 61 2d 39 30 35 45 2d 31 30 41 31 30 42  458a-905E-10A10B
0d20: 30 42 35 30 33 42 7d 20 2a 2f 0d 0a 65 78 74 65  0B503B} */..exte
0d30: 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49  rn (C) const GUI
0d40: 44 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 53  D IID_IDirect3DS
0d50: 77 61 70 43 68 61 69 6e 39 20 3d 20 7b 20 30 78  wapChain9 = { 0x
0d60: 37 39 34 39 35 30 66 32 2c 20 30 78 61 64 66 63  794950f2, 0xadfc
0d70: 2c 20 30 78 34 35 38 61 2c 20 5b 30 78 39 30 2c  , 0x458a, [0x90,
0d80: 20 30 78 35 65 2c 20 30 78 31 30 2c 20 30 78 61   0x5e, 0x10, 0xa
0d90: 31 2c 20 30 78 62 2c 20 30 78 62 2c 20 30 78 35  1, 0xb, 0xb, 0x5
0da0: 30 2c 20 30 78 33 62 5d 20 7d 3b 0d 0a 0d 0a 2f  0, 0x3b] };..../
0db0: 2a 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 56  * IID_IDirect3DV
0dc0: 65 72 74 65 78 44 65 63 6c 61 72 61 74 69 6f 6e  ertexDeclaration
0dd0: 39 20 2a 2f 0d 0a 2f 2a 20 7b 44 44 31 33 43 35  9 */../* {DD13C5
0de0: 39 43 2d 33 36 46 41 2d 34 30 39 38 2d 41 38 46  9C-36FA-4098-A8F
0df0: 42 2d 43 37 45 44 33 39 44 43 38 35 34 36 7d 20  B-C7ED39DC8546} 
0e00: 2a 2f 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63  */..extern (C) c
0e10: 6f 6e 73 74 20 47 55 49 44 20 49 49 44 5f 49 44  onst GUID IID_ID
0e20: 69 72 65 63 74 33 44 56 65 72 74 65 78 44 65 63  irect3DVertexDec
0e30: 6c 61 72 61 74 69 6f 6e 39 20 3d 20 7b 20 30 78  laration9 = { 0x
0e40: 64 64 31 33 63 35 39 63 2c 20 30 78 33 36 66 61  dd13c59c, 0x36fa
0e50: 2c 20 30 78 34 30 39 38 2c 20 5b 30 78 61 38 2c  , 0x4098, [0xa8,
0e60: 20 30 78 66 62 2c 20 30 78 63 37 2c 20 30 78 65   0xfb, 0xc7, 0xe
0e70: 64 2c 20 30 78 33 39 2c 20 30 78 64 63 2c 20 30  d, 0x39, 0xdc, 0
0e80: 78 38 35 2c 20 30 78 34 36 5d 20 7d 3b 0d 0a 0d  x85, 0x46] };...
0e90: 0a 2f 2a 20 49 49 44 5f 49 44 69 72 65 63 74 33  ./* IID_IDirect3
0ea0: 44 56 65 72 74 65 78 53 68 61 64 65 72 39 20 2a  DVertexShader9 *
0eb0: 2f 0d 0a 2f 2a 20 7b 45 46 43 35 35 35 37 45 2d  /../* {EFC5557E-
0ec0: 36 32 36 35 2d 34 36 31 33 2d 38 41 39 34 2d 34  6265-4613-8A94-4
0ed0: 33 38 35 37 38 38 39 45 42 33 36 7d 20 2a 2f 0d  3857889EB36} */.
0ee0: 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73  .extern (C) cons
0ef0: 74 20 47 55 49 44 20 49 49 44 5f 49 44 69 72 65  t GUID IID_IDire
0f00: 63 74 33 44 56 65 72 74 65 78 53 68 61 64 65 72  ct3DVertexShader
0f10: 39 20 3d 20 7b 20 30 78 65 66 63 35 35 35 37 65  9 = { 0xefc5557e
0f20: 2c 20 30 78 36 32 36 35 2c 20 30 78 34 36 31 33  , 0x6265, 0x4613
0f30: 2c 20 5b 30 78 38 61 2c 20 30 78 39 34 2c 20 30  , [0x8a, 0x94, 0
0f40: 78 34 33 2c 20 30 78 38 35 2c 20 30 78 37 38 2c  x43, 0x85, 0x78,
0f50: 20 30 78 38 39 2c 20 30 78 65 62 2c 20 30 78 33   0x89, 0xeb, 0x3
0f60: 36 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20 49 49 44 5f  6] };..../* IID_
0f70: 49 44 69 72 65 63 74 33 44 50 69 78 65 6c 53 68  IDirect3DPixelSh
0f80: 61 64 65 72 39 20 2a 2f 0d 0a 2f 2a 20 7b 36 44  ader9 */../* {6D
0f90: 33 42 44 42 44 43 2d 35 42 30 32 2d 34 34 31 35  3BDBDC-5B02-4415
0fa0: 2d 42 38 35 32 2d 43 45 35 45 38 42 43 43 42 32  -B852-CE5E8BCCB2
0fb0: 38 39 7d 20 2a 2f 0d 0a 65 78 74 65 72 6e 20 28  89} */..extern (
0fc0: 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49  C) const GUID II
0fd0: 44 5f 49 44 69 72 65 63 74 33 44 50 69 78 65 6c  D_IDirect3DPixel
0fe0: 53 68 61 64 65 72 39 20 3d 20 7b 20 30 78 36 64  Shader9 = { 0x6d
0ff0: 33 62 64 62 64 63 2c 20 30 78 35 62 30 32 2c 20  3bdbdc, 0x5b02, 
1000: 30 78 34 34 31 35 2c 20 5b 30 78 62 38 2c 20 30  0x4415, [0xb8, 0
1010: 78 35 32 2c 20 30 78 63 65 2c 20 30 78 35 65 2c  x52, 0xce, 0x5e,
1020: 20 30 78 38 62 2c 20 30 78 63 63 2c 20 30 78 62   0x8b, 0xcc, 0xb
1030: 32 2c 20 30 78 38 39 5d 20 7d 3b 0d 0a 0d 0a 2f  2, 0x89] };..../
1040: 2a 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 53  * IID_IDirect3DS
1050: 74 61 74 65 42 6c 6f 63 6b 39 20 2a 2f 0d 0a 2f  tateBlock9 */../
1060: 2a 20 7b 42 30 37 43 34 46 45 35 2d 33 31 30 44  * {B07C4FE5-310D
1070: 2d 34 62 61 38 2d 41 32 33 43 2d 34 46 30 46 32  -4ba8-A23C-4F0F2
1080: 30 36 46 32 31 38 42 7d 20 2a 2f 0d 0a 65 78 74  06F218B} */..ext
1090: 65 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55  ern (C) const GU
10a0: 49 44 20 49 49 44 5f 49 44 69 72 65 63 74 33 44  ID IID_IDirect3D
10b0: 53 74 61 74 65 42 6c 6f 63 6b 39 20 3d 20 7b 20  StateBlock9 = { 
10c0: 30 78 62 30 37 63 34 66 65 35 2c 20 30 78 33 31  0xb07c4fe5, 0x31
10d0: 30 64 2c 20 30 78 34 62 61 38 2c 20 5b 30 78 61  0d, 0x4ba8, [0xa
10e0: 32 2c 20 30 78 33 63 2c 20 30 78 34 66 2c 20 30  2, 0x3c, 0x4f, 0
10f0: 78 66 2c 20 30 78 32 30 2c 20 30 78 36 66 2c 20  xf, 0x20, 0x6f, 
1100: 30 78 32 31 2c 20 30 78 38 62 5d 20 7d 3b 0d 0a  0x21, 0x8b] };..
1110: 0d 0a 2f 2a 20 49 49 44 5f 49 44 69 72 65 63 74  ../* IID_IDirect
1120: 33 44 51 75 65 72 79 39 20 2a 2f 0d 0a 2f 2a 20  3DQuery9 */../* 
1130: 7b 64 39 37 37 31 34 36 30 2d 61 36 39 35 2d 34  {d9771460-a695-4
1140: 66 32 36 2d 62 62 64 33 2d 32 37 62 38 34 30 62  f26-bbd3-27b840b
1150: 35 34 31 63 63 7d 20 2a 2f 0d 0a 65 78 74 65 72  541cc} */..exter
1160: 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44  n (C) const GUID
1170: 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 51 75   IID_IDirect3DQu
1180: 65 72 79 39 20 3d 20 7b 20 30 78 64 39 37 37 31  ery9 = { 0xd9771
1190: 34 36 30 2c 20 30 78 61 36 39 35 2c 20 30 78 34  460, 0xa695, 0x4
11a0: 66 32 36 2c 20 5b 30 78 62 62 2c 20 30 78 64 33  f26, [0xbb, 0xd3
11b0: 2c 20 30 78 32 37 2c 20 30 78 62 38 2c 20 30 78  , 0x27, 0xb8, 0x
11c0: 34 30 2c 20 30 78 62 35 2c 20 30 78 34 31 2c 20  40, 0xb5, 0x41, 
11d0: 30 78 63 63 5d 20 7d 3b 0d 0a 0d 0a 0d 0a 2f 2a  0xcc] };....../*
11e0: 20 49 49 44 5f 48 65 6c 70 65 72 4e 61 6d 65 20   IID_HelperName 
11f0: 2a 2f 0d 0a 2f 2a 20 7b 45 34 41 33 36 37 32 33  */../* {E4A36723
1200: 2d 46 44 46 45 2d 34 62 32 32 2d 42 31 34 36 2d  -FDFE-4b22-B146-
1210: 33 43 30 34 43 30 37 46 34 43 43 38 7d 20 2a 2f  3C04C07F4CC8} */
1220: 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e  ..extern (C) con
1230: 73 74 20 47 55 49 44 20 49 49 44 5f 48 65 6c 70  st GUID IID_Help
1240: 65 72 4e 61 6d 65 20 3d 20 7b 20 30 78 65 34 61  erName = { 0xe4a
1250: 33 36 37 32 33 2c 20 30 78 66 64 66 65 2c 20 30  36723, 0xfdfe, 0
1260: 78 34 62 32 32 2c 20 5b 30 78 62 31 2c 20 30 78  x4b22, [0xb1, 0x
1270: 34 36 2c 20 30 78 33 63 2c 20 30 78 34 2c 20 30  46, 0x3c, 0x4, 0
1280: 78 63 30 2c 20 30 78 37 66 2c 20 30 78 34 63 2c  xc0, 0x7f, 0x4c,
1290: 20 30 78 63 38 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20   0xc8] };..../* 
12a0: 49 49 44 5f 49 44 69 72 65 63 74 33 44 39 45 78  IID_IDirect3D9Ex
12b0: 20 2a 2f 0d 0a 2f 2a 20 7b 30 32 31 37 37 32 34   */../* {0217724
12c0: 31 2d 36 39 46 43 2d 34 30 30 43 2d 38 46 46 31  1-69FC-400C-8FF1
12d0: 2d 39 33 41 34 34 44 46 36 38 36 31 44 7d 20 2a  -93A44DF6861D} *
12e0: 2f 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f  /..extern (C) co
12f0: 6e 73 74 20 47 55 49 44 20 49 49 44 5f 49 44 69  nst GUID IID_IDi
1300: 72 65 63 74 33 44 39 45 78 20 3d 20 7b 20 30 78  rect3D9Ex = { 0x
1310: 30 32 31 37 37 32 34 31 2c 20 30 78 36 39 46 43  02177241, 0x69FC
1320: 2c 20 30 78 34 30 30 43 2c 20 5b 30 78 38 46 2c  , 0x400C, [0x8F,
1330: 20 30 78 46 31 2c 20 30 78 39 33 2c 20 30 78 41   0xF1, 0x93, 0xA
1340: 34 2c 20 30 78 34 44 2c 20 30 78 46 36 2c 20 30  4, 0x4D, 0xF6, 0
1350: 78 38 36 2c 20 30 78 31 44 5d 20 7d 3b 0d 0a 0d  x86, 0x1D] };...
1360: 0a 2f 2a 20 49 49 44 5f 49 44 69 72 65 63 74 33  ./* IID_IDirect3
1370: 44 44 65 76 69 63 65 39 45 78 20 2a 2f 0d 0a 2f  DDevice9Ex */../
1380: 2f 20 7b 42 31 38 42 31 30 43 45 2d 32 36 34 39  / {B18B10CE-2649
1390: 2d 34 30 35 61 2d 38 37 30 46 2d 39 35 46 37 37  -405a-870F-95F77
13a0: 37 44 34 33 31 33 41 7d 0d 0a 65 78 74 65 72 6e  7D4313A}..extern
13b0: 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20   (C) const GUID 
13c0: 49 49 44 5f 49 44 69 72 65 63 74 33 44 44 65 76  IID_IDirect3DDev
13d0: 69 63 65 39 45 78 20 3d 20 7b 20 30 78 62 31 38  ice9Ex = { 0xb18
13e0: 62 31 30 63 65 2c 20 30 78 32 36 34 39 2c 20 30  b10ce, 0x2649, 0
13f0: 78 34 30 35 61 2c 20 5b 30 78 38 37 2c 20 30 78  x405a, [0x87, 0x
1400: 66 2c 20 30 78 39 35 2c 20 30 78 66 37 2c 20 30  f, 0x95, 0xf7, 0
1410: 78 37 37 2c 20 30 78 64 34 2c 20 30 78 33 31 2c  x77, 0xd4, 0x31,
1420: 20 30 78 33 61 5d 20 7d 3b 0d 0a 0d 0a 2f 2a 20   0x3a] };..../* 
1430: 49 49 44 5f 49 44 69 72 65 63 74 33 44 53 77 61  IID_IDirect3DSwa
1440: 70 43 68 61 69 6e 39 45 78 20 2a 2f 0d 0a 2f 2a  pChain9Ex */../*
1450: 20 7b 39 31 38 38 36 43 41 46 2d 31 43 33 44 2d   {91886CAF-1C3D-
1460: 34 64 32 65 2d 41 30 41 42 2d 33 45 34 43 37 44  4d2e-A0AB-3E4C7D
1470: 38 44 33 33 30 33 7d 20 2a 2f 0d 0a 65 78 74 65  8D3303} */..exte
1480: 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49  rn (C) const GUI
1490: 44 20 49 49 44 5f 49 44 69 72 65 63 74 33 44 53  D IID_IDirect3DS
14a0: 77 61 70 43 68 61 69 6e 39 45 78 20 3d 20 7b 20  wapChain9Ex = { 
14b0: 30 78 39 31 38 38 36 63 61 66 2c 20 30 78 31 63  0x91886caf, 0x1c
14c0: 33 64 2c 20 30 78 34 64 32 65 2c 20 5b 30 78 61  3d, 0x4d2e, [0xa
14d0: 30 2c 20 30 78 61 62 2c 20 30 78 33 65 2c 20 30  0, 0xab, 0x3e, 0
14e0: 78 34 63 2c 20 30 78 37 64 2c 20 30 78 38 64 2c  x4c, 0x7d, 0x8d,
14f0: 20 30 78 33 33 2c 20 30 78 30 33 5d 20 7d 3b 0d   0x33, 0x03] };.
1500: 0a 0d 0a 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 43  .......extern (C
1510: 29 3a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 44 4c 4c 20  ):../**.. * DLL 
1520: 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 63 72 65  Function for cre
1530: 61 74 69 6e 67 20 61 20 44 69 72 65 63 74 33 44  ating a Direct3D
1540: 39 20 6f 62 6a 65 63 74 2e 20 54 68 69 73 20 6f  9 object. This o
1550: 62 6a 65 63 74 20 73 75 70 70 6f 72 74 73 0d 0a  bject supports..
1560: 20 2a 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 61   * enumeration a
1570: 6e 64 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 72  nd allows the cr
1580: 65 61 74 69 6f 6e 20 6f 66 20 44 69 72 65 63 74  eation of Direct
1590: 33 44 44 65 76 69 63 65 39 20 6f 62 6a 65 63 74  3DDevice9 object
15a0: 73 2e 0d 0a 20 2a 20 50 61 73 73 20 74 68 65 20  s... * Pass the 
15b0: 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 6f 6e  value of the con
15c0: 73 74 61 6e 74 20 44 33 44 5f 53 44 4b 5f 56 45  stant D3D_SDK_VE
15d0: 52 53 49 4f 4e 20 74 6f 20 74 68 69 73 20 66 75  RSION to this fu
15e0: 6e 63 74 69 6f 6e 2c 20 73 6f 0d 0a 20 2a 20 74  nction, so.. * t
15f0: 68 61 74 20 74 68 65 20 72 75 6e 2d 74 69 6d 65  hat the run-time
1600: 20 63 61 6e 20 76 61 6c 69 64 61 74 65 20 74 68   can validate th
1610: 61 74 20 79 6f 75 72 20 61 70 70 6c 69 63 61 74  at your applicat
1620: 69 6f 6e 20 77 61 73 20 63 6f 6d 70 69 6c 65 64  ion was compiled
1630: 0d 0a 20 2a 20 61 67 61 69 6e 73 74 20 74 68 65  .. * against the
1640: 20 72 69 67 68 74 20 68 65 61 64 65 72 73 2e 0d   right headers..
1650: 0a 20 2a 2f 0d 0a 0d 0a 65 78 74 65 72 6e 20 28  . */....extern (
1660: 57 69 6e 64 6f 77 73 29 20 4c 50 44 49 52 45 43  Windows) LPDIREC
1670: 54 33 44 39 20 44 69 72 65 63 74 33 44 43 72 65  T3D9 Direct3DCre
1680: 61 74 65 39 28 55 49 4e 54 20 53 44 4b 56 65 72  ate9(UINT SDKVer
1690: 73 69 6f 6e 29 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 20  sion);..../**.. 
16a0: 2a 20 53 74 75 62 73 20 66 6f 72 20 67 72 61 70  * Stubs for grap
16b0: 68 69 63 73 20 70 72 6f 66 69 6c 69 6e 67 2e 0d  hics profiling..
16c0: 0a 20 2a 2f 0d 0a 65 78 74 65 72 6e 20 28 57 69  . */..extern (Wi
16d0: 6e 64 6f 77 73 29 20 69 6e 74 20 44 33 44 50 45  ndows) int D3DPE
16e0: 52 46 5f 42 65 67 69 6e 45 76 65 6e 74 28 20 44  RF_BeginEvent( D
16f0: 33 44 43 4f 4c 4f 52 20 63 6f 6c 2c 20 4c 50 43  3DCOLOR col, LPC
1700: 57 53 54 52 20 77 73 7a 4e 61 6d 65 20 29 3b 0d  WSTR wszName );.
1710: 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73  .extern (Windows
1720: 29 20 69 6e 74 20 44 33 44 50 45 52 46 5f 45 6e  ) int D3DPERF_En
1730: 64 45 76 65 6e 74 28 29 3b 0d 0a 65 78 74 65 72  dEvent();..exter
1740: 6e 20 28 57 69 6e 64 6f 77 73 29 20 76 6f 69 64  n (Windows) void
1750: 20 44 33 44 50 45 52 46 5f 53 65 74 4d 61 72 6b   D3DPERF_SetMark
1760: 65 72 28 20 44 33 44 43 4f 4c 4f 52 20 63 6f 6c  er( D3DCOLOR col
1770: 2c 20 4c 50 43 57 53 54 52 20 77 73 7a 4e 61 6d  , LPCWSTR wszNam
1780: 65 20 29 3b 0d 0a 65 78 74 65 72 6e 20 28 57 69  e );..extern (Wi
1790: 6e 64 6f 77 73 29 20 76 6f 69 64 20 44 33 44 50  ndows) void D3DP
17a0: 45 52 46 5f 53 65 74 52 65 67 69 6f 6e 28 20 44  ERF_SetRegion( D
17b0: 33 44 43 4f 4c 4f 52 20 63 6f 6c 2c 20 4c 50 43  3DCOLOR col, LPC
17c0: 57 53 54 52 20 77 73 7a 4e 61 6d 65 20 29 3b 0d  WSTR wszName );.
17d0: 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73  .extern (Windows
17e0: 29 20 42 4f 4f 4c 20 44 33 44 50 45 52 46 5f 51  ) BOOL D3DPERF_Q
17f0: 75 65 72 79 52 65 70 65 61 74 46 72 61 6d 65 28  ueryRepeatFrame(
1800: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69  );....extern (Wi
1810: 6e 64 6f 77 73 29 20 76 6f 69 64 20 44 33 44 50  ndows) void D3DP
1820: 45 52 46 5f 53 65 74 4f 70 74 69 6f 6e 73 28 20  ERF_SetOptions( 
1830: 44 57 4f 52 44 20 64 77 4f 70 74 69 6f 6e 73 20  DWORD dwOptions 
1840: 29 3b 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64  );..extern (Wind
1850: 6f 77 73 29 20 44 57 4f 52 44 20 44 33 44 50 45  ows) DWORD D3DPE
1860: 52 46 5f 47 65 74 53 74 61 74 75 73 28 29 3b 0d  RF_GetStatus();.
1870: 0a 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 4c  .....interface L
1880: 50 44 49 52 45 43 54 33 44 39 20 3a 20 49 55 6e  PDIRECT3D9 : IUn
1890: 6b 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20 20 20 48 52  known..{..    HR
18a0: 45 53 55 4c 54 20 52 65 67 69 73 74 65 72 53 6f  ESULT RegisterSo
18b0: 66 74 77 61 72 65 44 65 76 69 63 65 28 76 6f 69  ftwareDevice(voi
18c0: 64 2a 20 70 49 6e 69 74 69 61 6c 69 7a 65 46 75  d* pInitializeFu
18d0: 6e 63 74 69 6f 6e 29 3b 0d 0a 20 20 20 20 55 49  nction);..    UI
18e0: 4e 54 20 47 65 74 41 64 61 70 74 65 72 43 6f 75  NT GetAdapterCou
18f0: 6e 74 28 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  nt();..    HRESU
1900: 4c 54 20 47 65 74 41 64 61 70 74 65 72 49 64 65  LT GetAdapterIde
1910: 6e 74 69 66 69 65 72 28 20 55 49 4e 54 20 41 64  ntifier( UINT Ad
1920: 61 70 74 65 72 2c 44 57 4f 52 44 20 46 6c 61 67  apter,DWORD Flag
1930: 73 2c 44 33 44 41 44 41 50 54 45 52 5f 49 44 45  s,D3DADAPTER_IDE
1940: 4e 54 49 46 49 45 52 39 2a 20 70 49 64 65 6e 74  NTIFIER9* pIdent
1950: 69 66 69 65 72 29 3b 0d 0a 20 20 20 20 55 49 4e  ifier);..    UIN
1960: 54 20 47 65 74 41 64 61 70 74 65 72 4d 6f 64 65  T GetAdapterMode
1970: 43 6f 75 6e 74 28 55 49 4e 54 20 41 64 61 70 74  Count(UINT Adapt
1980: 65 72 2c 44 33 44 46 4f 52 4d 41 54 20 46 6f 72  er,D3DFORMAT For
1990: 6d 61 74 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  mat);..    HRESU
19a0: 4c 54 20 45 6e 75 6d 41 64 61 70 74 65 72 4d 6f  LT EnumAdapterMo
19b0: 64 65 73 28 20 55 49 4e 54 20 41 64 61 70 74 65  des( UINT Adapte
19c0: 72 2c 44 33 44 46 4f 52 4d 41 54 20 46 6f 72 6d  r,D3DFORMAT Form
19d0: 61 74 2c 55 49 4e 54 20 4d 6f 64 65 2c 44 33 44  at,UINT Mode,D3D
19e0: 44 49 53 50 4c 41 59 4d 4f 44 45 2a 20 70 4d 6f  DISPLAYMODE* pMo
19f0: 64 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  de);..    HRESUL
1a00: 54 20 47 65 74 41 64 61 70 74 65 72 44 69 73 70  T GetAdapterDisp
1a10: 6c 61 79 4d 6f 64 65 28 20 55 49 4e 54 20 41 64  layMode( UINT Ad
1a20: 61 70 74 65 72 2c 44 33 44 44 49 53 50 4c 41 59  apter,D3DDISPLAY
1a30: 4d 4f 44 45 2a 20 70 4d 6f 64 65 29 3b 0d 0a 20  MODE* pMode);.. 
1a40: 20 20 20 48 52 45 53 55 4c 54 20 43 68 65 63 6b     HRESULT Check
1a50: 44 65 76 69 63 65 54 79 70 65 28 20 55 49 4e 54  DeviceType( UINT
1a60: 20 41 64 61 70 74 65 72 2c 44 33 44 44 45 56 54   Adapter,D3DDEVT
1a70: 59 50 45 20 44 65 76 54 79 70 65 2c 44 33 44 46  YPE DevType,D3DF
1a80: 4f 52 4d 41 54 20 41 64 61 70 74 65 72 46 6f 72  ORMAT AdapterFor
1a90: 6d 61 74 2c 44 33 44 46 4f 52 4d 41 54 20 42 61  mat,D3DFORMAT Ba
1aa0: 63 6b 42 75 66 66 65 72 46 6f 72 6d 61 74 2c 42  ckBufferFormat,B
1ab0: 4f 4f 4c 20 62 57 69 6e 64 6f 77 65 64 29 3b 0d  OOL bWindowed);.
1ac0: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 43 68 65  .    HRESULT Che
1ad0: 63 6b 44 65 76 69 63 65 46 6f 72 6d 61 74 28 20  ckDeviceFormat( 
1ae0: 55 49 4e 54 20 41 64 61 70 74 65 72 2c 44 33 44  UINT Adapter,D3D
1af0: 44 45 56 54 59 50 45 20 44 65 76 69 63 65 54 79  DEVTYPE DeviceTy
1b00: 70 65 2c 44 33 44 46 4f 52 4d 41 54 20 41 64 61  pe,D3DFORMAT Ada
1b10: 70 74 65 72 46 6f 72 6d 61 74 2c 44 57 4f 52 44  pterFormat,DWORD
1b20: 20 55 73 61 67 65 2c 44 33 44 52 45 53 4f 55 52   Usage,D3DRESOUR
1b30: 43 45 54 59 50 45 20 52 54 79 70 65 2c 44 33 44  CETYPE RType,D3D
1b40: 46 4f 52 4d 41 54 20 43 68 65 63 6b 46 6f 72 6d  FORMAT CheckForm
1b50: 61 74 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  at);..    HRESUL
1b60: 54 20 43 68 65 63 6b 44 65 76 69 63 65 4d 75 6c  T CheckDeviceMul
1b70: 74 69 53 61 6d 70 6c 65 54 79 70 65 28 20 55 49  tiSampleType( UI
1b80: 4e 54 20 41 64 61 70 74 65 72 2c 44 33 44 44 45  NT Adapter,D3DDE
1b90: 56 54 59 50 45 20 44 65 76 69 63 65 54 79 70 65  VTYPE DeviceType
1ba0: 2c 44 33 44 46 4f 52 4d 41 54 20 53 75 72 66 61  ,D3DFORMAT Surfa
1bb0: 63 65 46 6f 72 6d 61 74 2c 42 4f 4f 4c 20 57 69  ceFormat,BOOL Wi
1bc0: 6e 64 6f 77 65 64 2c 44 33 44 4d 55 4c 54 49 53  ndowed,D3DMULTIS
1bd0: 41 4d 50 4c 45 5f 54 59 50 45 20 4d 75 6c 74 69  AMPLE_TYPE Multi
1be0: 53 61 6d 70 6c 65 54 79 70 65 2c 44 57 4f 52 44  SampleType,DWORD
1bf0: 2a 20 70 51 75 61 6c 69 74 79 4c 65 76 65 6c 73  * pQualityLevels
1c00: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
1c10: 43 68 65 63 6b 44 65 70 74 68 53 74 65 6e 63 69  CheckDepthStenci
1c20: 6c 4d 61 74 63 68 28 20 55 49 4e 54 20 41 64 61  lMatch( UINT Ada
1c30: 70 74 65 72 2c 44 33 44 44 45 56 54 59 50 45 20  pter,D3DDEVTYPE 
1c40: 44 65 76 69 63 65 54 79 70 65 2c 44 33 44 46 4f  DeviceType,D3DFO
1c50: 52 4d 41 54 20 41 64 61 70 74 65 72 46 6f 72 6d  RMAT AdapterForm
1c60: 61 74 2c 44 33 44 46 4f 52 4d 41 54 20 52 65 6e  at,D3DFORMAT Ren
1c70: 64 65 72 54 61 72 67 65 74 46 6f 72 6d 61 74 2c  derTargetFormat,
1c80: 44 33 44 46 4f 52 4d 41 54 20 44 65 70 74 68 53  D3DFORMAT DepthS
1c90: 74 65 6e 63 69 6c 46 6f 72 6d 61 74 29 3b 0d 0a  tencilFormat);..
1ca0: 20 20 20 20 48 52 45 53 55 4c 54 20 43 68 65 63      HRESULT Chec
1cb0: 6b 44 65 76 69 63 65 46 6f 72 6d 61 74 43 6f 6e  kDeviceFormatCon
1cc0: 76 65 72 73 69 6f 6e 28 20 55 49 4e 54 20 41 64  version( UINT Ad
1cd0: 61 70 74 65 72 2c 44 33 44 44 45 56 54 59 50 45  apter,D3DDEVTYPE
1ce0: 20 44 65 76 69 63 65 54 79 70 65 2c 44 33 44 46   DeviceType,D3DF
1cf0: 4f 52 4d 41 54 20 53 6f 75 72 63 65 46 6f 72 6d  ORMAT SourceForm
1d00: 61 74 2c 44 33 44 46 4f 52 4d 41 54 20 54 61 72  at,D3DFORMAT Tar
1d10: 67 65 74 46 6f 72 6d 61 74 29 3b 0d 0a 20 20 20  getFormat);..   
1d20: 20 48 52 45 53 55 4c 54 20 47 65 74 44 65 76 69   HRESULT GetDevi
1d30: 63 65 43 61 70 73 28 20 55 49 4e 54 20 41 64 61  ceCaps( UINT Ada
1d40: 70 74 65 72 2c 44 33 44 44 45 56 54 59 50 45 20  pter,D3DDEVTYPE 
1d50: 44 65 76 69 63 65 54 79 70 65 2c 44 33 44 43 41  DeviceType,D3DCA
1d60: 50 53 39 2a 20 70 43 61 70 73 29 3b 0d 0a 20 20  PS9* pCaps);..  
1d70: 20 20 48 4d 4f 4e 49 54 4f 52 20 47 65 74 41 64    HMONITOR GetAd
1d80: 61 70 74 65 72 4d 6f 6e 69 74 6f 72 28 55 49 4e  apterMonitor(UIN
1d90: 54 20 41 64 61 70 74 65 72 29 3b 0d 0a 20 20 20  T Adapter);..   
1da0: 20 48 52 45 53 55 4c 54 20 43 72 65 61 74 65 44   HRESULT CreateD
1db0: 65 76 69 63 65 28 20 55 49 4e 54 20 41 64 61 70  evice( UINT Adap
1dc0: 74 65 72 2c 44 33 44 44 45 56 54 59 50 45 20 44  ter,D3DDEVTYPE D
1dd0: 65 76 69 63 65 54 79 70 65 2c 48 57 4e 44 20 68  eviceType,HWND h
1de0: 46 6f 63 75 73 57 69 6e 64 6f 77 2c 44 57 4f 52  FocusWindow,DWOR
1df0: 44 20 42 65 68 61 76 69 6f 72 46 6c 61 67 73 2c  D BehaviorFlags,
1e00: 44 33 44 50 52 45 53 45 4e 54 5f 50 41 52 41 4d  D3DPRESENT_PARAM
1e10: 45 54 45 52 53 2a 20 70 50 72 65 73 65 6e 74 61  ETERS* pPresenta
1e20: 74 69 6f 6e 50 61 72 61 6d 65 74 65 72 73 2c 4c  tionParameters,L
1e30: 50 44 49 52 45 43 54 33 44 44 45 56 49 43 45 39  PDIRECT3DDEVICE9
1e40: 2a 20 70 70 52 65 74 75 72 6e 65 64 44 65 76 69  * ppReturnedDevi
1e50: 63 65 49 6e 74 65 72 66 61 63 65 29 3b 0d 0a 2f  ceInterface);../
1e60: 2a 0d 0a 20 20 20 20 64 65 62 75 67 20 7b 0d 0a  *..    debug {..
1e70: 20 20 20 20 20 20 20 20 4c 50 43 57 53 54 52 20          LPCWSTR 
1e80: 56 65 72 73 69 6f 6e 3b 0d 0a 20 20 20 20 7d 0d  Version;..    }.
1e90: 0a 2a 2f 0d 0a 7d 0d 0a 61 6c 69 61 73 20 4c 50  .*/..}..alias LP
1ea0: 44 49 52 45 43 54 33 44 39 20 49 44 69 72 65 63  DIRECT3D9 IDirec
1eb0: 74 33 44 39 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61  t3D9;....interfa
1ec0: 63 65 20 4c 50 44 49 52 45 43 54 33 44 44 45 56  ce LPDIRECT3DDEV
1ed0: 49 43 45 39 20 3a 20 49 55 6e 6b 6e 6f 77 6e 0d  ICE9 : IUnknown.
1ee0: 0a 7b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  .{..    HRESULT 
1ef0: 54 65 73 74 43 6f 6f 70 65 72 61 74 69 76 65 4c  TestCooperativeL
1f00: 65 76 65 6c 28 29 3b 0d 0a 20 20 20 20 55 49 4e  evel();..    UIN
1f10: 54 20 47 65 74 41 76 61 69 6c 61 62 6c 65 54 65  T GetAvailableTe
1f20: 78 74 75 72 65 4d 65 6d 28 29 3b 0d 0a 20 20 20  xtureMem();..   
1f30: 20 48 52 45 53 55 4c 54 20 45 76 69 63 74 4d 61   HRESULT EvictMa
1f40: 6e 61 67 65 64 52 65 73 6f 75 72 63 65 73 28 29  nagedResources()
1f50: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
1f60: 65 74 44 69 72 65 63 74 33 44 28 20 4c 50 44 49  etDirect3D( LPDI
1f70: 52 45 43 54 33 44 39 2a 20 70 70 44 33 44 39 29  RECT3D9* ppD3D9)
1f80: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
1f90: 65 74 44 65 76 69 63 65 43 61 70 73 28 20 44 33  etDeviceCaps( D3
1fa0: 44 43 41 50 53 39 2a 20 70 43 61 70 73 29 3b 0d  DCAPS9* pCaps);.
1fb0: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
1fc0: 44 69 73 70 6c 61 79 4d 6f 64 65 28 20 55 49 4e  DisplayMode( UIN
1fd0: 54 20 69 53 77 61 70 43 68 61 69 6e 2c 44 33 44  T iSwapChain,D3D
1fe0: 44 49 53 50 4c 41 59 4d 4f 44 45 2a 20 70 4d 6f  DISPLAYMODE* pMo
1ff0: 64 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  de);..    HRESUL
2000: 54 20 47 65 74 43 72 65 61 74 69 6f 6e 50 61 72  T GetCreationPar
2010: 61 6d 65 74 65 72 73 28 20 44 33 44 44 45 56 49  ameters( D3DDEVI
2020: 43 45 5f 43 52 45 41 54 49 4f 4e 5f 50 41 52 41  CE_CREATION_PARA
2030: 4d 45 54 45 52 53 20 2a 70 50 61 72 61 6d 65 74  METERS *pParamet
2040: 65 72 73 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  ers);..    HRESU
2050: 4c 54 20 53 65 74 43 75 72 73 6f 72 50 72 6f 70  LT SetCursorProp
2060: 65 72 74 69 65 73 28 20 55 49 4e 54 20 58 48 6f  erties( UINT XHo
2070: 74 53 70 6f 74 2c 55 49 4e 54 20 59 48 6f 74 53  tSpot,UINT YHotS
2080: 70 6f 74 2c 4c 50 44 49 52 45 43 54 33 44 53 55  pot,LPDIRECT3DSU
2090: 52 46 41 43 45 39 20 70 43 75 72 73 6f 72 42 69  RFACE9 pCursorBi
20a0: 74 6d 61 70 29 3b 0d 0a 20 20 20 20 76 6f 69 64  tmap);..    void
20b0: 20 53 65 74 43 75 72 73 6f 72 50 6f 73 69 74 69   SetCursorPositi
20c0: 6f 6e 28 69 6e 74 20 58 2c 69 6e 74 20 59 2c 44  on(int X,int Y,D
20d0: 57 4f 52 44 20 46 6c 61 67 73 29 3b 0d 0a 20 20  WORD Flags);..  
20e0: 20 20 42 4f 4f 4c 20 53 68 6f 77 43 75 72 73 6f    BOOL ShowCurso
20f0: 72 28 42 4f 4f 4c 20 62 53 68 6f 77 29 3b 0d 0a  r(BOOL bShow);..
2100: 20 20 20 20 48 52 45 53 55 4c 54 20 43 72 65 61      HRESULT Crea
2110: 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 77 61 70  teAdditionalSwap
2120: 43 68 61 69 6e 28 20 44 33 44 50 52 45 53 45 4e  Chain( D3DPRESEN
2130: 54 5f 50 41 52 41 4d 45 54 45 52 53 2a 20 70 50  T_PARAMETERS* pP
2140: 72 65 73 65 6e 74 61 74 69 6f 6e 50 61 72 61 6d  resentationParam
2150: 65 74 65 72 73 2c 4c 50 44 49 52 45 43 54 33 44  eters,LPDIRECT3D
2160: 53 57 41 50 43 48 41 49 4e 39 2a 20 70 53 77 61  SWAPCHAIN9* pSwa
2170: 70 43 68 61 69 6e 29 3b 0d 0a 20 20 20 20 48 52  pChain);..    HR
2180: 45 53 55 4c 54 20 47 65 74 53 77 61 70 43 68 61  ESULT GetSwapCha
2190: 69 6e 28 20 55 49 4e 54 20 69 53 77 61 70 43 68  in( UINT iSwapCh
21a0: 61 69 6e 2c 4c 50 44 49 52 45 43 54 33 44 53 57  ain,LPDIRECT3DSW
21b0: 41 50 43 48 41 49 4e 39 2a 20 70 53 77 61 70 43  APCHAIN9* pSwapC
21c0: 68 61 69 6e 29 3b 0d 0a 20 20 20 20 55 49 4e 54  hain);..    UINT
21d0: 20 47 65 74 4e 75 6d 62 65 72 4f 66 53 77 61 70   GetNumberOfSwap
21e0: 43 68 61 69 6e 73 28 29 3b 0d 0a 20 20 20 20 48  Chains();..    H
21f0: 52 45 53 55 4c 54 20 52 65 73 65 74 28 20 44 33  RESULT Reset( D3
2200: 44 50 52 45 53 45 4e 54 5f 50 41 52 41 4d 45 54  DPRESENT_PARAMET
2210: 45 52 53 2a 20 70 50 72 65 73 65 6e 74 61 74 69  ERS* pPresentati
2220: 6f 6e 50 61 72 61 6d 65 74 65 72 73 29 3b 0d 0a  onParameters);..
2230: 20 20 20 20 48 52 45 53 55 4c 54 20 50 72 65 73      HRESULT Pres
2240: 65 6e 74 28 52 45 43 54 2a 20 70 53 6f 75 72 63  ent(RECT* pSourc
2250: 65 52 65 63 74 2c 52 45 43 54 2a 20 70 44 65 73  eRect,RECT* pDes
2260: 74 52 65 63 74 2c 48 57 4e 44 20 68 44 65 73 74  tRect,HWND hDest
2270: 57 69 6e 64 6f 77 4f 76 65 72 72 69 64 65 2c 20  WindowOverride, 
2280: 52 47 4e 44 41 54 41 2a 20 70 44 69 72 74 79 52  RGNDATA* pDirtyR
2290: 65 67 69 6f 6e 29 3b 0d 0a 20 20 20 20 48 52 45  egion);..    HRE
22a0: 53 55 4c 54 20 47 65 74 42 61 63 6b 42 75 66 66  SULT GetBackBuff
22b0: 65 72 28 20 55 49 4e 54 20 69 53 77 61 70 43 68  er( UINT iSwapCh
22c0: 61 69 6e 2c 55 49 4e 54 20 69 42 61 63 6b 42 75  ain,UINT iBackBu
22d0: 66 66 65 72 2c 44 33 44 42 41 43 4b 42 55 46 46  ffer,D3DBACKBUFF
22e0: 45 52 5f 54 59 50 45 20 54 79 70 65 2c 4c 50 44  ER_TYPE Type,LPD
22f0: 49 52 45 43 54 33 44 53 55 52 46 41 43 45 39 2a  IRECT3DSURFACE9*
2300: 20 70 70 42 61 63 6b 42 75 66 66 65 72 29 3b 0d   ppBackBuffer);.
2310: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
2320: 52 61 73 74 65 72 53 74 61 74 75 73 28 20 55 49  RasterStatus( UI
2330: 4e 54 20 69 53 77 61 70 43 68 61 69 6e 2c 44 33  NT iSwapChain,D3
2340: 44 52 41 53 54 45 52 5f 53 54 41 54 55 53 2a 20  DRASTER_STATUS* 
2350: 70 52 61 73 74 65 72 53 74 61 74 75 73 29 3b 0d  pRasterStatus);.
2360: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 53 65 74  .    HRESULT Set
2370: 44 69 61 6c 6f 67 42 6f 78 4d 6f 64 65 28 20 42  DialogBoxMode( B
2380: 4f 4f 4c 20 62 45 6e 61 62 6c 65 44 69 61 6c 6f  OOL bEnableDialo
2390: 67 73 29 3b 0d 0a 20 20 20 20 76 6f 69 64 20 53  gs);..    void S
23a0: 65 74 47 61 6d 6d 61 52 61 6d 70 28 55 49 4e 54  etGammaRamp(UINT
23b0: 20 69 53 77 61 70 43 68 61 69 6e 2c 44 57 4f 52   iSwapChain,DWOR
23c0: 44 20 46 6c 61 67 73 2c 20 44 33 44 47 41 4d 4d  D Flags, D3DGAMM
23d0: 41 52 41 4d 50 2a 20 70 52 61 6d 70 29 3b 0d 0a  ARAMP* pRamp);..
23e0: 20 20 20 20 76 6f 69 64 20 47 65 74 47 61 6d 6d      void GetGamm
23f0: 61 52 61 6d 70 28 55 49 4e 54 20 69 53 77 61 70  aRamp(UINT iSwap
2400: 43 68 61 69 6e 2c 44 33 44 47 41 4d 4d 41 52 41  Chain,D3DGAMMARA
2410: 4d 50 2a 20 70 52 61 6d 70 29 3b 0d 0a 20 20 20  MP* pRamp);..   
2420: 20 48 52 45 53 55 4c 54 20 43 72 65 61 74 65 54   HRESULT CreateT
2430: 65 78 74 75 72 65 28 20 55 49 4e 54 20 57 69 64  exture( UINT Wid
2440: 74 68 2c 55 49 4e 54 20 48 65 69 67 68 74 2c 55  th,UINT Height,U
2450: 49 4e 54 20 4c 65 76 65 6c 73 2c 44 57 4f 52 44  INT Levels,DWORD
2460: 20 55 73 61 67 65 2c 44 33 44 46 4f 52 4d 41 54   Usage,D3DFORMAT
2470: 20 46 6f 72 6d 61 74 2c 44 33 44 50 4f 4f 4c 20   Format,D3DPOOL 
2480: 50 6f 6f 6c 2c 4c 50 44 49 52 45 43 54 33 44 54  Pool,LPDIRECT3DT
2490: 45 58 54 55 52 45 39 2a 20 70 70 54 65 78 74 75  EXTURE9* ppTextu
24a0: 72 65 2c 48 41 4e 44 4c 45 2a 20 70 53 68 61 72  re,HANDLE* pShar
24b0: 65 64 48 61 6e 64 6c 65 29 3b 0d 0a 20 20 20 20  edHandle);..    
24c0: 48 52 45 53 55 4c 54 20 43 72 65 61 74 65 56 6f  HRESULT CreateVo
24d0: 6c 75 6d 65 54 65 78 74 75 72 65 28 20 55 49 4e  lumeTexture( UIN
24e0: 54 20 57 69 64 74 68 2c 55 49 4e 54 20 48 65 69  T Width,UINT Hei
24f0: 67 68 74 2c 55 49 4e 54 20 44 65 70 74 68 2c 55  ght,UINT Depth,U
2500: 49 4e 54 20 4c 65 76 65 6c 73 2c 44 57 4f 52 44  INT Levels,DWORD
2510: 20 55 73 61 67 65 2c 44 33 44 46 4f 52 4d 41 54   Usage,D3DFORMAT
2520: 20 46 6f 72 6d 61 74 2c 44 33 44 50 4f 4f 4c 20   Format,D3DPOOL 
2530: 50 6f 6f 6c 2c 4c 50 44 49 52 45 43 54 33 44 56  Pool,LPDIRECT3DV
2540: 4f 4c 55 4d 45 54 45 58 54 55 52 45 39 2a 20 70  OLUMETEXTURE9* p
2550: 70 56 6f 6c 75 6d 65 54 65 78 74 75 72 65 2c 48  pVolumeTexture,H
2560: 41 4e 44 4c 45 2a 20 70 53 68 61 72 65 64 48 61  ANDLE* pSharedHa
2570: 6e 64 6c 65 29 3b 0d 0a 20 20 20 20 48 52 45 53  ndle);..    HRES
2580: 55 4c 54 20 43 72 65 61 74 65 43 75 62 65 54 65  ULT CreateCubeTe
2590: 78 74 75 72 65 28 20 55 49 4e 54 20 45 64 67 65  xture( UINT Edge
25a0: 4c 65 6e 67 74 68 2c 55 49 4e 54 20 4c 65 76 65  Length,UINT Leve
25b0: 6c 73 2c 44 57 4f 52 44 20 55 73 61 67 65 2c 44  ls,DWORD Usage,D
25c0: 33 44 46 4f 52 4d 41 54 20 46 6f 72 6d 61 74 2c  3DFORMAT Format,
25d0: 44 33 44 50 4f 4f 4c 20 50 6f 6f 6c 2c 4c 50 44  D3DPOOL Pool,LPD
25e0: 49 52 45 43 54 33 44 43 55 42 45 54 45 58 54 55  IRECT3DCUBETEXTU
25f0: 52 45 39 2a 20 70 70 43 75 62 65 54 65 78 74 75  RE9* ppCubeTextu
2600: 72 65 2c 48 41 4e 44 4c 45 2a 20 70 53 68 61 72  re,HANDLE* pShar
2610: 65 64 48 61 6e 64 6c 65 29 3b 0d 0a 20 20 20 20  edHandle);..    
2620: 48 52 45 53 55 4c 54 20 43 72 65 61 74 65 56 65  HRESULT CreateVe
2630: 72 74 65 78 42 75 66 66 65 72 28 20 55 49 4e 54  rtexBuffer( UINT
2640: 20 4c 65 6e 67 74 68 2c 44 57 4f 52 44 20 55 73   Length,DWORD Us
2650: 61 67 65 2c 44 57 4f 52 44 20 46 56 46 2c 44 33  age,DWORD FVF,D3
2660: 44 50 4f 4f 4c 20 50 6f 6f 6c 2c 4c 50 44 49 52  DPOOL Pool,LPDIR
2670: 45 43 54 33 44 56 45 52 54 45 58 42 55 46 46 45  ECT3DVERTEXBUFFE
2680: 52 39 2a 20 70 70 56 65 72 74 65 78 42 75 66 66  R9* ppVertexBuff
2690: 65 72 2c 48 41 4e 44 4c 45 2a 20 70 53 68 61 72  er,HANDLE* pShar
26a0: 65 64 48 61 6e 64 6c 65 29 3b 0d 0a 20 20 20 20  edHandle);..    
26b0: 48 52 45 53 55 4c 54 20 43 72 65 61 74 65 49 6e  HRESULT CreateIn
26c0: 64 65 78 42 75 66 66 65 72 28 20 55 49 4e 54 20  dexBuffer( UINT 
26d0: 4c 65 6e 67 74 68 2c 44 57 4f 52 44 20 55 73 61  Length,DWORD Usa
26e0: 67 65 2c 44 33 44 46 4f 52 4d 41 54 20 46 6f 72  ge,D3DFORMAT For
26f0: 6d 61 74 2c 44 33 44 50 4f 4f 4c 20 50 6f 6f 6c  mat,D3DPOOL Pool
2700: 2c 4c 50 44 49 52 45 43 54 33 44 49 4e 44 45 58  ,LPDIRECT3DINDEX
2710: 42 55 46 46 45 52 39 2a 20 70 70 49 6e 64 65 78  BUFFER9* ppIndex
2720: 42 75 66 66 65 72 2c 48 41 4e 44 4c 45 2a 20 70  Buffer,HANDLE* p
2730: 53 68 61 72 65 64 48 61 6e 64 6c 65 29 3b 0d 0a  SharedHandle);..
2740: 20 20 20 20 48 52 45 53 55 4c 54 20 43 72 65 61      HRESULT Crea
2750: 74 65 52 65 6e 64 65 72 54 61 72 67 65 74 28 20  teRenderTarget( 
2760: 55 49 4e 54 20 57 69 64 74 68 2c 55 49 4e 54 20  UINT Width,UINT 
2770: 48 65 69 67 68 74 2c 44 33 44 46 4f 52 4d 41 54  Height,D3DFORMAT
2780: 20 46 6f 72 6d 61 74 2c 44 33 44 4d 55 4c 54 49   Format,D3DMULTI
2790: 53 41 4d 50 4c 45 5f 54 59 50 45 20 4d 75 6c 74  SAMPLE_TYPE Mult
27a0: 69 53 61 6d 70 6c 65 2c 44 57 4f 52 44 20 4d 75  iSample,DWORD Mu
27b0: 6c 74 69 73 61 6d 70 6c 65 51 75 61 6c 69 74 79  ltisampleQuality
27c0: 2c 42 4f 4f 4c 20 4c 6f 63 6b 61 62 6c 65 2c 4c  ,BOOL Lockable,L
27d0: 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43 45  PDIRECT3DSURFACE
27e0: 39 2a 20 70 70 53 75 72 66 61 63 65 2c 48 41 4e  9* ppSurface,HAN
27f0: 44 4c 45 2a 20 70 53 68 61 72 65 64 48 61 6e 64  DLE* pSharedHand
2800: 6c 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  le);..    HRESUL
2810: 54 20 43 72 65 61 74 65 44 65 70 74 68 53 74 65  T CreateDepthSte
2820: 6e 63 69 6c 53 75 72 66 61 63 65 28 20 55 49 4e  ncilSurface( UIN
2830: 54 20 57 69 64 74 68 2c 55 49 4e 54 20 48 65 69  T Width,UINT Hei
2840: 67 68 74 2c 44 33 44 46 4f 52 4d 41 54 20 46 6f  ght,D3DFORMAT Fo
2850: 72 6d 61 74 2c 44 33 44 4d 55 4c 54 49 53 41 4d  rmat,D3DMULTISAM
2860: 50 4c 45 5f 54 59 50 45 20 4d 75 6c 74 69 53 61  PLE_TYPE MultiSa
2870: 6d 70 6c 65 2c 44 57 4f 52 44 20 4d 75 6c 74 69  mple,DWORD Multi
2880: 73 61 6d 70 6c 65 51 75 61 6c 69 74 79 2c 42 4f  sampleQuality,BO
2890: 4f 4c 20 44 69 73 63 61 72 64 2c 4c 50 44 49 52  OL Discard,LPDIR
28a0: 45 43 54 33 44 53 55 52 46 41 43 45 39 2a 20 70  ECT3DSURFACE9* p
28b0: 70 53 75 72 66 61 63 65 2c 48 41 4e 44 4c 45 2a  pSurface,HANDLE*
28c0: 20 70 53 68 61 72 65 64 48 61 6e 64 6c 65 29 3b   pSharedHandle);
28d0: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 55 70  ..    HRESULT Up
28e0: 64 61 74 65 53 75 72 66 61 63 65 28 20 4c 50 44  dateSurface( LPD
28f0: 49 52 45 43 54 33 44 53 55 52 46 41 43 45 39 20  IRECT3DSURFACE9 
2900: 70 53 6f 75 72 63 65 53 75 72 66 61 63 65 2c 20  pSourceSurface, 
2910: 52 45 43 54 2a 20 70 53 6f 75 72 63 65 52 65 63  RECT* pSourceRec
2920: 74 2c 4c 50 44 49 52 45 43 54 33 44 53 55 52 46  t,LPDIRECT3DSURF
2930: 41 43 45 39 20 70 44 65 73 74 69 6e 61 74 69 6f  ACE9 pDestinatio
2940: 6e 53 75 72 66 61 63 65 2c 20 50 4f 49 4e 54 2a  nSurface, POINT*
2950: 20 70 44 65 73 74 50 6f 69 6e 74 29 3b 0d 0a 20   pDestPoint);.. 
2960: 20 20 20 48 52 45 53 55 4c 54 20 55 70 64 61 74     HRESULT Updat
2970: 65 54 65 78 74 75 72 65 28 20 4c 50 44 49 52 45  eTexture( LPDIRE
2980: 43 54 33 44 42 41 53 45 54 45 58 54 55 52 45 39  CT3DBASETEXTURE9
2990: 20 70 53 6f 75 72 63 65 54 65 78 74 75 72 65 2c   pSourceTexture,
29a0: 4c 50 44 49 52 45 43 54 33 44 42 41 53 45 54 45  LPDIRECT3DBASETE
29b0: 58 54 55 52 45 39 20 70 44 65 73 74 69 6e 61 74  XTURE9 pDestinat
29c0: 69 6f 6e 54 65 78 74 75 72 65 29 3b 0d 0a 20 20  ionTexture);..  
29d0: 20 20 48 52 45 53 55 4c 54 20 47 65 74 52 65 6e    HRESULT GetRen
29e0: 64 65 72 54 61 72 67 65 74 44 61 74 61 28 20 4c  derTargetData( L
29f0: 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43 45  PDIRECT3DSURFACE
2a00: 39 20 70 52 65 6e 64 65 72 54 61 72 67 65 74 2c  9 pRenderTarget,
2a10: 4c 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43  LPDIRECT3DSURFAC
2a20: 45 39 20 70 44 65 73 74 53 75 72 66 61 63 65 29  E9 pDestSurface)
2a30: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
2a40: 65 74 46 72 6f 6e 74 42 75 66 66 65 72 44 61 74  etFrontBufferDat
2a50: 61 28 20 55 49 4e 54 20 69 53 77 61 70 43 68 61  a( UINT iSwapCha
2a60: 69 6e 2c 4c 50 44 49 52 45 43 54 33 44 53 55 52  in,LPDIRECT3DSUR
2a70: 46 41 43 45 39 20 70 44 65 73 74 53 75 72 66 61  FACE9 pDestSurfa
2a80: 63 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  ce);..    HRESUL
2a90: 54 20 53 74 72 65 74 63 68 52 65 63 74 28 20 4c  T StretchRect( L
2aa0: 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43 45  PDIRECT3DSURFACE
2ab0: 39 20 70 53 6f 75 72 63 65 53 75 72 66 61 63 65  9 pSourceSurface
2ac0: 2c 20 52 45 43 54 2a 20 70 53 6f 75 72 63 65 52  , RECT* pSourceR
2ad0: 65 63 74 2c 4c 50 44 49 52 45 43 54 33 44 53 55  ect,LPDIRECT3DSU
2ae0: 52 46 41 43 45 39 20 70 44 65 73 74 53 75 72 66  RFACE9 pDestSurf
2af0: 61 63 65 2c 20 52 45 43 54 2a 20 70 44 65 73 74  ace, RECT* pDest
2b00: 52 65 63 74 2c 44 33 44 54 45 58 54 55 52 45 46  Rect,D3DTEXTUREF
2b10: 49 4c 54 45 52 54 59 50 45 20 46 69 6c 74 65 72  ILTERTYPE Filter
2b20: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
2b30: 43 6f 6c 6f 72 46 69 6c 6c 28 20 4c 50 44 49 52  ColorFill( LPDIR
2b40: 45 43 54 33 44 53 55 52 46 41 43 45 39 20 70 53  ECT3DSURFACE9 pS
2b50: 75 72 66 61 63 65 2c 20 52 45 43 54 2a 20 70 52  urface, RECT* pR
2b60: 65 63 74 2c 44 33 44 43 4f 4c 4f 52 20 63 6f 6c  ect,D3DCOLOR col
2b70: 6f 72 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  or);..    HRESUL
2b80: 54 20 43 72 65 61 74 65 4f 66 66 73 63 72 65 65  T CreateOffscree
2b90: 6e 50 6c 61 69 6e 53 75 72 66 61 63 65 28 20 55  nPlainSurface( U
2ba0: 49 4e 54 20 57 69 64 74 68 2c 55 49 4e 54 20 48  INT Width,UINT H
2bb0: 65 69 67 68 74 2c 44 33 44 46 4f 52 4d 41 54 20  eight,D3DFORMAT 
2bc0: 46 6f 72 6d 61 74 2c 44 33 44 50 4f 4f 4c 20 50  Format,D3DPOOL P
2bd0: 6f 6f 6c 2c 4c 50 44 49 52 45 43 54 33 44 53 55  ool,LPDIRECT3DSU
2be0: 52 46 41 43 45 39 2a 20 70 70 53 75 72 66 61 63  RFACE9* ppSurfac
2bf0: 65 2c 48 41 4e 44 4c 45 2a 20 70 53 68 61 72 65  e,HANDLE* pShare
2c00: 64 48 61 6e 64 6c 65 29 3b 0d 0a 20 20 20 20 48  dHandle);..    H
2c10: 52 45 53 55 4c 54 20 53 65 74 52 65 6e 64 65 72  RESULT SetRender
2c20: 54 61 72 67 65 74 28 20 44 57 4f 52 44 20 52 65  Target( DWORD Re
2c30: 6e 64 65 72 54 61 72 67 65 74 49 6e 64 65 78 2c  nderTargetIndex,
2c40: 4c 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43  LPDIRECT3DSURFAC
2c50: 45 39 20 70 52 65 6e 64 65 72 54 61 72 67 65 74  E9 pRenderTarget
2c60: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
2c70: 47 65 74 52 65 6e 64 65 72 54 61 72 67 65 74 28  GetRenderTarget(
2c80: 20 44 57 4f 52 44 20 52 65 6e 64 65 72 54 61 72   DWORD RenderTar
2c90: 67 65 74 49 6e 64 65 78 2c 4c 50 44 49 52 45 43  getIndex,LPDIREC
2ca0: 54 33 44 53 55 52 46 41 43 45 39 2a 20 70 70 52  T3DSURFACE9* ppR
2cb0: 65 6e 64 65 72 54 61 72 67 65 74 29 3b 0d 0a 20  enderTarget);.. 
2cc0: 20 20 20 48 52 45 53 55 4c 54 20 53 65 74 44 65     HRESULT SetDe
2cd0: 70 74 68 53 74 65 6e 63 69 6c 53 75 72 66 61 63  pthStencilSurfac
2ce0: 65 28 20 4c 50 44 49 52 45 43 54 33 44 53 55 52  e( LPDIRECT3DSUR
2cf0: 46 41 43 45 39 20 70 4e 65 77 5a 53 74 65 6e 63  FACE9 pNewZStenc
2d00: 69 6c 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  il);..    HRESUL
2d10: 54 20 47 65 74 44 65 70 74 68 53 74 65 6e 63 69  T GetDepthStenci
2d20: 6c 53 75 72 66 61 63 65 28 20 4c 50 44 49 52 45  lSurface( LPDIRE
2d30: 43 54 33 44 53 55 52 46 41 43 45 39 2a 20 70 70  CT3DSURFACE9* pp
2d40: 5a 53 74 65 6e 63 69 6c 53 75 72 66 61 63 65 29  ZStencilSurface)
2d50: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 42  ;..    HRESULT B
2d60: 65 67 69 6e 53 63 65 6e 65 28 29 3b 0d 0a 20 20  eginScene();..  
2d70: 20 20 48 52 45 53 55 4c 54 20 45 6e 64 53 63 65    HRESULT EndSce
2d80: 6e 65 28 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  ne();..    HRESU
2d90: 4c 54 20 43 6c 65 61 72 28 20 44 57 4f 52 44 20  LT Clear( DWORD 
2da0: 43 6f 75 6e 74 2c 20 44 33 44 52 45 43 54 2a 20  Count, D3DRECT* 
2db0: 70 52 65 63 74 73 2c 44 57 4f 52 44 20 46 6c 61  pRects,DWORD Fla
2dc0: 67 73 2c 44 33 44 43 4f 4c 4f 52 20 43 6f 6c 6f  gs,D3DCOLOR Colo
2dd0: 72 2c 66 6c 6f 61 74 20 5a 2c 44 57 4f 52 44 20  r,float Z,DWORD 
2de0: 53 74 65 6e 63 69 6c 29 3b 0d 0a 20 20 20 20 48  Stencil);..    H
2df0: 52 45 53 55 4c 54 20 53 65 74 54 72 61 6e 73 66  RESULT SetTransf
2e00: 6f 72 6d 28 20 44 33 44 54 52 41 4e 53 46 4f 52  orm( D3DTRANSFOR
2e10: 4d 53 54 41 54 45 54 59 50 45 20 53 74 61 74 65  MSTATETYPE State
2e20: 2c 20 44 33 44 4d 41 54 52 49 58 2a 20 70 4d 61  , D3DMATRIX* pMa
2e30: 74 72 69 78 29 3b 0d 0a 20 20 20 20 48 52 45 53  trix);..    HRES
2e40: 55 4c 54 20 47 65 74 54 72 61 6e 73 66 6f 72 6d  ULT GetTransform
2e50: 28 20 44 33 44 54 52 41 4e 53 46 4f 52 4d 53 54  ( D3DTRANSFORMST
2e60: 41 54 45 54 59 50 45 20 53 74 61 74 65 2c 44 33  ATETYPE State,D3
2e70: 44 4d 41 54 52 49 58 2a 20 70 4d 61 74 72 69 78  DMATRIX* pMatrix
2e80: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
2e90: 4d 75 6c 74 69 70 6c 79 54 72 61 6e 73 66 6f 72  MultiplyTransfor
2ea0: 6d 28 20 44 33 44 54 52 41 4e 53 46 4f 52 4d 53  m( D3DTRANSFORMS
2eb0: 54 41 54 45 54 59 50 45 2c 20 44 33 44 4d 41 54  TATETYPE, D3DMAT
2ec0: 52 49 58 2a 29 3b 0d 0a 20 20 20 20 48 52 45 53  RIX*);..    HRES
2ed0: 55 4c 54 20 53 65 74 56 69 65 77 70 6f 72 74 28  ULT SetViewport(
2ee0: 20 44 33 44 56 49 45 57 50 4f 52 54 39 2a 20 70   D3DVIEWPORT9* p
2ef0: 56 69 65 77 70 6f 72 74 29 3b 0d 0a 20 20 20 20  Viewport);..    
2f00: 48 52 45 53 55 4c 54 20 47 65 74 56 69 65 77 70  HRESULT GetViewp
2f10: 6f 72 74 28 20 44 33 44 56 49 45 57 50 4f 52 54  ort( D3DVIEWPORT
2f20: 39 2a 20 70 56 69 65 77 70 6f 72 74 29 3b 0d 0a  9* pViewport);..
2f30: 20 20 20 20 48 52 45 53 55 4c 54 20 53 65 74 4d      HRESULT SetM
2f40: 61 74 65 72 69 61 6c 28 20 44 33 44 4d 41 54 45  aterial( D3DMATE
2f50: 52 49 41 4c 39 2a 20 70 4d 61 74 65 72 69 61 6c  RIAL9* pMaterial
2f60: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
2f70: 47 65 74 4d 61 74 65 72 69 61 6c 28 20 44 33 44  GetMaterial( D3D
2f80: 4d 41 54 45 52 49 41 4c 39 2a 20 70 4d 61 74 65  MATERIAL9* pMate
2f90: 72 69 61 6c 29 3b 0d 0a 20 20 20 20 48 52 45 53  rial);..    HRES
2fa0: 55 4c 54 20 53 65 74 4c 69 67 68 74 28 20 44 57  ULT SetLight( DW
2fb0: 4f 52 44 20 49 6e 64 65 78 2c 20 44 33 44 4c 49  ORD Index, D3DLI
2fc0: 47 48 54 39 2a 29 3b 0d 0a 20 20 20 20 48 52 45  GHT9*);..    HRE
2fd0: 53 55 4c 54 20 47 65 74 4c 69 67 68 74 28 20 44  SULT GetLight( D
2fe0: 57 4f 52 44 20 49 6e 64 65 78 2c 44 33 44 4c 49  WORD Index,D3DLI
2ff0: 47 48 54 39 2a 29 3b 0d 0a 20 20 20 20 48 52 45  GHT9*);..    HRE
3000: 53 55 4c 54 20 4c 69 67 68 74 45 6e 61 62 6c 65  SULT LightEnable
3010: 28 20 44 57 4f 52 44 20 49 6e 64 65 78 2c 42 4f  ( DWORD Index,BO
3020: 4f 4c 20 45 6e 61 62 6c 65 29 3b 0d 0a 20 20 20  OL Enable);..   
3030: 20 48 52 45 53 55 4c 54 20 47 65 74 4c 69 67 68   HRESULT GetLigh
3040: 74 45 6e 61 62 6c 65 28 20 44 57 4f 52 44 20 49  tEnable( DWORD I
3050: 6e 64 65 78 2c 42 4f 4f 4c 2a 20 70 45 6e 61 62  ndex,BOOL* pEnab
3060: 6c 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  le);..    HRESUL
3070: 54 20 53 65 74 43 6c 69 70 50 6c 61 6e 65 28 20  T SetClipPlane( 
3080: 44 57 4f 52 44 20 49 6e 64 65 78 2c 20 66 6c 6f  DWORD Index, flo
3090: 61 74 2a 20 70 50 6c 61 6e 65 29 3b 0d 0a 20 20  at* pPlane);..  
30a0: 20 20 48 52 45 53 55 4c 54 20 47 65 74 43 6c 69    HRESULT GetCli
30b0: 70 50 6c 61 6e 65 28 20 44 57 4f 52 44 20 49 6e  pPlane( DWORD In
30c0: 64 65 78 2c 66 6c 6f 61 74 2a 20 70 50 6c 61 6e  dex,float* pPlan
30d0: 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  e);..    HRESULT
30e0: 20 53 65 74 52 65 6e 64 65 72 53 74 61 74 65 28   SetRenderState(
30f0: 20 44 33 44 52 45 4e 44 45 52 53 54 41 54 45 54   D3DRENDERSTATET
3100: 59 50 45 20 53 74 61 74 65 2c 44 57 4f 52 44 20  YPE State,DWORD 
3110: 56 61 6c 75 65 29 3b 0d 0a 20 20 20 20 48 52 45  Value);..    HRE
3120: 53 55 4c 54 20 47 65 74 52 65 6e 64 65 72 53 74  SULT GetRenderSt
3130: 61 74 65 28 20 44 33 44 52 45 4e 44 45 52 53 54  ate( D3DRENDERST
3140: 41 54 45 54 59 50 45 20 53 74 61 74 65 2c 44 57  ATETYPE State,DW
3150: 4f 52 44 2a 20 70 56 61 6c 75 65 29 3b 0d 0a 20  ORD* pValue);.. 
3160: 20 20 20 48 52 45 53 55 4c 54 20 43 72 65 61 74     HRESULT Creat
3170: 65 53 74 61 74 65 42 6c 6f 63 6b 28 20 44 33 44  eStateBlock( D3D
3180: 53 54 41 54 45 42 4c 4f 43 4b 54 59 50 45 20 54  STATEBLOCKTYPE T
3190: 79 70 65 2c 4c 50 44 49 52 45 43 54 33 44 53 54  ype,LPDIRECT3DST
31a0: 41 54 45 42 4c 4f 43 4b 39 2a 20 70 70 53 42 29  ATEBLOCK9* ppSB)
31b0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 42  ;..    HRESULT B
31c0: 65 67 69 6e 53 74 61 74 65 42 6c 6f 63 6b 28 29  eginStateBlock()
31d0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 45  ;..    HRESULT E
31e0: 6e 64 53 74 61 74 65 42 6c 6f 63 6b 28 20 4c 50  ndStateBlock( LP
31f0: 44 49 52 45 43 54 33 44 53 54 41 54 45 42 4c 4f  DIRECT3DSTATEBLO
3200: 43 4b 39 2a 20 70 70 53 42 29 3b 0d 0a 20 20 20  CK9* ppSB);..   
3210: 20 48 52 45 53 55 4c 54 20 53 65 74 43 6c 69 70   HRESULT SetClip
3220: 53 74 61 74 75 73 28 20 44 33 44 43 4c 49 50 53  Status( D3DCLIPS
3230: 54 41 54 55 53 39 2a 20 70 43 6c 69 70 53 74 61  TATUS9* pClipSta
3240: 74 75 73 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  tus);..    HRESU
3250: 4c 54 20 47 65 74 43 6c 69 70 53 74 61 74 75 73  LT GetClipStatus
3260: 28 20 44 33 44 43 4c 49 50 53 54 41 54 55 53 39  ( D3DCLIPSTATUS9
3270: 2a 20 70 43 6c 69 70 53 74 61 74 75 73 29 3b 0d  * pClipStatus);.
3280: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
3290: 54 65 78 74 75 72 65 28 20 44 57 4f 52 44 20 53  Texture( DWORD S
32a0: 74 61 67 65 2c 4c 50 44 49 52 45 43 54 33 44 42  tage,LPDIRECT3DB
32b0: 41 53 45 54 45 58 54 55 52 45 39 2a 20 70 70 54  ASETEXTURE9* ppT
32c0: 65 78 74 75 72 65 29 3b 0d 0a 20 20 20 20 48 52  exture);..    HR
32d0: 45 53 55 4c 54 20 53 65 74 54 65 78 74 75 72 65  ESULT SetTexture
32e0: 28 20 44 57 4f 52 44 20 53 74 61 67 65 2c 4c 50  ( DWORD Stage,LP
32f0: 44 49 52 45 43 54 33 44 42 41 53 45 54 45 58 54  DIRECT3DBASETEXT
3300: 55 52 45 39 20 70 54 65 78 74 75 72 65 29 3b 0d  URE9 pTexture);.
3310: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
3320: 54 65 78 74 75 72 65 53 74 61 67 65 53 74 61 74  TextureStageStat
3330: 65 28 20 44 57 4f 52 44 20 53 74 61 67 65 2c 44  e( DWORD Stage,D
3340: 33 44 54 45 58 54 55 52 45 53 54 41 47 45 53 54  3DTEXTURESTAGEST
3350: 41 54 45 54 59 50 45 20 54 79 70 65 2c 44 57 4f  ATETYPE Type,DWO
3360: 52 44 2a 20 70 56 61 6c 75 65 29 3b 0d 0a 20 20  RD* pValue);..  
3370: 20 20 48 52 45 53 55 4c 54 20 53 65 74 54 65 78    HRESULT SetTex
3380: 74 75 72 65 53 74 61 67 65 53 74 61 74 65 28 20  tureStageState( 
3390: 44 57 4f 52 44 20 53 74 61 67 65 2c 44 33 44 54  DWORD Stage,D3DT
33a0: 45 58 54 55 52 45 53 54 41 47 45 53 54 41 54 45  EXTURESTAGESTATE
33b0: 54 59 50 45 20 54 79 70 65 2c 44 57 4f 52 44 20  TYPE Type,DWORD 
33c0: 56 61 6c 75 65 29 3b 0d 0a 20 20 20 20 48 52 45  Value);..    HRE
33d0: 53 55 4c 54 20 47 65 74 53 61 6d 70 6c 65 72 53  SULT GetSamplerS
33e0: 74 61 74 65 28 20 44 57 4f 52 44 20 53 61 6d 70  tate( DWORD Samp
33f0: 6c 65 72 2c 44 33 44 53 41 4d 50 4c 45 52 53 54  ler,D3DSAMPLERST
3400: 41 54 45 54 59 50 45 20 54 79 70 65 2c 44 57 4f  ATETYPE Type,DWO
3410: 52 44 2a 20 70 56 61 6c 75 65 29 3b 0d 0a 20 20  RD* pValue);..  
3420: 20 20 48 52 45 53 55 4c 54 20 53 65 74 53 61 6d    HRESULT SetSam
3430: 70 6c 65 72 53 74 61 74 65 28 20 44 57 4f 52 44  plerState( DWORD
3440: 20 53 61 6d 70 6c 65 72 2c 44 33 44 53 41 4d 50   Sampler,D3DSAMP
3450: 4c 45 52 53 54 41 54 45 54 59 50 45 20 54 79 70  LERSTATETYPE Typ
3460: 65 2c 44 57 4f 52 44 20 56 61 6c 75 65 29 3b 0d  e,DWORD Value);.
3470: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 56 61 6c  .    HRESULT Val
3480: 69 64 61 74 65 44 65 76 69 63 65 28 20 44 57 4f  idateDevice( DWO
3490: 52 44 2a 20 70 4e 75 6d 50 61 73 73 65 73 29 3b  RD* pNumPasses);
34a0: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 53 65  ..    HRESULT Se
34b0: 74 50 61 6c 65 74 74 65 45 6e 74 72 69 65 73 28  tPaletteEntries(
34c0: 20 55 49 4e 54 20 50 61 6c 65 74 74 65 4e 75 6d   UINT PaletteNum
34d0: 62 65 72 2c 20 50 41 4c 45 54 54 45 45 4e 54 52  ber, PALETTEENTR
34e0: 59 2a 20 70 45 6e 74 72 69 65 73 29 3b 0d 0a 20  Y* pEntries);.. 
34f0: 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 50 61     HRESULT GetPa
3500: 6c 65 74 74 65 45 6e 74 72 69 65 73 28 20 55 49  letteEntries( UI
3510: 4e 54 20 50 61 6c 65 74 74 65 4e 75 6d 62 65 72  NT PaletteNumber
3520: 2c 50 41 4c 45 54 54 45 45 4e 54 52 59 2a 20 70  ,PALETTEENTRY* p
3530: 45 6e 74 72 69 65 73 29 3b 0d 0a 20 20 20 20 48  Entries);..    H
3540: 52 45 53 55 4c 54 20 53 65 74 43 75 72 72 65 6e  RESULT SetCurren
3550: 74 54 65 78 74 75 72 65 50 61 6c 65 74 74 65 28  tTexturePalette(
3560: 20 55 49 4e 54 20 50 61 6c 65 74 74 65 4e 75 6d   UINT PaletteNum
3570: 62 65 72 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  ber);..    HRESU
3580: 4c 54 20 47 65 74 43 75 72 72 65 6e 74 54 65 78  LT GetCurrentTex
3590: 74 75 72 65 50 61 6c 65 74 74 65 28 20 55 49 4e  turePalette( UIN
35a0: 54 20 2a 50 61 6c 65 74 74 65 4e 75 6d 62 65 72  T *PaletteNumber
35b0: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
35c0: 53 65 74 53 63 69 73 73 6f 72 52 65 63 74 28 20  SetScissorRect( 
35d0: 52 45 43 54 2a 20 70 52 65 63 74 29 3b 0d 0a 20  RECT* pRect);.. 
35e0: 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 53 63     HRESULT GetSc
35f0: 69 73 73 6f 72 52 65 63 74 28 20 52 45 43 54 2a  issorRect( RECT*
3600: 20 70 52 65 63 74 29 3b 0d 0a 20 20 20 20 48 52   pRect);..    HR
3610: 45 53 55 4c 54 20 53 65 74 53 6f 66 74 77 61 72  ESULT SetSoftwar
3620: 65 56 65 72 74 65 78 50 72 6f 63 65 73 73 69 6e  eVertexProcessin
3630: 67 28 20 42 4f 4f 4c 20 62 53 6f 66 74 77 61 72  g( BOOL bSoftwar
3640: 65 29 3b 0d 0a 20 20 20 20 42 4f 4f 4c 20 47 65  e);..    BOOL Ge
3650: 74 53 6f 66 74 77 61 72 65 56 65 72 74 65 78 50  tSoftwareVertexP
3660: 72 6f 63 65 73 73 69 6e 67 28 29 3b 0d 0a 20 20  rocessing();..  
3670: 20 20 48 52 45 53 55 4c 54 20 53 65 74 4e 50 61    HRESULT SetNPa
3680: 74 63 68 4d 6f 64 65 28 20 66 6c 6f 61 74 20 6e  tchMode( float n
3690: 53 65 67 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20  Segments);..    
36a0: 66 6c 6f 61 74 20 47 65 74 4e 50 61 74 63 68 4d  float GetNPatchM
36b0: 6f 64 65 28 29 3b 0d 0a 20 20 20 20 48 52 45 53  ode();..    HRES
36c0: 55 4c 54 20 44 72 61 77 50 72 69 6d 69 74 69 76  ULT DrawPrimitiv
36d0: 65 28 20 44 33 44 50 52 49 4d 49 54 49 56 45 54  e( D3DPRIMITIVET
36e0: 59 50 45 20 50 72 69 6d 69 74 69 76 65 54 79 70  YPE PrimitiveTyp
36f0: 65 2c 55 49 4e 54 20 53 74 61 72 74 56 65 72 74  e,UINT StartVert
3700: 65 78 2c 55 49 4e 54 20 50 72 69 6d 69 74 69 76  ex,UINT Primitiv
3710: 65 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 48 52  eCount);..    HR
3720: 45 53 55 4c 54 20 44 72 61 77 49 6e 64 65 78 65  ESULT DrawIndexe
3730: 64 50 72 69 6d 69 74 69 76 65 28 20 44 33 44 50  dPrimitive( D3DP
3740: 52 49 4d 49 54 49 56 45 54 59 50 45 2c 49 4e 54  RIMITIVETYPE,INT
3750: 20 42 61 73 65 56 65 72 74 65 78 49 6e 64 65 78   BaseVertexIndex
3760: 2c 55 49 4e 54 20 4d 69 6e 56 65 72 74 65 78 49  ,UINT MinVertexI
3770: 6e 64 65 78 2c 55 49 4e 54 20 4e 75 6d 56 65 72  ndex,UINT NumVer
3780: 74 69 63 65 73 2c 55 49 4e 54 20 73 74 61 72 74  tices,UINT start
3790: 49 6e 64 65 78 2c 55 49 4e 54 20 70 72 69 6d 43  Index,UINT primC
37a0: 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 48 52 45 53  ount);..    HRES
37b0: 55 4c 54 20 44 72 61 77 50 72 69 6d 69 74 69 76  ULT DrawPrimitiv
37c0: 65 55 50 28 20 44 33 44 50 52 49 4d 49 54 49 56  eUP( D3DPRIMITIV
37d0: 45 54 59 50 45 20 50 72 69 6d 69 74 69 76 65 54  ETYPE PrimitiveT
37e0: 79 70 65 2c 55 49 4e 54 20 50 72 69 6d 69 74 69  ype,UINT Primiti
37f0: 76 65 43 6f 75 6e 74 2c 20 76 6f 69 64 2a 20 70  veCount, void* p
3800: 56 65 72 74 65 78 53 74 72 65 61 6d 5a 65 72 6f  VertexStreamZero
3810: 44 61 74 61 2c 55 49 4e 54 20 56 65 72 74 65 78  Data,UINT Vertex
3820: 53 74 72 65 61 6d 5a 65 72 6f 53 74 72 69 64 65  StreamZeroStride
3830: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
3840: 44 72 61 77 49 6e 64 65 78 65 64 50 72 69 6d 69  DrawIndexedPrimi
3850: 74 69 76 65 55 50 28 20 44 33 44 50 52 49 4d 49  tiveUP( D3DPRIMI
3860: 54 49 56 45 54 59 50 45 20 50 72 69 6d 69 74 69  TIVETYPE Primiti
3870: 76 65 54 79 70 65 2c 55 49 4e 54 20 4d 69 6e 56  veType,UINT MinV
3880: 65 72 74 65 78 49 6e 64 65 78 2c 55 49 4e 54 20  ertexIndex,UINT 
3890: 4e 75 6d 56 65 72 74 69 63 65 73 2c 55 49 4e 54  NumVertices,UINT
38a0: 20 50 72 69 6d 69 74 69 76 65 43 6f 75 6e 74 2c   PrimitiveCount,
38b0: 20 76 6f 69 64 2a 20 70 49 6e 64 65 78 44 61 74   void* pIndexDat
38c0: 61 2c 44 33 44 46 4f 52 4d 41 54 20 49 6e 64 65  a,D3DFORMAT Inde
38d0: 78 44 61 74 61 46 6f 72 6d 61 74 2c 20 76 6f 69  xDataFormat, voi
38e0: 64 2a 20 70 56 65 72 74 65 78 53 74 72 65 61 6d  d* pVertexStream
38f0: 5a 65 72 6f 44 61 74 61 2c 55 49 4e 54 20 56 65  ZeroData,UINT Ve
3900: 72 74 65 78 53 74 72 65 61 6d 5a 65 72 6f 53 74  rtexStreamZeroSt
3910: 72 69 64 65 29 3b 0d 0a 20 20 20 20 48 52 45 53  ride);..    HRES
3920: 55 4c 54 20 50 72 6f 63 65 73 73 56 65 72 74 69  ULT ProcessVerti
3930: 63 65 73 28 20 55 49 4e 54 20 53 72 63 53 74 61  ces( UINT SrcSta
3940: 72 74 49 6e 64 65 78 2c 55 49 4e 54 20 44 65 73  rtIndex,UINT Des
3950: 74 49 6e 64 65 78 2c 55 49 4e 54 20 56 65 72 74  tIndex,UINT Vert
3960: 65 78 43 6f 75 6e 74 2c 4c 50 44 49 52 45 43 54  exCount,LPDIRECT
3970: 33 44 56 45 52 54 45 58 42 55 46 46 45 52 39 20  3DVERTEXBUFFER9 
3980: 70 44 65 73 74 42 75 66 66 65 72 2c 4c 50 44 49  pDestBuffer,LPDI
3990: 52 45 43 54 33 44 56 45 52 54 45 58 44 45 43 4c  RECT3DVERTEXDECL
39a0: 41 52 41 54 49 4f 4e 39 20 70 56 65 72 74 65 78  ARATION9 pVertex
39b0: 44 65 63 6c 2c 44 57 4f 52 44 20 46 6c 61 67 73  Decl,DWORD Flags
39c0: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
39d0: 43 72 65 61 74 65 56 65 72 74 65 78 44 65 63 6c  CreateVertexDecl
39e0: 61 72 61 74 69 6f 6e 28 20 44 33 44 56 45 52 54  aration( D3DVERT
39f0: 45 58 45 4c 45 4d 45 4e 54 39 2a 20 70 56 65 72  EXELEMENT9* pVer
3a00: 74 65 78 45 6c 65 6d 65 6e 74 73 2c 4c 50 44 49  texElements,LPDI
3a10: 52 45 43 54 33 44 56 45 52 54 45 58 44 45 43 4c  RECT3DVERTEXDECL
3a20: 41 52 41 54 49 4f 4e 39 2a 20 70 70 44 65 63 6c  ARATION9* ppDecl
3a30: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
3a40: 53 65 74 56 65 72 74 65 78 44 65 63 6c 61 72 61  SetVertexDeclara
3a50: 74 69 6f 6e 28 4c 50 44 49 52 45 43 54 33 44 56  tion(LPDIRECT3DV
3a60: 45 52 54 45 58 44 45 43 4c 41 52 41 54 49 4f 4e  ERTEXDECLARATION
3a70: 39 20 70 44 65 63 6c 29 3b 0d 0a 20 20 20 20 48  9 pDecl);..    H
3a80: 52 45 53 55 4c 54 20 47 65 74 56 65 72 74 65 78  RESULT GetVertex
3a90: 44 65 63 6c 61 72 61 74 69 6f 6e 28 4c 50 44 49  Declaration(LPDI
3aa0: 52 45 43 54 33 44 56 45 52 54 45 58 44 45 43 4c  RECT3DVERTEXDECL
3ab0: 41 52 41 54 49 4f 4e 39 2a 20 70 70 44 65 63 6c  ARATION9* ppDecl
3ac0: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
3ad0: 53 65 74 46 56 46 28 20 44 57 4f 52 44 20 46 56  SetFVF( DWORD FV
3ae0: 46 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  F);..    HRESULT
3af0: 20 47 65 74 46 56 46 28 20 44 57 4f 52 44 2a 20   GetFVF( DWORD* 
3b00: 70 46 56 46 29 3b 0d 0a 20 20 20 20 48 52 45 53  pFVF);..    HRES
3b10: 55 4c 54 20 43 72 65 61 74 65 56 65 72 74 65 78  ULT CreateVertex
3b20: 53 68 61 64 65 72 28 20 44 57 4f 52 44 2a 20 70  Shader( DWORD* p
3b30: 46 75 6e 63 74 69 6f 6e 2c 4c 50 44 49 52 45 43  Function,LPDIREC
3b40: 54 33 44 56 45 52 54 45 58 53 48 41 44 45 52 39  T3DVERTEXSHADER9
3b50: 2a 20 70 70 53 68 61 64 65 72 29 3b 0d 0a 20 20  * ppShader);..  
3b60: 20 20 48 52 45 53 55 4c 54 20 53 65 74 56 65 72    HRESULT SetVer
3b70: 74 65 78 53 68 61 64 65 72 28 20 4c 50 44 49 52  texShader( LPDIR
3b80: 45 43 54 33 44 56 45 52 54 45 58 53 48 41 44 45  ECT3DVERTEXSHADE
3b90: 52 39 20 70 53 68 61 64 65 72 29 3b 0d 0a 20 20  R9 pShader);..  
3ba0: 20 20 48 52 45 53 55 4c 54 20 47 65 74 56 65 72    HRESULT GetVer
3bb0: 74 65 78 53 68 61 64 65 72 28 20 4c 50 44 49 52  texShader( LPDIR
3bc0: 45 43 54 33 44 56 45 52 54 45 58 53 48 41 44 45  ECT3DVERTEXSHADE
3bd0: 52 39 2a 20 70 70 53 68 61 64 65 72 29 3b 0d 0a  R9* ppShader);..
3be0: 20 20 20 20 48 52 45 53 55 4c 54 20 53 65 74 56      HRESULT SetV
3bf0: 65 72 74 65 78 53 68 61 64 65 72 43 6f 6e 73 74  ertexShaderConst
3c00: 61 6e 74 46 28 20 55 49 4e 54 20 53 74 61 72 74  antF( UINT Start
3c10: 52 65 67 69 73 74 65 72 2c 20 66 6c 6f 61 74 2a  Register, float*
3c20: 20 70 43 6f 6e 73 74 61 6e 74 44 61 74 61 2c 55   pConstantData,U
3c30: 49 4e 54 20 56 65 63 74 6f 72 34 66 43 6f 75 6e  INT Vector4fCoun
3c40: 74 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  t);..    HRESULT
3c50: 20 47 65 74 56 65 72 74 65 78 53 68 61 64 65 72   GetVertexShader
3c60: 43 6f 6e 73 74 61 6e 74 46 28 20 55 49 4e 54 20  ConstantF( UINT 
3c70: 53 74 61 72 74 52 65 67 69 73 74 65 72 2c 66 6c  StartRegister,fl
3c80: 6f 61 74 2a 20 70 43 6f 6e 73 74 61 6e 74 44 61  oat* pConstantDa
3c90: 74 61 2c 55 49 4e 54 20 56 65 63 74 6f 72 34 66  ta,UINT Vector4f
3ca0: 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 48 52 45  Count);..    HRE
3cb0: 53 55 4c 54 20 53 65 74 56 65 72 74 65 78 53 68  SULT SetVertexSh
3cc0: 61 64 65 72 43 6f 6e 73 74 61 6e 74 49 28 20 55  aderConstantI( U
3cd0: 49 4e 54 20 53 74 61 72 74 52 65 67 69 73 74 65  INT StartRegiste
3ce0: 72 2c 20 69 6e 74 2a 20 70 43 6f 6e 73 74 61 6e  r, int* pConstan
3cf0: 74 44 61 74 61 2c 55 49 4e 54 20 56 65 63 74 6f  tData,UINT Vecto
3d00: 72 34 69 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20  r4iCount);..    
3d10: 48 52 45 53 55 4c 54 20 47 65 74 56 65 72 74 65  HRESULT GetVerte
3d20: 78 53 68 61 64 65 72 43 6f 6e 73 74 61 6e 74 49  xShaderConstantI
3d30: 28 20 55 49 4e 54 20 53 74 61 72 74 52 65 67 69  ( UINT StartRegi
3d40: 73 74 65 72 2c 69 6e 74 2a 20 70 43 6f 6e 73 74  ster,int* pConst
3d50: 61 6e 74 44 61 74 61 2c 55 49 4e 54 20 56 65 63  antData,UINT Vec
3d60: 74 6f 72 34 69 43 6f 75 6e 74 29 3b 0d 0a 20 20  tor4iCount);..  
3d70: 20 20 48 52 45 53 55 4c 54 20 53 65 74 56 65 72    HRESULT SetVer
3d80: 74 65 78 53 68 61 64 65 72 43 6f 6e 73 74 61 6e  texShaderConstan
3d90: 74 42 28 20 55 49 4e 54 20 53 74 61 72 74 52 65  tB( UINT StartRe
3da0: 67 69 73 74 65 72 2c 20 42 4f 4f 4c 2a 20 70 43  gister, BOOL* pC
3db0: 6f 6e 73 74 61 6e 74 44 61 74 61 2c 55 49 4e 54  onstantData,UINT
3dc0: 20 20 42 6f 6f 6c 43 6f 75 6e 74 29 3b 0d 0a 20    BoolCount);.. 
3dd0: 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 56 65     HRESULT GetVe
3de0: 72 74 65 78 53 68 61 64 65 72 43 6f 6e 73 74 61  rtexShaderConsta
3df0: 6e 74 42 28 20 55 49 4e 54 20 53 74 61 72 74 52  ntB( UINT StartR
3e00: 65 67 69 73 74 65 72 2c 42 4f 4f 4c 2a 20 70 43  egister,BOOL* pC
3e10: 6f 6e 73 74 61 6e 74 44 61 74 61 2c 55 49 4e 54  onstantData,UINT
3e20: 20 42 6f 6f 6c 43 6f 75 6e 74 29 3b 0d 0a 20 20   BoolCount);..  
3e30: 20 20 48 52 45 53 55 4c 54 20 53 65 74 53 74 72    HRESULT SetStr
3e40: 65 61 6d 53 6f 75 72 63 65 28 20 55 49 4e 54 20  eamSource( UINT 
3e50: 53 74 72 65 61 6d 4e 75 6d 62 65 72 2c 4c 50 44  StreamNumber,LPD
3e60: 49 52 45 43 54 33 44 56 45 52 54 45 58 42 55 46  IRECT3DVERTEXBUF
3e70: 46 45 52 39 20 70 53 74 72 65 61 6d 44 61 74 61  FER9 pStreamData
3e80: 2c 55 49 4e 54 20 4f 66 66 73 65 74 49 6e 42 79  ,UINT OffsetInBy
3e90: 74 65 73 2c 55 49 4e 54 20 53 74 72 69 64 65 29  tes,UINT Stride)
3ea0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
3eb0: 65 74 53 74 72 65 61 6d 53 6f 75 72 63 65 28 20  etStreamSource( 
3ec0: 55 49 4e 54 20 53 74 72 65 61 6d 4e 75 6d 62 65  UINT StreamNumbe
3ed0: 72 2c 4c 50 44 49 52 45 43 54 33 44 56 45 52 54  r,LPDIRECT3DVERT
3ee0: 45 58 42 55 46 46 45 52 39 2a 20 70 70 53 74 72  EXBUFFER9* ppStr
3ef0: 65 61 6d 44 61 74 61 2c 55 49 4e 54 2a 20 70 4f  eamData,UINT* pO
3f00: 66 66 73 65 74 49 6e 42 79 74 65 73 2c 55 49 4e  ffsetInBytes,UIN
3f10: 54 2a 20 70 53 74 72 69 64 65 29 3b 0d 0a 20 20  T* pStride);..  
3f20: 20 20 48 52 45 53 55 4c 54 20 53 65 74 53 74 72    HRESULT SetStr
3f30: 65 61 6d 53 6f 75 72 63 65 46 72 65 71 28 20 55  eamSourceFreq( U
3f40: 49 4e 54 20 53 74 72 65 61 6d 4e 75 6d 62 65 72  INT StreamNumber
3f50: 2c 55 49 4e 54 20 53 65 74 74 69 6e 67 29 3b 0d  ,UINT Setting);.
3f60: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
3f70: 53 74 72 65 61 6d 53 6f 75 72 63 65 46 72 65 71  StreamSourceFreq
3f80: 28 20 55 49 4e 54 20 53 74 72 65 61 6d 4e 75 6d  ( UINT StreamNum
3f90: 62 65 72 2c 55 49 4e 54 2a 20 70 53 65 74 74 69  ber,UINT* pSetti
3fa0: 6e 67 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  ng);..    HRESUL
3fb0: 54 20 53 65 74 49 6e 64 69 63 65 73 28 20 4c 50  T SetIndices( LP
3fc0: 44 49 52 45 43 54 33 44 49 4e 44 45 58 42 55 46  DIRECT3DINDEXBUF
3fd0: 46 45 52 39 20 70 49 6e 64 65 78 44 61 74 61 29  FER9 pIndexData)
3fe0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
3ff0: 65 74 49 6e 64 69 63 65 73 28 20 4c 50 44 49 52  etIndices( LPDIR
4000: 45 43 54 33 44 49 4e 44 45 58 42 55 46 46 45 52  ECT3DINDEXBUFFER
4010: 39 2a 20 70 70 49 6e 64 65 78 44 61 74 61 29 3b  9* ppIndexData);
4020: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 43 72  ..    HRESULT Cr
4030: 65 61 74 65 50 69 78 65 6c 53 68 61 64 65 72 28  eatePixelShader(
4040: 20 44 57 4f 52 44 2a 20 70 46 75 6e 63 74 69 6f   DWORD* pFunctio
4050: 6e 2c 4c 50 44 49 52 45 43 54 33 44 50 49 58 45  n,LPDIRECT3DPIXE
4060: 4c 53 48 41 44 45 52 39 2a 20 70 70 53 68 61 64  LSHADER9* ppShad
4070: 65 72 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  er);..    HRESUL
4080: 54 20 53 65 74 50 69 78 65 6c 53 68 61 64 65 72  T SetPixelShader
4090: 28 4c 50 44 49 52 45 43 54 33 44 50 49 58 45 4c  (LPDIRECT3DPIXEL
40a0: 53 48 41 44 45 52 39 20 70 53 68 61 64 65 72 29  SHADER9 pShader)
40b0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
40c0: 65 74 50 69 78 65 6c 53 68 61 64 65 72 28 4c 50  etPixelShader(LP
40d0: 44 49 52 45 43 54 33 44 50 49 58 45 4c 53 48 41  DIRECT3DPIXELSHA
40e0: 44 45 52 39 2a 20 70 70 53 68 61 64 65 72 29 3b  DER9* ppShader);
40f0: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 53 65  ..    HRESULT Se
4100: 74 50 69 78 65 6c 53 68 61 64 65 72 43 6f 6e 73  tPixelShaderCons
4110: 74 61 6e 74 46 28 20 55 49 4e 54 20 53 74 61 72  tantF( UINT Star
4120: 74 52 65 67 69 73 74 65 72 2c 20 66 6c 6f 61 74  tRegister, float
4130: 2a 20 70 43 6f 6e 73 74 61 6e 74 44 61 74 61 2c  * pConstantData,
4140: 55 49 4e 54 20 56 65 63 74 6f 72 34 66 43 6f 75  UINT Vector4fCou
4150: 6e 74 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  nt);..    HRESUL
4160: 54 20 47 65 74 50 69 78 65 6c 53 68 61 64 65 72  T GetPixelShader
4170: 43 6f 6e 73 74 61 6e 74 46 28 20 55 49 4e 54 20  ConstantF( UINT 
4180: 53 74 61 72 74 52 65 67 69 73 74 65 72 2c 66 6c  StartRegister,fl
4190: 6f 61 74 2a 20 70 43 6f 6e 73 74 61 6e 74 44 61  oat* pConstantDa
41a0: 74 61 2c 55 49 4e 54 20 56 65 63 74 6f 72 34 66  ta,UINT Vector4f
41b0: 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 48 52 45  Count);..    HRE
41c0: 53 55 4c 54 20 53 65 74 50 69 78 65 6c 53 68 61  SULT SetPixelSha
41d0: 64 65 72 43 6f 6e 73 74 61 6e 74 49 28 20 55 49  derConstantI( UI
41e0: 4e 54 20 53 74 61 72 74 52 65 67 69 73 74 65 72  NT StartRegister
41f0: 2c 20 69 6e 74 2a 20 70 43 6f 6e 73 74 61 6e 74  , int* pConstant
4200: 44 61 74 61 2c 55 49 4e 54 20 56 65 63 74 6f 72  Data,UINT Vector
4210: 34 69 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 48  4iCount);..    H
4220: 52 45 53 55 4c 54 20 47 65 74 50 69 78 65 6c 53  RESULT GetPixelS
4230: 68 61 64 65 72 43 6f 6e 73 74 61 6e 74 49 28 20  haderConstantI( 
4240: 55 49 4e 54 20 53 74 61 72 74 52 65 67 69 73 74  UINT StartRegist
4250: 65 72 2c 69 6e 74 2a 20 70 43 6f 6e 73 74 61 6e  er,int* pConstan
4260: 74 44 61 74 61 2c 55 49 4e 54 20 56 65 63 74 6f  tData,UINT Vecto
4270: 72 34 69 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20  r4iCount);..    
4280: 48 52 45 53 55 4c 54 20 53 65 74 50 69 78 65 6c  HRESULT SetPixel
4290: 53 68 61 64 65 72 43 6f 6e 73 74 61 6e 74 42 28  ShaderConstantB(
42a0: 20 55 49 4e 54 20 53 74 61 72 74 52 65 67 69 73   UINT StartRegis
42b0: 74 65 72 2c 20 42 4f 4f 4c 2a 20 70 43 6f 6e 73  ter, BOOL* pCons
42c0: 74 61 6e 74 44 61 74 61 2c 55 49 4e 54 20 20 42  tantData,UINT  B
42d0: 6f 6f 6c 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20  oolCount);..    
42e0: 48 52 45 53 55 4c 54 20 47 65 74 50 69 78 65 6c  HRESULT GetPixel
42f0: 53 68 61 64 65 72 43 6f 6e 73 74 61 6e 74 42 28  ShaderConstantB(
4300: 20 55 49 4e 54 20 53 74 61 72 74 52 65 67 69 73   UINT StartRegis
4310: 74 65 72 2c 42 4f 4f 4c 2a 20 70 43 6f 6e 73 74  ter,BOOL* pConst
4320: 61 6e 74 44 61 74 61 2c 55 49 4e 54 20 42 6f 6f  antData,UINT Boo
4330: 6c 43 6f 75 6e 74 29 3b 0d 0a 20 20 20 20 48 52  lCount);..    HR
4340: 45 53 55 4c 54 20 44 72 61 77 52 65 63 74 50 61  ESULT DrawRectPa
4350: 74 63 68 28 20 55 49 4e 54 20 48 61 6e 64 6c 65  tch( UINT Handle
4360: 2c 20 66 6c 6f 61 74 2a 20 70 4e 75 6d 53 65 67  , float* pNumSeg
4370: 73 2c 20 44 33 44 52 45 43 54 50 41 54 43 48 5f  s, D3DRECTPATCH_
4380: 49 4e 46 4f 2a 20 70 52 65 63 74 50 61 74 63 68  INFO* pRectPatch
4390: 49 6e 66 6f 29 3b 0d 0a 20 20 20 20 48 52 45 53  Info);..    HRES
43a0: 55 4c 54 20 44 72 61 77 54 72 69 50 61 74 63 68  ULT DrawTriPatch
43b0: 28 20 55 49 4e 54 20 48 61 6e 64 6c 65 2c 20 66  ( UINT Handle, f
43c0: 6c 6f 61 74 2a 20 70 4e 75 6d 53 65 67 73 2c 20  loat* pNumSegs, 
43d0: 44 33 44 54 52 49 50 41 54 43 48 5f 49 4e 46 4f  D3DTRIPATCH_INFO
43e0: 2a 20 70 54 72 69 50 61 74 63 68 49 6e 66 6f 29  * pTriPatchInfo)
43f0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 44  ;..    HRESULT D
4400: 65 6c 65 74 65 50 61 74 63 68 28 20 55 49 4e 54  eletePatch( UINT
4410: 20 48 61 6e 64 6c 65 29 3b 0d 0a 20 20 20 20 48   Handle);..    H
4420: 52 45 53 55 4c 54 20 43 72 65 61 74 65 51 75 65  RESULT CreateQue
4430: 72 79 28 20 44 33 44 51 55 45 52 59 54 59 50 45  ry( D3DQUERYTYPE
4440: 20 54 79 70 65 2c 4c 50 44 49 52 45 43 54 33 44   Type,LPDIRECT3D
4450: 51 55 45 52 59 39 2a 20 70 70 51 75 65 72 79 29  QUERY9* ppQuery)
4460: 3b 0d 0a 2f 2a 0d 0a 20 20 20 20 64 65 62 75 67  ;../*..    debug
4470: 20 7b 0d 0a 20 20 20 20 20 20 20 20 44 33 44 44   {..        D3DD
4480: 45 56 49 43 45 5f 43 52 45 41 54 49 4f 4e 5f 50  EVICE_CREATION_P
4490: 41 52 41 4d 45 54 45 52 53 20 43 72 65 61 74 69  ARAMETERS Creati
44a0: 6f 6e 50 61 72 61 6d 65 74 65 72 73 3b 0d 0a 20  onParameters;.. 
44b0: 20 20 20 20 20 20 20 44 33 44 50 52 45 53 45 4e         D3DPRESEN
44c0: 54 5f 50 41 52 41 4d 45 54 45 52 53 20 50 72 65  T_PARAMETERS Pre
44d0: 73 65 6e 74 50 61 72 61 6d 65 74 65 72 73 3b 0d  sentParameters;.
44e0: 0a 20 20 20 20 20 20 20 20 44 33 44 44 49 53 50  .        D3DDISP
44f0: 4c 41 59 4d 4f 44 45 20 44 69 73 70 6c 61 79 4d  LAYMODE DisplayM
4500: 6f 64 65 3b 0d 0a 20 20 20 20 20 20 20 20 44 33  ode;..        D3
4510: 44 43 41 50 53 39 20 43 61 70 73 3b 0d 0a 0d 0a  DCAPS9 Caps;....
4520: 20 20 20 20 20 20 20 20 55 49 4e 54 20 41 76 61          UINT Ava
4530: 69 6c 61 62 6c 65 54 65 78 74 75 72 65 4d 65 6d  ilableTextureMem
4540: 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54 20  ;..        UINT 
4550: 53 77 61 70 43 68 61 69 6e 73 3b 0d 0a 20 20 20  SwapChains;..   
4560: 20 20 20 20 20 55 49 4e 54 20 54 65 78 74 75 72       UINT Textur
4570: 65 73 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e  es;..        UIN
4580: 54 20 56 65 72 74 65 78 42 75 66 66 65 72 73 3b  T VertexBuffers;
4590: 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54 20 49  ..        UINT I
45a0: 6e 64 65 78 42 75 66 66 65 72 73 3b 0d 0a 20 20  ndexBuffers;..  
45b0: 20 20 20 20 20 20 55 49 4e 54 20 56 65 72 74 65        UINT Verte
45c0: 78 53 68 61 64 65 72 73 3b 0d 0a 20 20 20 20 20  xShaders;..     
45d0: 20 20 20 55 49 4e 54 20 50 69 78 65 6c 53 68 61     UINT PixelSha
45e0: 64 65 72 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20  ders;....       
45f0: 20 44 33 44 56 49 45 57 50 4f 52 54 39 20 56 69   D3DVIEWPORT9 Vi
4600: 65 77 70 6f 72 74 3b 0d 0a 20 20 20 20 20 20 20  ewport;..       
4610: 20 44 33 44 4d 41 54 52 49 58 20 50 72 6f 6a 65   D3DMATRIX Proje
4620: 63 74 69 6f 6e 4d 61 74 72 69 78 3b 0d 0a 20 20  ctionMatrix;..  
4630: 20 20 20 20 20 20 44 33 44 4d 41 54 52 49 58 20        D3DMATRIX 
4640: 56 69 65 77 4d 61 74 72 69 78 3b 0d 0a 20 20 20  ViewMatrix;..   
4650: 20 20 20 20 20 44 33 44 4d 41 54 52 49 58 20 57       D3DMATRIX W
4660: 6f 72 6c 64 4d 61 74 72 69 78 3b 0d 0a 20 20 20  orldMatrix;..   
4670: 20 20 20 20 20 44 33 44 4d 41 54 52 49 58 5b 38       D3DMATRIX[8
4680: 5d 20 54 65 78 74 75 72 65 4d 61 74 72 69 63 65  ] TextureMatrice
4690: 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 44 57  s;....        DW
46a0: 4f 52 44 20 46 56 46 3b 0d 0a 20 20 20 20 20 20  ORD FVF;..      
46b0: 20 20 55 49 4e 54 20 56 65 72 74 65 78 53 69 7a    UINT VertexSiz
46c0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 44 57 4f 52  e;..        DWOR
46d0: 44 20 56 65 72 74 65 78 53 68 61 64 65 72 56 65  D VertexShaderVe
46e0: 72 73 69 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20  rsion;..        
46f0: 44 57 4f 52 44 20 50 69 78 65 6c 53 68 61 64 65  DWORD PixelShade
4700: 72 56 65 72 73 69 6f 6e 3b 0d 0a 20 20 20 20 20  rVersion;..     
4710: 20 20 20 42 4f 4f 4c 20 53 6f 66 74 77 61 72 65     BOOL Software
4720: 56 65 72 74 65 78 50 72 6f 63 65 73 73 69 6e 67  VertexProcessing
4730: 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 44 33 44  ;....        D3D
4740: 4d 41 54 45 52 49 41 4c 39 20 4d 61 74 65 72 69  MATERIAL9 Materi
4750: 61 6c 3b 0d 0a 20 20 20 20 20 20 20 20 44 33 44  al;..        D3D
4760: 4c 49 47 48 54 39 5b 31 36 5d 20 4c 69 67 68 74  LIGHT9[16] Light
4770: 73 3b 0d 0a 20 20 20 20 20 20 20 20 42 4f 4f 4c  s;..        BOOL
4780: 5b 31 36 5d 20 4c 69 67 68 74 73 45 6e 61 62 6c  [16] LightsEnabl
4790: 65 64 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 44  ed;....        D
47a0: 33 44 47 41 4d 4d 41 52 41 4d 50 20 47 61 6d 6d  3DGAMMARAMP Gamm
47b0: 61 52 61 6d 70 3b 0d 0a 20 20 20 20 20 20 20 20  aRamp;..        
47c0: 52 45 43 54 20 53 63 69 73 73 6f 72 52 65 63 74  RECT ScissorRect
47d0: 3b 0d 0a 20 20 20 20 20 20 20 20 42 4f 4f 4c 20  ;..        BOOL 
47e0: 44 69 61 6c 6f 67 42 6f 78 4d 6f 64 65 3b 0d 0a  DialogBoxMode;..
47f0: 20 20 20 20 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a 0d 0a      }..*/..}....
4800: 61 6c 69 61 73 20 4c 50 44 49 52 45 43 54 33 44  alias LPDIRECT3D
4810: 44 45 56 49 43 45 39 20 49 44 69 72 65 63 74 33  DEVICE9 IDirect3
4820: 44 44 65 76 69 63 65 39 3b 0d 0a 0d 0a 0d 0a 69  DDevice9;......i
4830: 6e 74 65 72 66 61 63 65 20 4c 50 44 49 52 45 43  nterface LPDIREC
4840: 54 33 44 53 54 41 54 45 42 4c 4f 43 4b 39 20 3a  T3DSTATEBLOCK9 :
4850: 20 49 55 6e 6b 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20   IUnknown..{..  
4860: 20 20 48 52 45 53 55 4c 54 20 47 65 74 44 65 76    HRESULT GetDev
4870: 69 63 65 28 4c 50 44 49 52 45 43 54 33 44 44 45  ice(LPDIRECT3DDE
4880: 56 49 43 45 39 2a 20 70 70 44 65 76 69 63 65 29  VICE9* ppDevice)
4890: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 43  ;..    HRESULT C
48a0: 61 70 74 75 72 65 28 29 3b 0d 0a 20 20 20 20 48  apture();..    H
48b0: 52 45 53 55 4c 54 20 41 70 70 6c 79 28 29 3b 0d  RESULT Apply();.
48c0: 0a 2f 2a 0d 0a 20 20 20 20 64 65 62 75 67 20 7b  ./*..    debug {
48d0: 0d 0a 20 20 20 20 20 20 20 20 4c 50 43 57 53 54  ..        LPCWST
48e0: 52 20 43 72 65 61 74 69 6f 6e 43 61 6c 6c 53 74  R CreationCallSt
48f0: 61 63 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 2a 2f 0d  ack;..    }..*/.
4900: 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44 49  .}....alias LPDI
4910: 52 45 43 54 33 44 53 54 41 54 45 42 4c 4f 43 4b  RECT3DSTATEBLOCK
4920: 39 20 49 44 69 72 65 63 74 33 44 53 74 61 74 65  9 IDirect3DState
4930: 42 6c 6f 63 6b 39 3b 0d 0a 0d 0a 69 6e 74 65 72  Block9;....inter
4940: 66 61 63 65 20 4c 50 44 49 52 45 43 54 33 44 53  face LPDIRECT3DS
4950: 57 41 50 43 48 41 49 4e 39 20 3a 20 49 55 6e 6b  WAPCHAIN9 : IUnk
4960: 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20 20 20 48 52 45  nown..{..    HRE
4970: 53 55 4c 54 20 50 72 65 73 65 6e 74 28 20 52 45  SULT Present( RE
4980: 43 54 2a 20 70 53 6f 75 72 63 65 52 65 63 74 2c  CT* pSourceRect,
4990: 20 52 45 43 54 2a 20 70 44 65 73 74 52 65 63 74   RECT* pDestRect
49a0: 2c 48 57 4e 44 20 68 44 65 73 74 57 69 6e 64 6f  ,HWND hDestWindo
49b0: 77 4f 76 65 72 72 69 64 65 2c 20 52 47 4e 44 41  wOverride, RGNDA
49c0: 54 41 2a 20 70 44 69 72 74 79 52 65 67 69 6f 6e  TA* pDirtyRegion
49d0: 2c 44 57 4f 52 44 20 64 77 46 6c 61 67 73 29 3b  ,DWORD dwFlags);
49e0: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65  ..    HRESULT Ge
49f0: 74 46 72 6f 6e 74 42 75 66 66 65 72 44 61 74 61  tFrontBufferData
4a00: 28 20 4c 50 44 49 52 45 43 54 33 44 53 55 52 46  ( LPDIRECT3DSURF
4a10: 41 43 45 39 20 70 44 65 73 74 53 75 72 66 61 63  ACE9 pDestSurfac
4a20: 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  e);..    HRESULT
4a30: 20 47 65 74 42 61 63 6b 42 75 66 66 65 72 28 20   GetBackBuffer( 
4a40: 55 49 4e 54 20 69 42 61 63 6b 42 75 66 66 65 72  UINT iBackBuffer
4a50: 2c 44 33 44 42 41 43 4b 42 55 46 46 45 52 5f 54  ,D3DBACKBUFFER_T
4a60: 59 50 45 20 54 79 70 65 2c 4c 50 44 49 52 45 43  YPE Type,LPDIREC
4a70: 54 33 44 53 55 52 46 41 43 45 39 2a 20 70 70 42  T3DSURFACE9* ppB
4a80: 61 63 6b 42 75 66 66 65 72 29 3b 0d 0a 20 20 20  ackBuffer);..   
4a90: 20 48 52 45 53 55 4c 54 20 47 65 74 52 61 73 74   HRESULT GetRast
4aa0: 65 72 53 74 61 74 75 73 28 20 44 33 44 52 41 53  erStatus( D3DRAS
4ab0: 54 45 52 5f 53 54 41 54 55 53 2a 20 70 52 61 73  TER_STATUS* pRas
4ac0: 74 65 72 53 74 61 74 75 73 29 3b 0d 0a 20 20 20  terStatus);..   
4ad0: 20 48 52 45 53 55 4c 54 20 47 65 74 44 69 73 70   HRESULT GetDisp
4ae0: 6c 61 79 4d 6f 64 65 28 20 44 33 44 44 49 53 50  layMode( D3DDISP
4af0: 4c 41 59 4d 4f 44 45 2a 20 70 4d 6f 64 65 29 3b  LAYMODE* pMode);
4b00: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65  ..    HRESULT Ge
4b10: 74 44 65 76 69 63 65 28 20 4c 50 44 49 52 45 43  tDevice( LPDIREC
4b20: 54 33 44 44 45 56 49 43 45 39 20 2a 20 70 70 44  T3DDEVICE9 * ppD
4b30: 65 76 69 63 65 29 3b 0d 0a 20 20 20 20 48 52 45  evice);..    HRE
4b40: 53 55 4c 54 20 47 65 74 50 72 65 73 65 6e 74 50  SULT GetPresentP
4b50: 61 72 61 6d 65 74 65 72 73 28 20 44 33 44 50 52  arameters( D3DPR
4b60: 45 53 45 4e 54 5f 50 41 52 41 4d 45 54 45 52 53  ESENT_PARAMETERS
4b70: 2a 20 70 50 72 65 73 65 6e 74 61 74 69 6f 6e 50  * pPresentationP
4b80: 61 72 61 6d 65 74 65 72 73 29 3b 0d 0a 2f 2a 0d  arameters);../*.
4b90: 0a 20 20 20 20 64 65 62 75 67 20 7b 0d 0a 20 20  .    debug {..  
4ba0: 20 20 20 20 20 20 44 33 44 50 52 45 53 45 4e 54        D3DPRESENT
4bb0: 5f 50 41 52 41 4d 45 54 45 52 53 20 50 72 65 73  _PARAMETERS Pres
4bc0: 65 6e 74 50 61 72 61 6d 65 74 65 72 73 3b 0d 0a  entParameters;..
4bd0: 20 20 20 20 20 20 20 20 44 33 44 44 49 53 50 4c          D3DDISPL
4be0: 41 59 4d 4f 44 45 20 44 69 73 70 6c 61 79 4d 6f  AYMODE DisplayMo
4bf0: 64 65 3b 0d 0a 20 20 20 20 20 20 20 20 4c 50 43  de;..        LPC
4c00: 57 53 54 52 20 43 72 65 61 74 69 6f 6e 43 61 6c  WSTR CreationCal
4c10: 6c 53 74 61 63 6b 3b 0d 0a 20 20 20 20 7d 0d 0a  lStack;..    }..
4c20: 2a 2f 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c  */..}....alias L
4c30: 50 44 49 52 45 43 54 33 44 53 57 41 50 43 48 41  PDIRECT3DSWAPCHA
4c40: 49 4e 39 20 49 44 69 72 65 63 74 33 44 53 77 61  IN9 IDirect3DSwa
4c50: 70 43 68 61 69 6e 39 3b 0d 0a 0d 0a 69 6e 74 65  pChain9;....inte
4c60: 72 66 61 63 65 20 4c 50 44 49 52 45 43 54 33 44  rface LPDIRECT3D
4c70: 52 45 53 4f 55 52 43 45 39 20 3a 20 49 55 6e 6b  RESOURCE9 : IUnk
4c80: 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20 20 20 48 52 45  nown..{..    HRE
4c90: 53 55 4c 54 20 47 65 74 44 65 76 69 63 65 28 20  SULT GetDevice( 
4ca0: 4c 50 44 49 52 45 43 54 33 44 44 45 56 49 43 45  LPDIRECT3DDEVICE
4cb0: 39 2a 20 70 70 44 65 76 69 63 65 29 3b 0d 0a 20  9* ppDevice);.. 
4cc0: 20 20 20 48 52 45 53 55 4c 54 20 53 65 74 50 72     HRESULT SetPr
4cd0: 69 76 61 74 65 44 61 74 61 28 20 52 45 46 47 55  ivateData( REFGU
4ce0: 49 44 20 72 65 66 67 75 69 64 2c 20 76 6f 69 64  ID refguid, void
4cf0: 2a 20 70 44 61 74 61 2c 44 57 4f 52 44 20 53 69  * pData,DWORD Si
4d00: 7a 65 4f 66 44 61 74 61 2c 44 57 4f 52 44 20 46  zeOfData,DWORD F
4d10: 6c 61 67 73 29 3b 0d 0a 20 20 20 20 48 52 45 53  lags);..    HRES
4d20: 55 4c 54 20 47 65 74 50 72 69 76 61 74 65 44 61  ULT GetPrivateDa
4d30: 74 61 28 20 52 45 46 47 55 49 44 20 72 65 66 67  ta( REFGUID refg
4d40: 75 69 64 2c 76 6f 69 64 2a 20 70 44 61 74 61 2c  uid,void* pData,
4d50: 44 57 4f 52 44 2a 20 70 53 69 7a 65 4f 66 44 61  DWORD* pSizeOfDa
4d60: 74 61 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  ta);..    HRESUL
4d70: 54 20 46 72 65 65 50 72 69 76 61 74 65 44 61 74  T FreePrivateDat
4d80: 61 28 20 52 45 46 47 55 49 44 20 72 65 66 67 75  a( REFGUID refgu
4d90: 69 64 29 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20  id);..    DWORD 
4da0: 53 65 74 50 72 69 6f 72 69 74 79 28 44 57 4f 52  SetPriority(DWOR
4db0: 44 20 50 72 69 6f 72 69 74 79 4e 65 77 29 3b 0d  D PriorityNew);.
4dc0: 0a 20 20 20 20 44 57 4f 52 44 20 47 65 74 50 72  .    DWORD GetPr
4dd0: 69 6f 72 69 74 79 28 29 3b 0d 0a 20 20 20 20 76  iority();..    v
4de0: 6f 69 64 20 50 72 65 4c 6f 61 64 28 29 3b 0d 0a  oid PreLoad();..
4df0: 20 20 20 20 44 33 44 52 45 53 4f 55 52 43 45 54      D3DRESOURCET
4e00: 59 50 45 20 47 65 74 54 79 70 65 28 29 3b 0d 0a  YPE GetType();..
4e10: 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44 49 52  }....alias LPDIR
4e20: 45 43 54 33 44 52 45 53 4f 55 52 43 45 39 20 49  ECT3DRESOURCE9 I
4e30: 44 69 72 65 63 74 33 44 52 65 73 6f 75 72 63 65  Direct3DResource
4e40: 39 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  9;....interface 
4e50: 4c 50 44 49 52 45 43 54 33 44 56 45 52 54 45 58  LPDIRECT3DVERTEX
4e60: 44 45 43 4c 41 52 41 54 49 4f 4e 39 20 3a 20 49  DECLARATION9 : I
4e70: 55 6e 6b 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20 20 20  Unknown..{..    
4e80: 48 52 45 53 55 4c 54 20 47 65 74 44 65 76 69 63  HRESULT GetDevic
4e90: 65 28 20 4c 50 44 49 52 45 43 54 33 44 44 45 56  e( LPDIRECT3DDEV
4ea0: 49 43 45 39 2a 20 70 70 44 65 76 69 63 65 29 3b  ICE9* ppDevice);
4eb0: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65  ..    HRESULT Ge
4ec0: 74 44 65 63 6c 61 72 61 74 69 6f 6e 28 20 44 33  tDeclaration( D3
4ed0: 44 56 45 52 54 45 58 45 4c 45 4d 45 4e 54 39 2a  DVERTEXELEMENT9*
4ee0: 20 70 45 6c 65 6d 65 6e 74 2c 55 49 4e 54 2a 20   pElement,UINT* 
4ef0: 70 4e 75 6d 45 6c 65 6d 65 6e 74 73 29 3b 0d 0a  pNumElements);..
4f00: 2f 2a 0d 0a 20 20 20 20 64 65 62 75 67 20 7b 0d  /*..    debug {.
4f10: 0a 20 20 20 20 20 20 20 20 4c 50 43 57 53 54 52  .        LPCWSTR
4f20: 20 43 72 65 61 74 69 6f 6e 43 61 6c 6c 53 74 61   CreationCallSta
4f30: 63 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 2a 2f 0d 0a  ck;..    }..*/..
4f40: 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44 49 52  }....alias LPDIR
4f50: 45 43 54 33 44 56 45 52 54 45 58 44 45 43 4c 41  ECT3DVERTEXDECLA
4f60: 52 41 54 49 4f 4e 39 20 49 44 69 72 65 63 74 33  RATION9 IDirect3
4f70: 44 56 65 72 74 65 78 44 65 63 6c 61 72 61 74 69  DVertexDeclarati
4f80: 6f 6e 39 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63  on9;....interfac
4f90: 65 20 4c 50 44 49 52 45 43 54 33 44 56 45 52 54  e LPDIRECT3DVERT
4fa0: 45 58 53 48 41 44 45 52 39 20 3a 20 49 55 6e 6b  EXSHADER9 : IUnk
4fb0: 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20 20 20 48 52 45  nown..{..    HRE
4fc0: 53 55 4c 54 20 47 65 74 44 65 76 69 63 65 28 20  SULT GetDevice( 
4fd0: 4c 50 44 49 52 45 43 54 33 44 44 45 56 49 43 45  LPDIRECT3DDEVICE
4fe0: 39 20 2a 20 70 70 44 65 76 69 63 65 29 3b 0d 0a  9 * ppDevice);..
4ff0: 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 46      HRESULT GetF
5000: 75 6e 63 74 69 6f 6e 28 20 76 6f 69 64 2a 2c 55  unction( void*,U
5010: 49 4e 54 2a 20 70 53 69 7a 65 4f 66 44 61 74 61  INT* pSizeOfData
5020: 29 3b 0d 0a 2f 2a 0d 0a 20 20 20 20 64 65 62 75  );../*..    debu
5030: 67 20 7b 0d 0a 20 20 20 20 20 20 20 20 44 57 4f  g {..        DWO
5040: 52 44 20 56 65 72 73 69 6f 6e 3b 0d 0a 20 20 20  RD Version;..   
5050: 20 20 20 20 20 4c 50 43 57 53 54 52 20 43 72 65       LPCWSTR Cre
5060: 61 74 69 6f 6e 43 61 6c 6c 53 74 61 63 6b 3b 0d  ationCallStack;.
5070: 0a 20 20 20 20 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a 0d  .    }..*/..}...
5080: 0a 61 6c 69 61 73 20 4c 50 44 49 52 45 43 54 33  .alias LPDIRECT3
5090: 44 56 45 52 54 45 58 53 48 41 44 45 52 39 20 49  DVERTEXSHADER9 I
50a0: 44 69 72 65 63 74 33 44 56 65 72 74 65 78 53 68  Direct3DVertexSh
50b0: 61 64 65 72 39 3b 0d 0a 0d 0a 69 6e 74 65 72 66  ader9;....interf
50c0: 61 63 65 20 4c 50 44 49 52 45 43 54 33 44 50 49  ace LPDIRECT3DPI
50d0: 58 45 4c 53 48 41 44 45 52 39 20 3a 20 49 55 6e  XELSHADER9 : IUn
50e0: 6b 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20 20 20 48 52  known..{..    HR
50f0: 45 53 55 4c 54 20 47 65 74 44 65 76 69 63 65 28  ESULT GetDevice(
5100: 20 4c 50 44 49 52 45 43 54 33 44 44 45 56 49 43   LPDIRECT3DDEVIC
5110: 45 39 20 2a 20 70 70 44 65 76 69 63 65 29 3b 0d  E9 * ppDevice);.
5120: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
5130: 46 75 6e 63 74 69 6f 6e 28 20 76 6f 69 64 2a 2c  Function( void*,
5140: 55 49 4e 54 2a 20 70 53 69 7a 65 4f 66 44 61 74  UINT* pSizeOfDat
5150: 61 29 3b 0d 0a 2f 2a 0d 0a 20 20 20 20 64 65 62  a);../*..    deb
5160: 75 67 20 7b 0d 0a 20 20 20 20 20 20 20 20 44 57  ug {..        DW
5170: 4f 52 44 20 56 65 72 73 69 6f 6e 3b 0d 0a 20 20  ORD Version;..  
5180: 20 20 20 20 20 20 4c 50 43 57 53 54 52 20 43 72        LPCWSTR Cr
5190: 65 61 74 69 6f 6e 43 61 6c 6c 53 74 61 63 6b 3b  eationCallStack;
51a0: 0d 0a 20 20 20 20 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a  ..    }..*/..}..
51b0: 0d 0a 61 6c 69 61 73 20 4c 50 44 49 52 45 43 54  ..alias LPDIRECT
51c0: 33 44 50 49 58 45 4c 53 48 41 44 45 52 39 20 49  3DPIXELSHADER9 I
51d0: 44 69 72 65 63 74 33 44 50 69 78 65 6c 53 68 61  Direct3DPixelSha
51e0: 64 65 72 39 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61  der9;....interfa
51f0: 63 65 20 4c 50 44 49 52 45 43 54 33 44 42 41 53  ce LPDIRECT3DBAS
5200: 45 54 45 58 54 55 52 45 39 20 3a 20 4c 50 44 49  ETEXTURE9 : LPDI
5210: 52 45 43 54 33 44 52 45 53 4f 55 52 43 45 39 0d  RECT3DRESOURCE9.
5220: 0a 7b 0d 0a 20 20 20 20 44 57 4f 52 44 20 53 65  .{..    DWORD Se
5230: 74 4c 4f 44 28 44 57 4f 52 44 20 4c 4f 44 4e 65  tLOD(DWORD LODNe
5240: 77 29 3b 0d 0a 20 20 20 20 44 57 4f 52 44 20 47  w);..    DWORD G
5250: 65 74 4c 4f 44 28 29 3b 0d 0a 20 20 20 20 44 57  etLOD();..    DW
5260: 4f 52 44 20 47 65 74 4c 65 76 65 6c 43 6f 75 6e  ORD GetLevelCoun
5270: 74 28 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  t();..    HRESUL
5280: 54 20 53 65 74 41 75 74 6f 47 65 6e 46 69 6c 74  T SetAutoGenFilt
5290: 65 72 54 79 70 65 28 20 44 33 44 54 45 58 54 55  erType( D3DTEXTU
52a0: 52 45 46 49 4c 54 45 52 54 59 50 45 20 46 69 6c  REFILTERTYPE Fil
52b0: 74 65 72 54 79 70 65 29 3b 0d 0a 20 20 20 20 44  terType);..    D
52c0: 33 44 54 45 58 54 55 52 45 46 49 4c 54 45 52 54  3DTEXTUREFILTERT
52d0: 59 50 45 20 47 65 74 41 75 74 6f 47 65 6e 46 69  YPE GetAutoGenFi
52e0: 6c 74 65 72 54 79 70 65 28 29 3b 0d 0a 20 20 20  lterType();..   
52f0: 20 76 6f 69 64 20 47 65 6e 65 72 61 74 65 4d 69   void GenerateMi
5300: 70 53 75 62 4c 65 76 65 6c 73 28 29 3b 0d 0a 7d  pSubLevels();..}
5310: 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44 49 52 45  ....alias LPDIRE
5320: 43 54 33 44 42 41 53 45 54 45 58 54 55 52 45 39  CT3DBASETEXTURE9
5330: 20 49 44 69 72 65 63 74 33 44 42 61 73 65 54 65   IDirect3DBaseTe
5340: 78 74 75 72 65 39 3b 0d 0a 0d 0a 69 6e 74 65 72  xture9;....inter
5350: 66 61 63 65 20 4c 50 44 49 52 45 43 54 33 44 54  face LPDIRECT3DT
5360: 45 58 54 55 52 45 39 20 3a 20 4c 50 44 49 52 45  EXTURE9 : LPDIRE
5370: 43 54 33 44 42 41 53 45 54 45 58 54 55 52 45 39  CT3DBASETEXTURE9
5380: 0d 0a 7b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  ..{..    HRESULT
5390: 20 47 65 74 4c 65 76 65 6c 44 65 73 63 28 20 55   GetLevelDesc( U
53a0: 49 4e 54 20 4c 65 76 65 6c 2c 44 33 44 53 55 52  INT Level,D3DSUR
53b0: 46 41 43 45 5f 44 45 53 43 20 2a 70 44 65 73 63  FACE_DESC *pDesc
53c0: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
53d0: 47 65 74 53 75 72 66 61 63 65 4c 65 76 65 6c 28  GetSurfaceLevel(
53e0: 20 55 49 4e 54 20 4c 65 76 65 6c 2c 4c 50 44 49   UINT Level,LPDI
53f0: 52 45 43 54 33 44 53 55 52 46 41 43 45 39 2a 20  RECT3DSURFACE9* 
5400: 70 70 53 75 72 66 61 63 65 4c 65 76 65 6c 29 3b  ppSurfaceLevel);
5410: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 4c 6f  ..    HRESULT Lo
5420: 63 6b 52 65 63 74 28 20 55 49 4e 54 20 4c 65 76  ckRect( UINT Lev
5430: 65 6c 2c 44 33 44 4c 4f 43 4b 45 44 5f 52 45 43  el,D3DLOCKED_REC
5440: 54 2a 20 70 4c 6f 63 6b 65 64 52 65 63 74 2c 52  T* pLockedRect,R
5450: 45 43 54 2a 20 70 52 65 63 74 2c 44 57 4f 52 44  ECT* pRect,DWORD
5460: 20 46 6c 61 67 73 29 3b 0d 0a 20 20 20 20 48 52   Flags);..    HR
5470: 45 53 55 4c 54 20 55 6e 6c 6f 63 6b 52 65 63 74  ESULT UnlockRect
5480: 28 20 55 49 4e 54 20 4c 65 76 65 6c 29 3b 0d 0a  ( UINT Level);..
5490: 20 20 20 20 48 52 45 53 55 4c 54 20 41 64 64 44      HRESULT AddD
54a0: 69 72 74 79 52 65 63 74 28 52 45 43 54 2a 20 70  irtyRect(RECT* p
54b0: 44 69 72 74 79 52 65 63 74 29 3b 0d 0a 2f 2a 0d  DirtyRect);../*.
54c0: 0a 20 20 20 20 64 65 62 75 67 20 7b 0d 0a 20 20  .    debug {..  
54d0: 20 20 20 20 20 20 4c 50 43 57 53 54 52 20 4e 61        LPCWSTR Na
54e0: 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e  me;..        UIN
54f0: 54 20 57 69 64 74 68 3b 0d 0a 20 20 20 20 20 20  T Width;..      
5500: 20 20 55 49 4e 54 20 48 65 69 67 68 74 3b 0d 0a    UINT Height;..
5510: 20 20 20 20 20 20 20 20 55 49 4e 54 20 4c 65 76          UINT Lev
5520: 65 6c 73 3b 0d 0a 20 20 20 20 20 20 20 20 44 57  els;..        DW
5530: 4f 52 44 20 55 73 61 67 65 3b 0d 0a 20 20 20 20  ORD Usage;..    
5540: 20 20 20 20 44 33 44 46 4f 52 4d 41 54 20 46 6f      D3DFORMAT Fo
5550: 72 6d 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 44  rmat;..        D
5560: 33 44 50 4f 4f 4c 20 50 6f 6f 6c 3b 0d 0a 20 20  3DPOOL Pool;..  
5570: 20 20 20 20 20 20 44 57 4f 52 44 20 50 72 69 6f        DWORD Prio
5580: 72 69 74 79 3b 0d 0a 20 20 20 20 20 20 20 20 44  rity;..        D
5590: 57 4f 52 44 20 4c 4f 44 3b 0d 0a 20 20 20 20 20  WORD LOD;..     
55a0: 20 20 20 44 33 44 54 45 58 54 55 52 45 46 49 4c     D3DTEXTUREFIL
55b0: 54 45 52 54 59 50 45 20 46 69 6c 74 65 72 54 79  TERTYPE FilterTy
55c0: 70 65 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e  pe;..        UIN
55d0: 54 20 4c 6f 63 6b 43 6f 75 6e 74 3b 0d 0a 20 20  T LockCount;..  
55e0: 20 20 20 20 20 20 4c 50 43 57 53 54 52 20 43 72        LPCWSTR Cr
55f0: 65 61 74 69 6f 6e 43 61 6c 6c 53 74 61 63 6b 3b  eationCallStack;
5600: 0d 0a 20 20 20 20 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a  ..    }..*/..}..
5610: 0d 0a 61 6c 69 61 73 20 4c 50 44 49 52 45 43 54  ..alias LPDIRECT
5620: 33 44 54 45 58 54 55 52 45 39 20 49 44 69 72 65  3DTEXTURE9 IDire
5630: 63 74 33 44 54 65 78 74 75 72 65 39 3b 0d 0a 0d  ct3DTexture9;...
5640: 0a 69 6e 74 65 72 66 61 63 65 20 4c 50 44 49 52  .interface LPDIR
5650: 45 43 54 33 44 56 4f 4c 55 4d 45 54 45 58 54 55  ECT3DVOLUMETEXTU
5660: 52 45 39 20 3a 20 4c 50 44 49 52 45 43 54 33 44  RE9 : LPDIRECT3D
5670: 42 41 53 45 54 45 58 54 55 52 45 39 0d 0a 7b 0d  BASETEXTURE9..{.
5680: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
5690: 4c 65 76 65 6c 44 65 73 63 28 20 55 49 4e 54 20  LevelDesc( UINT 
56a0: 4c 65 76 65 6c 2c 44 33 44 56 4f 4c 55 4d 45 5f  Level,D3DVOLUME_
56b0: 44 45 53 43 20 2a 70 44 65 73 63 29 3b 0d 0a 20  DESC *pDesc);.. 
56c0: 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 56 6f     HRESULT GetVo
56d0: 6c 75 6d 65 4c 65 76 65 6c 28 20 55 49 4e 54 20  lumeLevel( UINT 
56e0: 4c 65 76 65 6c 2c 4c 50 44 49 52 45 43 54 33 44  Level,LPDIRECT3D
56f0: 56 4f 4c 55 4d 45 39 2a 20 70 70 56 6f 6c 75 6d  VOLUME9* ppVolum
5700: 65 4c 65 76 65 6c 29 3b 0d 0a 20 20 20 20 48 52  eLevel);..    HR
5710: 45 53 55 4c 54 20 4c 6f 63 6b 42 6f 78 28 20 55  ESULT LockBox( U
5720: 49 4e 54 20 4c 65 76 65 6c 2c 44 33 44 4c 4f 43  INT Level,D3DLOC
5730: 4b 45 44 5f 42 4f 58 2a 20 70 4c 6f 63 6b 65 64  KED_BOX* pLocked
5740: 56 6f 6c 75 6d 65 2c 20 44 33 44 42 4f 58 2a 20  Volume, D3DBOX* 
5750: 70 42 6f 78 2c 44 57 4f 52 44 20 46 6c 61 67 73  pBox,DWORD Flags
5760: 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  );..    HRESULT 
5770: 55 6e 6c 6f 63 6b 42 6f 78 28 20 55 49 4e 54 20  UnlockBox( UINT 
5780: 4c 65 76 65 6c 29 3b 0d 0a 20 20 20 20 48 52 45  Level);..    HRE
5790: 53 55 4c 54 20 41 64 64 44 69 72 74 79 42 6f 78  SULT AddDirtyBox
57a0: 28 20 44 33 44 42 4f 58 2a 20 70 44 69 72 74 79  ( D3DBOX* pDirty
57b0: 42 6f 78 29 3b 0d 0a 2f 2a 0d 0a 20 20 20 20 64  Box);../*..    d
57c0: 65 62 75 67 20 7b 0d 0a 20 20 20 20 20 20 20 20  ebug {..        
57d0: 4c 50 43 57 53 54 52 20 4e 61 6d 65 3b 0d 0a 20  LPCWSTR Name;.. 
57e0: 20 20 20 20 20 20 20 55 49 4e 54 20 57 69 64 74         UINT Widt
57f0: 68 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54  h;..        UINT
5800: 20 48 65 69 67 68 74 3b 0d 0a 20 20 20 20 20 20   Height;..      
5810: 20 20 55 49 4e 54 20 44 65 70 74 68 3b 0d 0a 20    UINT Depth;.. 
5820: 20 20 20 20 20 20 20 55 49 4e 54 20 4c 65 76 65         UINT Leve
5830: 6c 73 3b 0d 0a 20 20 20 20 20 20 20 20 44 57 4f  ls;..        DWO
5840: 52 44 20 55 73 61 67 65 3b 0d 0a 20 20 20 20 20  RD Usage;..     
5850: 20 20 20 44 33 44 46 4f 52 4d 41 54 20 46 6f 72     D3DFORMAT For
5860: 6d 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 44 33  mat;..        D3
5870: 44 50 4f 4f 4c 20 50 6f 6f 6c 3b 0d 0a 20 20 20  DPOOL Pool;..   
5880: 20 20 20 20 20 44 57 4f 52 44 20 50 72 69 6f 72       DWORD Prior
5890: 69 74 79 3b 0d 0a 20 20 20 20 20 20 20 20 44 57  ity;..        DW
58a0: 4f 52 44 20 4c 4f 44 3b 0d 0a 20 20 20 20 20 20  ORD LOD;..      
58b0: 20 20 44 33 44 54 45 58 54 55 52 45 46 49 4c 54    D3DTEXTUREFILT
58c0: 45 52 54 59 50 45 20 46 69 6c 74 65 72 54 79 70  ERTYPE FilterTyp
58d0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54  e;..        UINT
58e0: 20 4c 6f 63 6b 43 6f 75 6e 74 3b 0d 0a 20 20 20   LockCount;..   
58f0: 20 20 20 20 20 4c 50 43 57 53 54 52 20 43 72 65       LPCWSTR Cre
5900: 61 74 69 6f 6e 43 61 6c 6c 53 74 61 63 6b 3b 0d  ationCallStack;.
5910: 0a 20 20 20 20 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a 0d  .    }..*/..}...
5920: 0a 61 6c 69 61 73 20 4c 50 44 49 52 45 43 54 33  .alias LPDIRECT3
5930: 44 56 4f 4c 55 4d 45 54 45 58 54 55 52 45 39 20  DVOLUMETEXTURE9 
5940: 49 44 69 72 65 63 74 33 44 56 6f 6c 75 6d 65 54  IDirect3DVolumeT
5950: 65 78 74 75 72 65 39 3b 0d 0a 0d 0a 69 6e 74 65  exture9;....inte
5960: 72 66 61 63 65 20 4c 50 44 49 52 45 43 54 33 44  rface LPDIRECT3D
5970: 43 55 42 45 54 45 58 54 55 52 45 39 20 3a 20 4c  CUBETEXTURE9 : L
5980: 50 44 49 52 45 43 54 33 44 42 41 53 45 54 45 58  PDIRECT3DBASETEX
5990: 54 55 52 45 39 0d 0a 7b 0d 0a 20 20 20 20 48 52  TURE9..{..    HR
59a0: 45 53 55 4c 54 20 47 65 74 4c 65 76 65 6c 44 65  ESULT GetLevelDe
59b0: 73 63 28 20 55 49 4e 54 20 4c 65 76 65 6c 2c 44  sc( UINT Level,D
59c0: 33 44 53 55 52 46 41 43 45 5f 44 45 53 43 20 2a  3DSURFACE_DESC *
59d0: 70 44 65 73 63 29 3b 0d 0a 20 20 20 20 48 52 45  pDesc);..    HRE
59e0: 53 55 4c 54 20 47 65 74 43 75 62 65 4d 61 70 53  SULT GetCubeMapS
59f0: 75 72 66 61 63 65 28 20 44 33 44 43 55 42 45 4d  urface( D3DCUBEM
5a00: 41 50 5f 46 41 43 45 53 20 46 61 63 65 54 79 70  AP_FACES FaceTyp
5a10: 65 2c 55 49 4e 54 20 4c 65 76 65 6c 2c 4c 50 44  e,UINT Level,LPD
5a20: 49 52 45 43 54 33 44 53 55 52 46 41 43 45 39 2a  IRECT3DSURFACE9*
5a30: 20 70 70 43 75 62 65 4d 61 70 53 75 72 66 61 63   ppCubeMapSurfac
5a40: 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  e);..    HRESULT
5a50: 20 4c 6f 63 6b 52 65 63 74 28 20 44 33 44 43 55   LockRect( D3DCU
5a60: 42 45 4d 41 50 5f 46 41 43 45 53 20 46 61 63 65  BEMAP_FACES Face
5a70: 54 79 70 65 2c 55 49 4e 54 20 4c 65 76 65 6c 2c  Type,UINT Level,
5a80: 44 33 44 4c 4f 43 4b 45 44 5f 52 45 43 54 2a 20  D3DLOCKED_RECT* 
5a90: 70 4c 6f 63 6b 65 64 52 65 63 74 2c 20 52 45 43  pLockedRect, REC
5aa0: 54 2a 20 70 52 65 63 74 2c 44 57 4f 52 44 20 46  T* pRect,DWORD F
5ab0: 6c 61 67 73 29 3b 0d 0a 20 20 20 20 48 52 45 53  lags);..    HRES
5ac0: 55 4c 54 20 55 6e 6c 6f 63 6b 52 65 63 74 28 20  ULT UnlockRect( 
5ad0: 44 33 44 43 55 42 45 4d 41 50 5f 46 41 43 45 53  D3DCUBEMAP_FACES
5ae0: 20 46 61 63 65 54 79 70 65 2c 55 49 4e 54 20 4c   FaceType,UINT L
5af0: 65 76 65 6c 29 3b 0d 0a 20 20 20 20 48 52 45 53  evel);..    HRES
5b00: 55 4c 54 20 41 64 64 44 69 72 74 79 52 65 63 74  ULT AddDirtyRect
5b10: 28 20 44 33 44 43 55 42 45 4d 41 50 5f 46 41 43  ( D3DCUBEMAP_FAC
5b20: 45 53 20 46 61 63 65 54 79 70 65 2c 20 52 45 43  ES FaceType, REC
5b30: 54 2a 20 70 44 69 72 74 79 52 65 63 74 29 3b 0d  T* pDirtyRect);.
5b40: 0a 2f 2a 0d 0a 20 20 20 20 64 65 62 75 67 20 7b  ./*..    debug {
5b50: 0d 0a 20 20 20 20 20 20 20 20 4c 50 43 57 53 54  ..        LPCWST
5b60: 52 20 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20  R Name;..       
5b70: 20 55 49 4e 54 20 57 69 64 74 68 3b 0d 0a 20 20   UINT Width;..  
5b80: 20 20 20 20 20 20 55 49 4e 54 20 48 65 69 67 68        UINT Heigh
5b90: 74 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54  t;..        UINT
5ba0: 20 4c 65 76 65 6c 73 3b 0d 0a 20 20 20 20 20 20   Levels;..      
5bb0: 20 20 44 57 4f 52 44 20 55 73 61 67 65 3b 0d 0a    DWORD Usage;..
5bc0: 20 20 20 20 20 20 20 20 44 33 44 46 4f 52 4d 41          D3DFORMA
5bd0: 54 20 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 20  T Format;..     
5be0: 20 20 20 44 33 44 50 4f 4f 4c 20 50 6f 6f 6c 3b     D3DPOOL Pool;
5bf0: 0d 0a 20 20 20 20 20 20 20 20 44 57 4f 52 44 20  ..        DWORD 
5c00: 50 72 69 6f 72 69 74 79 3b 0d 0a 20 20 20 20 20  Priority;..     
5c10: 20 20 20 44 57 4f 52 44 20 4c 4f 44 3b 0d 0a 20     DWORD LOD;.. 
5c20: 20 20 20 20 20 20 20 44 33 44 54 45 58 54 55 52         D3DTEXTUR
5c30: 45 46 49 4c 54 45 52 54 59 50 45 20 46 69 6c 74  EFILTERTYPE Filt
5c40: 65 72 54 79 70 65 3b 0d 0a 20 20 20 20 20 20 20  erType;..       
5c50: 20 55 49 4e 54 20 4c 6f 63 6b 43 6f 75 6e 74 3b   UINT LockCount;
5c60: 0d 0a 20 20 20 20 20 20 20 20 4c 50 43 57 53 54  ..        LPCWST
5c70: 52 20 43 72 65 61 74 69 6f 6e 43 61 6c 6c 53 74  R CreationCallSt
5c80: 61 63 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 2a 2f 0d  ack;..    }..*/.
5c90: 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44 49  .}....alias LPDI
5ca0: 52 45 43 54 33 44 43 55 42 45 54 45 58 54 55 52  RECT3DCUBETEXTUR
5cb0: 45 39 20 49 44 69 72 65 63 74 33 44 43 75 62 65  E9 IDirect3DCube
5cc0: 54 65 78 74 75 72 65 39 3b 0d 0a 0d 0a 69 6e 74  Texture9;....int
5cd0: 65 72 66 61 63 65 20 4c 50 44 49 52 45 43 54 33  erface LPDIRECT3
5ce0: 44 56 45 52 54 45 58 42 55 46 46 45 52 39 20 3a  DVERTEXBUFFER9 :
5cf0: 20 4c 50 44 49 52 45 43 54 33 44 52 45 53 4f 55   LPDIRECT3DRESOU
5d00: 52 43 45 39 0d 0a 7b 0d 0a 20 20 20 20 48 52 45  RCE9..{..    HRE
5d10: 53 55 4c 54 20 4c 6f 63 6b 28 20 55 49 4e 54 20  SULT Lock( UINT 
5d20: 4f 66 66 73 65 74 54 6f 4c 6f 63 6b 2c 55 49 4e  OffsetToLock,UIN
5d30: 54 20 53 69 7a 65 54 6f 4c 6f 63 6b 2c 76 6f 69  T SizeToLock,voi
5d40: 64 2a 2a 20 70 70 62 44 61 74 61 2c 44 57 4f 52  d** ppbData,DWOR
5d50: 44 20 46 6c 61 67 73 29 3b 0d 0a 20 20 20 20 48  D Flags);..    H
5d60: 52 45 53 55 4c 54 20 55 6e 6c 6f 63 6b 28 29 3b  RESULT Unlock();
5d70: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65  ..    HRESULT Ge
5d80: 74 44 65 73 63 28 20 44 33 44 56 45 52 54 45 58  tDesc( D3DVERTEX
5d90: 42 55 46 46 45 52 5f 44 45 53 43 20 2a 70 44 65  BUFFER_DESC *pDe
5da0: 73 63 29 3b 0d 0a 2f 2a 0d 0a 20 20 20 20 64 65  sc);../*..    de
5db0: 62 75 67 20 7b 0d 0a 20 20 20 20 20 20 20 20 4c  bug {..        L
5dc0: 50 43 57 53 54 52 20 4e 61 6d 65 3b 0d 0a 20 20  PCWSTR Name;..  
5dd0: 20 20 20 20 20 20 55 49 4e 54 20 4c 65 6e 67 74        UINT Lengt
5de0: 68 3b 0d 0a 20 20 20 20 20 20 20 20 44 57 4f 52  h;..        DWOR
5df0: 44 20 55 73 61 67 65 3b 0d 0a 20 20 20 20 20 20  D Usage;..      
5e00: 20 20 44 57 4f 52 44 20 46 56 46 3b 0d 0a 20 20    DWORD FVF;..  
5e10: 20 20 20 20 20 20 44 33 44 50 4f 4f 4c 20 50 6f        D3DPOOL Po
5e20: 6f 6c 3b 0d 0a 20 20 20 20 20 20 20 20 44 57 4f  ol;..        DWO
5e30: 52 44 20 50 72 69 6f 72 69 74 79 3b 0d 0a 20 20  RD Priority;..  
5e40: 20 20 20 20 20 20 55 49 4e 54 20 4c 6f 63 6b 43        UINT LockC
5e50: 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 4c  ount;..        L
5e60: 50 43 57 53 54 52 20 43 72 65 61 74 69 6f 6e 43  PCWSTR CreationC
5e70: 61 6c 6c 53 74 61 63 6b 3b 0d 0a 20 20 20 20 7d  allStack;..    }
5e80: 0d 0a 2a 2f 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73  ..*/..}....alias
5e90: 20 4c 50 44 49 52 45 43 54 33 44 56 45 52 54 45   LPDIRECT3DVERTE
5ea0: 58 42 55 46 46 45 52 39 20 49 44 69 72 65 63 74  XBUFFER9 IDirect
5eb0: 33 44 56 65 72 74 65 78 42 75 66 66 65 72 39 3b  3DVertexBuffer9;
5ec0: 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 4c 50  ....interface LP
5ed0: 44 49 52 45 43 54 33 44 49 4e 44 45 58 42 55 46  DIRECT3DINDEXBUF
5ee0: 46 45 52 39 20 3a 20 4c 50 44 49 52 45 43 54 33  FER9 : LPDIRECT3
5ef0: 44 52 45 53 4f 55 52 43 45 39 0d 0a 7b 0d 0a 20  DRESOURCE9..{.. 
5f00: 20 20 20 48 52 45 53 55 4c 54 20 4c 6f 63 6b 28     HRESULT Lock(
5f10: 20 55 49 4e 54 20 4f 66 66 73 65 74 54 6f 4c 6f   UINT OffsetToLo
5f20: 63 6b 2c 55 49 4e 54 20 53 69 7a 65 54 6f 4c 6f  ck,UINT SizeToLo
5f30: 63 6b 2c 76 6f 69 64 2a 2a 20 70 70 62 44 61 74  ck,void** ppbDat
5f40: 61 2c 44 57 4f 52 44 20 46 6c 61 67 73 29 3b 0d  a,DWORD Flags);.
5f50: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 55 6e 6c  .    HRESULT Unl
5f60: 6f 63 6b 28 29 3b 0d 0a 20 20 20 20 48 52 45 53  ock();..    HRES
5f70: 55 4c 54 20 47 65 74 44 65 73 63 28 20 44 33 44  ULT GetDesc( D3D
5f80: 49 4e 44 45 58 42 55 46 46 45 52 5f 44 45 53 43  INDEXBUFFER_DESC
5f90: 20 2a 70 44 65 73 63 29 3b 0d 0a 2f 2a 0d 0a 20   *pDesc);../*.. 
5fa0: 20 20 20 64 65 62 75 67 20 7b 0d 0a 20 20 20 20     debug {..    
5fb0: 20 20 20 20 4c 50 43 57 53 54 52 20 4e 61 6d 65      LPCWSTR Name
5fc0: 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54 20  ;..        UINT 
5fd0: 4c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20  Length;..       
5fe0: 20 44 57 4f 52 44 20 55 73 61 67 65 3b 0d 0a 20   DWORD Usage;.. 
5ff0: 20 20 20 20 20 20 20 44 33 44 46 4f 52 4d 41 54         D3DFORMAT
6000: 20 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 20 20   Format;..      
6010: 20 20 44 33 44 50 4f 4f 4c 20 50 6f 6f 6c 3b 0d    D3DPOOL Pool;.
6020: 0a 20 20 20 20 20 20 20 20 44 57 4f 52 44 20 50  .        DWORD P
6030: 72 69 6f 72 69 74 79 3b 0d 0a 20 20 20 20 20 20  riority;..      
6040: 20 20 55 49 4e 54 20 4c 6f 63 6b 43 6f 75 6e 74    UINT LockCount
6050: 3b 0d 0a 20 20 20 20 20 20 20 20 4c 50 43 57 53  ;..        LPCWS
6060: 54 52 20 43 72 65 61 74 69 6f 6e 43 61 6c 6c 53  TR CreationCallS
6070: 74 61 63 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 2a 2f  tack;..    }..*/
6080: 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44  ..}....alias LPD
6090: 49 52 45 43 54 33 44 49 4e 44 45 58 42 55 46 46  IRECT3DINDEXBUFF
60a0: 45 52 39 20 49 44 69 72 65 63 74 33 44 49 6e 64  ER9 IDirect3DInd
60b0: 65 78 42 75 66 66 65 72 39 3b 0d 0a 0d 0a 69 6e  exBuffer9;....in
60c0: 74 65 72 66 61 63 65 20 4c 50 44 49 52 45 43 54  terface LPDIRECT
60d0: 33 44 53 55 52 46 41 43 45 39 20 3a 20 4c 50 44  3DSURFACE9 : LPD
60e0: 49 52 45 43 54 33 44 52 45 53 4f 55 52 43 45 39  IRECT3DRESOURCE9
60f0: 0d 0a 7b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  ..{..    HRESULT
6100: 20 47 65 74 43 6f 6e 74 61 69 6e 65 72 28 20 52   GetContainer( R
6110: 45 46 49 49 44 20 72 69 69 64 2c 76 6f 69 64 2a  EFIID riid,void*
6120: 2a 20 70 70 43 6f 6e 74 61 69 6e 65 72 29 3b 0d  * ppContainer);.
6130: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74  .    HRESULT Get
6140: 44 65 73 63 28 20 44 33 44 53 55 52 46 41 43 45  Desc( D3DSURFACE
6150: 5f 44 45 53 43 20 2a 70 44 65 73 63 29 3b 0d 0a  _DESC *pDesc);..
6160: 20 20 20 20 48 52 45 53 55 4c 54 20 4c 6f 63 6b      HRESULT Lock
6170: 52 65 63 74 28 20 44 33 44 4c 4f 43 4b 45 44 5f  Rect( D3DLOCKED_
6180: 52 45 43 54 2a 20 70 4c 6f 63 6b 65 64 52 65 63  RECT* pLockedRec
6190: 74 2c 20 52 45 43 54 2a 20 70 52 65 63 74 2c 44  t, RECT* pRect,D
61a0: 57 4f 52 44 20 46 6c 61 67 73 29 3b 0d 0a 20 20  WORD Flags);..  
61b0: 20 20 48 52 45 53 55 4c 54 20 55 6e 6c 6f 63 6b    HRESULT Unlock
61c0: 52 65 63 74 28 29 3b 0d 0a 20 20 20 20 48 52 45  Rect();..    HRE
61d0: 53 55 4c 54 20 47 65 74 44 43 28 20 48 44 43 20  SULT GetDC( HDC 
61e0: 2a 70 68 64 63 29 3b 0d 0a 20 20 20 20 48 52 45  *phdc);..    HRE
61f0: 53 55 4c 54 20 52 65 6c 65 61 73 65 44 43 28 20  SULT ReleaseDC( 
6200: 48 44 43 20 68 64 63 29 3b 0d 0a 2f 2a 0d 0a 20  HDC hdc);../*.. 
6210: 20 20 20 64 65 62 75 67 20 7b 0d 0a 20 20 20 20     debug {..    
6220: 20 20 20 20 4c 50 43 57 53 54 52 20 4e 61 6d 65      LPCWSTR Name
6230: 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54 20  ;..        UINT 
6240: 57 69 64 74 68 3b 0d 0a 20 20 20 20 20 20 20 20  Width;..        
6250: 55 49 4e 54 20 48 65 69 67 68 74 3b 0d 0a 20 20  UINT Height;..  
6260: 20 20 20 20 20 20 44 57 4f 52 44 20 55 73 61 67        DWORD Usag
6270: 65 3b 0d 0a 20 20 20 20 20 20 20 20 44 33 44 46  e;..        D3DF
6280: 4f 52 4d 41 54 20 46 6f 72 6d 61 74 3b 0d 0a 20  ORMAT Format;.. 
6290: 20 20 20 20 20 20 20 44 33 44 50 4f 4f 4c 20 50         D3DPOOL P
62a0: 6f 6f 6c 3b 0d 0a 20 20 20 20 20 20 20 20 44 33  ool;..        D3
62b0: 44 4d 55 4c 54 49 53 41 4d 50 4c 45 5f 54 59 50  DMULTISAMPLE_TYP
62c0: 45 20 4d 75 6c 74 69 53 61 6d 70 6c 65 54 79 70  E MultiSampleTyp
62d0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 44 57 4f 52  e;..        DWOR
62e0: 44 20 4d 75 6c 74 69 53 61 6d 70 6c 65 51 75 61  D MultiSampleQua
62f0: 6c 69 74 79 3b 0d 0a 20 20 20 20 20 20 20 20 44  lity;..        D
6300: 57 4f 52 44 20 50 72 69 6f 72 69 74 79 3b 0d 0a  WORD Priority;..
6310: 20 20 20 20 20 20 20 20 55 49 4e 54 20 4c 6f 63          UINT Loc
6320: 6b 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 20  kCount;..       
6330: 20 55 49 4e 54 20 44 43 43 6f 75 6e 74 3b 0d 0a   UINT DCCount;..
6340: 20 20 20 20 20 20 20 20 4c 50 43 57 53 54 52 20          LPCWSTR 
6350: 43 72 65 61 74 69 6f 6e 43 61 6c 6c 53 74 61 63  CreationCallStac
6360: 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 2a 2f 0d 0a 7d  k;..    }..*/..}
6370: 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44 49 52 45  ....alias LPDIRE
6380: 43 54 33 44 53 55 52 46 41 43 45 39 20 49 44 69  CT3DSURFACE9 IDi
6390: 72 65 63 74 33 44 53 75 72 66 61 63 65 39 3b 0d  rect3DSurface9;.
63a0: 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 4c 50 44  ...interface LPD
63b0: 49 52 45 43 54 33 44 56 4f 4c 55 4d 45 39 20 3a  IRECT3DVOLUME9 :
63c0: 20 49 55 6e 6b 6e 6f 77 6e 0d 0a 7b 0d 0a 20 20   IUnknown..{..  
63d0: 20 20 48 52 45 53 55 4c 54 20 47 65 74 44 65 76    HRESULT GetDev
63e0: 69 63 65 28 20 4c 50 44 49 52 45 43 54 33 44 44  ice( LPDIRECT3DD
63f0: 45 56 49 43 45 39 20 2a 20 70 70 44 65 76 69 63  EVICE9 * ppDevic
6400: 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  e);..    HRESULT
6410: 20 53 65 74 50 72 69 76 61 74 65 44 61 74 61 28   SetPrivateData(
6420: 20 52 45 46 47 55 49 44 20 72 65 66 67 75 69 64   REFGUID refguid
6430: 2c 20 76 6f 69 64 2a 20 70 44 61 74 61 2c 44 57  , void* pData,DW
6440: 4f 52 44 20 53 69 7a 65 4f 66 44 61 74 61 2c 44  ORD SizeOfData,D
6450: 57 4f 52 44 20 46 6c 61 67 73 29 3b 0d 0a 20 20  WORD Flags);..  
6460: 20 20 48 52 45 53 55 4c 54 20 47 65 74 50 72 69    HRESULT GetPri
6470: 76 61 74 65 44 61 74 61 28 20 52 45 46 47 55 49  vateData( REFGUI
6480: 44 20 72 65 66 67 75 69 64 2c 76 6f 69 64 2a 20  D refguid,void* 
6490: 70 44 61 74 61 2c 44 57 4f 52 44 2a 20 70 53 69  pData,DWORD* pSi
64a0: 7a 65 4f 66 44 61 74 61 29 3b 0d 0a 20 20 20 20  zeOfData);..    
64b0: 48 52 45 53 55 4c 54 20 46 72 65 65 50 72 69 76  HRESULT FreePriv
64c0: 61 74 65 44 61 74 61 28 20 52 45 46 47 55 49 44  ateData( REFGUID
64d0: 20 72 65 66 67 75 69 64 29 3b 0d 0a 20 20 20 20   refguid);..    
64e0: 48 52 45 53 55 4c 54 20 47 65 74 43 6f 6e 74 61  HRESULT GetConta
64f0: 69 6e 65 72 28 20 52 45 46 49 49 44 20 72 69 69  iner( REFIID rii
6500: 64 2c 76 6f 69 64 2a 2a 20 70 70 43 6f 6e 74 61  d,void** ppConta
6510: 69 6e 65 72 29 3b 0d 0a 20 20 20 20 48 52 45 53  iner);..    HRES
6520: 55 4c 54 20 47 65 74 44 65 73 63 28 20 44 33 44  ULT GetDesc( D3D
6530: 56 4f 4c 55 4d 45 5f 44 45 53 43 20 2a 70 44 65  VOLUME_DESC *pDe
6540: 73 63 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  sc);..    HRESUL
6550: 54 20 4c 6f 63 6b 42 6f 78 28 20 44 33 44 4c 4f  T LockBox( D3DLO
6560: 43 4b 45 44 5f 42 4f 58 20 2a 20 70 4c 6f 63 6b  CKED_BOX * pLock
6570: 65 64 56 6f 6c 75 6d 65 2c 20 44 33 44 42 4f 58  edVolume, D3DBOX
6580: 2a 20 70 42 6f 78 2c 44 57 4f 52 44 20 46 6c 61  * pBox,DWORD Fla
6590: 67 73 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  gs);..    HRESUL
65a0: 54 20 55 6e 6c 6f 63 6b 42 6f 78 28 29 3b 0d 0a  T UnlockBox();..
65b0: 2f 2a 0d 0a 20 20 20 20 64 65 62 75 67 20 7b 0d  /*..    debug {.
65c0: 0a 20 20 20 20 20 20 20 20 4c 50 43 57 53 54 52  .        LPCWSTR
65d0: 20 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20   Name;..        
65e0: 55 49 4e 54 20 57 69 64 74 68 3b 0d 0a 20 20 20  UINT Width;..   
65f0: 20 20 20 20 20 55 49 4e 54 20 48 65 69 67 68 74       UINT Height
6600: 3b 0d 0a 20 20 20 20 20 20 20 20 55 49 4e 54 20  ;..        UINT 
6610: 44 65 70 74 68 3b 0d 0a 20 20 20 20 20 20 20 20  Depth;..        
6620: 44 57 4f 52 44 20 55 73 61 67 65 3b 0d 0a 20 20  DWORD Usage;..  
6630: 20 20 20 20 20 20 44 33 44 46 4f 52 4d 41 54 20        D3DFORMAT 
6640: 46 6f 72 6d 61 74 3b 0d 0a 20 20 20 20 20 20 20  Format;..       
6650: 20 44 33 44 50 4f 4f 4c 20 50 6f 6f 6c 3b 0d 0a   D3DPOOL Pool;..
6660: 20 20 20 20 20 20 20 20 55 49 4e 54 20 4c 6f 63          UINT Loc
6670: 6b 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 20  kCount;..       
6680: 20 4c 50 43 57 53 54 52 20 43 72 65 61 74 69 6f   LPCWSTR Creatio
6690: 6e 43 61 6c 6c 53 74 61 63 6b 3b 0d 0a 20 20 20  nCallStack;..   
66a0: 20 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a 0d 0a 61 6c 69   }..*/..}....ali
66b0: 61 73 20 4c 50 44 49 52 45 43 54 33 44 56 4f 4c  as LPDIRECT3DVOL
66c0: 55 4d 45 39 20 49 44 69 72 65 63 74 33 44 56 6f  UME9 IDirect3DVo
66d0: 6c 75 6d 65 39 3b 0d 0a 0d 0a 69 6e 74 65 72 66  lume9;....interf
66e0: 61 63 65 20 4c 50 44 49 52 45 43 54 33 44 51 55  ace LPDIRECT3DQU
66f0: 45 52 59 39 20 3a 20 49 55 6e 6b 6e 6f 77 6e 0d  ERY9 : IUnknown.
6700: 0a 7b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20  .{..    HRESULT 
6710: 47 65 74 44 65 76 69 63 65 28 20 4c 50 44 49 52  GetDevice( LPDIR
6720: 45 43 54 33 44 44 45 56 49 43 45 39 2a 20 70 70  ECT3DDEVICE9* pp
6730: 44 65 76 69 63 65 29 3b 0d 0a 20 20 20 20 44 33  Device);..    D3
6740: 44 51 55 45 52 59 54 59 50 45 20 47 65 74 54 79  DQUERYTYPE GetTy
6750: 70 65 28 29 3b 0d 0a 20 20 20 20 44 57 4f 52 44  pe();..    DWORD
6760: 20 47 65 74 44 61 74 61 53 69 7a 65 28 29 3b 0d   GetDataSize();.
6770: 0a 20 20 20 20 48 52 45 53 55 4c 54 20 49 73 73  .    HRESULT Iss
6780: 75 65 28 20 44 57 4f 52 44 20 64 77 49 73 73 75  ue( DWORD dwIssu
6790: 65 46 6c 61 67 73 29 3b 0d 0a 20 20 20 20 48 52  eFlags);..    HR
67a0: 45 53 55 4c 54 20 47 65 74 44 61 74 61 28 20 76  ESULT GetData( v
67b0: 6f 69 64 2a 20 70 44 61 74 61 2c 44 57 4f 52 44  oid* pData,DWORD
67c0: 20 64 77 53 69 7a 65 2c 44 57 4f 52 44 20 64 77   dwSize,DWORD dw
67d0: 47 65 74 44 61 74 61 46 6c 61 67 73 29 3b 0d 0a  GetDataFlags);..
67e0: 2f 2a 0d 0a 20 20 20 20 64 65 62 75 67 20 7b 0d  /*..    debug {.
67f0: 0a 20 20 20 20 20 20 20 20 44 33 44 51 55 45 52  .        D3DQUER
6800: 59 54 59 50 45 20 54 79 70 65 3b 0d 0a 20 20 20  YTYPE Type;..   
6810: 20 20 20 20 20 44 57 4f 52 44 20 44 61 74 61 53       DWORD DataS
6820: 69 7a 65 3b 0d 0a 20 20 20 20 20 20 20 20 4c 50  ize;..        LP
6830: 43 57 53 54 52 20 43 72 65 61 74 69 6f 6e 43 61  CWSTR CreationCa
6840: 6c 6c 53 74 61 63 6b 3b 0d 0a 20 20 20 20 7d 0d  llStack;..    }.
6850: 0a 2a 2f 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20  .*/..}....alias 
6860: 4c 50 44 49 52 45 43 54 33 44 51 55 45 52 59 39  LPDIRECT3DQUERY9
6870: 20 49 44 69 72 65 63 74 33 44 51 75 65 72 79 39   IDirect3DQuery9
6880: 3b 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ;..../**********
6890: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
68a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
68b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
68c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
68d0: 2a 2a 0d 0a 20 2a 20 46 6c 61 67 73 20 66 6f 72  **.. * Flags for
68e0: 20 53 65 74 50 72 69 76 61 74 65 44 61 74 61 20   SetPrivateData 
68f0: 6d 65 74 68 6f 64 20 6f 6e 20 61 6c 6c 20 44 33  method on all D3
6900: 44 39 20 69 6e 74 65 72 66 61 63 65 73 0d 0a 20  D9 interfaces.. 
6910: 2a 0d 0a 20 2a 20 54 68 65 20 70 61 73 73 65 64  *.. * The passed
6920: 20 70 6f 69 6e 74 65 72 20 69 73 20 61 6e 20 49   pointer is an I
6930: 55 6e 6b 6e 6f 77 6e 20 70 74 72 2e 20 54 68 65  Unknown ptr. The
6940: 20 53 69 7a 65 4f 66 44 61 74 61 20 61 72 67 75   SizeOfData argu
6950: 6d 65 6e 74 20 74 6f 20 53 65 74 50 72 69 76 61  ment to SetPriva
6960: 74 65 44 61 74 61 0d 0a 20 2a 20 6d 75 73 74 20  teData.. * must 
6970: 62 65 20 73 65 74 20 74 6f 20 73 69 7a 65 6f 66  be set to sizeof
6980: 28 49 55 6e 6b 6e 6f 77 6e 2a 29 2e 20 44 69 72  (IUnknown*). Dir
6990: 65 63 74 33 44 20 77 69 6c 6c 20 63 61 6c 6c 20  ect3D will call 
69a0: 41 64 64 52 65 66 20 74 68 72 6f 75 67 68 20 74  AddRef through t
69b0: 68 69 73 0d 0a 20 2a 20 70 6f 69 6e 74 65 72 20  his.. * pointer 
69c0: 61 6e 64 20 52 65 6c 65 61 73 65 20 77 68 65 6e  and Release when
69d0: 20 74 68 65 20 70 72 69 76 61 74 65 20 64 61 74   the private dat
69e0: 61 20 69 73 20 64 65 73 74 72 6f 79 65 64 2e 20  a is destroyed. 
69f0: 54 68 65 20 64 61 74 61 20 77 69 6c 6c 20 62 65  The data will be
6a00: 0d 0a 20 2a 20 64 65 73 74 72 6f 79 65 64 20 77  .. * destroyed w
6a10: 68 65 6e 20 61 6e 6f 74 68 65 72 20 53 65 74 50  hen another SetP
6a20: 72 69 76 61 74 65 44 61 74 61 20 77 69 74 68 20  rivateData with 
6a30: 74 68 65 20 73 61 6d 65 20 47 55 49 44 20 69 73  the same GUID is
6a40: 20 73 65 74 2c 20 77 68 65 6e 0d 0a 20 2a 20 46   set, when.. * F
6a50: 72 65 65 50 72 69 76 61 74 65 44 61 74 61 20 69  reePrivateData i
6a60: 73 20 63 61 6c 6c 65 64 2c 20 6f 72 20 77 68 65  s called, or whe
6a70: 6e 20 74 68 65 20 44 33 44 39 20 6f 62 6a 65 63  n the D3D9 objec
6a80: 74 20 69 73 20 66 72 65 65 64 2e 0d 0a 20 2a 2a  t is freed... **
6a90: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6aa0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6ab0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6ac0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6ad0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 63 6f 6e  **********/..con
6ae0: 73 74 20 44 33 44 53 50 44 5f 49 55 4e 4b 4e 4f  st D3DSPD_IUNKNO
6af0: 57 4e 20 3d 20 30 78 30 30 30 30 30 30 30 31 4c  WN = 0x00000001L
6b00: 3b 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ;..../**********
6b10: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6b20: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6b30: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6b40: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6b50: 2a 2a 0d 0a 20 2a 0d 0a 20 2a 20 46 6c 61 67 73  **.. *.. * Flags
6b60: 20 66 6f 72 20 49 44 69 72 65 63 74 33 44 39 3a   for IDirect3D9:
6b70: 3a 43 72 65 61 74 65 44 65 76 69 63 65 27 73 20  :CreateDevice's 
6b80: 42 65 68 61 76 69 6f 72 46 6c 61 67 73 0d 0a 20  BehaviorFlags.. 
6b90: 2a 0d 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  *.. ************
6ba0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6bb0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6bc0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6bd0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
6be0: 2f 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 43 52  /....const D3DCR
6bf0: 45 41 54 45 5f 46 50 55 5f 50 52 45 53 45 52 56  EATE_FPU_PRESERV
6c00: 45 20 3d 20 30 78 30 30 30 30 30 30 30 32 4c 3b  E = 0x00000002L;
6c10: 0d 0a 63 6f 6e 73 74 20 44 33 44 43 52 45 41 54  ..const D3DCREAT
6c20: 45 5f 4d 55 4c 54 49 54 48 52 45 41 44 45 44 20  E_MULTITHREADED 
6c30: 3d 20 30 78 30 30 30 30 30 30 30 34 4c 3b 0d 0a  = 0x00000004L;..
6c40: 0d 0a 63 6f 6e 73 74 20 44 33 44 43 52 45 41 54  ..const D3DCREAT
6c50: 45 5f 50 55 52 45 44 45 56 49 43 45 20 3d 20 30  E_PUREDEVICE = 0
6c60: 78 30 30 30 30 30 30 31 30 4c 3b 0d 0a 63 6f 6e  x00000010L;..con
6c70: 73 74 20 44 33 44 43 52 45 41 54 45 5f 53 4f 46  st D3DCREATE_SOF
6c80: 54 57 41 52 45 5f 56 45 52 54 45 58 50 52 4f 43  TWARE_VERTEXPROC
6c90: 45 53 53 49 4e 47 20 3d 20 30 78 30 30 30 30 30  ESSING = 0x00000
6ca0: 30 32 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44  020L;..const D3D
6cb0: 43 52 45 41 54 45 5f 48 41 52 44 57 41 52 45 5f  CREATE_HARDWARE_
6cc0: 56 45 52 54 45 58 50 52 4f 43 45 53 53 49 4e 47  VERTEXPROCESSING
6cd0: 20 3d 20 30 78 30 30 30 30 30 30 34 30 4c 3b 0d   = 0x00000040L;.
6ce0: 0a 63 6f 6e 73 74 20 44 33 44 43 52 45 41 54 45  .const D3DCREATE
6cf0: 5f 4d 49 58 45 44 5f 56 45 52 54 45 58 50 52 4f  _MIXED_VERTEXPRO
6d00: 43 45 53 53 49 4e 47 20 3d 20 30 78 30 30 30 30  CESSING = 0x0000
6d10: 30 30 38 30 4c 3b 0d 0a 0d 0a 63 6f 6e 73 74 20  0080L;....const 
6d20: 44 33 44 43 52 45 41 54 45 5f 44 49 53 41 42 4c  D3DCREATE_DISABL
6d30: 45 5f 44 52 49 56 45 52 5f 4d 41 4e 41 47 45 4d  E_DRIVER_MANAGEM
6d40: 45 4e 54 20 3d 20 30 78 30 30 30 30 30 31 30 30  ENT = 0x00000100
6d50: 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 43 52 45  L;..const D3DCRE
6d60: 41 54 45 5f 41 44 41 50 54 45 52 47 52 4f 55 50  ATE_ADAPTERGROUP
6d70: 5f 44 45 56 49 43 45 20 3d 20 30 78 30 30 30 30  _DEVICE = 0x0000
6d80: 30 32 30 30 4c 3b 0d 0a 63 6f 6e 73 74 20 44 33  0200L;..const D3
6d90: 44 43 52 45 41 54 45 5f 44 49 53 41 42 4c 45 5f  DCREATE_DISABLE_
6da0: 44 52 49 56 45 52 5f 4d 41 4e 41 47 45 4d 45 4e  DRIVER_MANAGEMEN
6db0: 54 5f 45 58 20 3d 20 30 78 30 30 30 30 30 34 30  T_EX = 0x0000040
6dc0: 30 4c 3b 0d 0a 0d 0a 2f 2f 20 54 68 69 73 20 66  0L;....// This f
6dd0: 6c 61 67 20 63 61 75 73 65 73 20 74 68 65 20 44  lag causes the D
6de0: 33 44 20 72 75 6e 74 69 6d 65 20 6e 6f 74 20 74  3D runtime not t
6df0: 6f 20 61 6c 74 65 72 20 74 68 65 20 66 6f 63 75  o alter the focu
6e00: 73 0d 0a 2f 2f 20 77 69 6e 64 6f 77 20 69 6e 20  s..// window in 
6e10: 61 6e 79 20 77 61 79 2e 20 55 73 65 20 77 69 74  any way. Use wit
6e20: 68 20 63 61 75 74 69 6f 6e 2d 20 74 68 65 20 62  h caution- the b
6e30: 75 72 64 65 6e 20 6f 66 20 73 75 70 70 6f 72 74  urden of support
6e40: 69 6e 67 0d 0a 2f 2f 20 66 6f 63 75 73 20 6d 61  ing..// focus ma
6e50: 6e 61 67 65 6d 65 6e 74 20 65 76 65 6e 74 73 20  nagement events 
6e60: 28 61 6c 74 2d 74 61 62 2c 20 65 74 63 2e 29 20  (alt-tab, etc.) 
6e70: 66 61 6c 6c 73 20 6f 6e 20 74 68 65 0d 0a 2f 2f  falls on the..//
6e80: 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 6e   application, an
6e90: 64 20 61 70 70 72 6f 70 72 69 61 74 65 20 72 65  d appropriate re
6ea0: 73 70 6f 6e 73 65 73 20 28 73 77 69 74 63 68 69  sponses (switchi
6eb0: 6e 67 20 64 69 73 70 6c 61 79 0d 0a 2f 2f 20 6d  ng display..// m
6ec0: 6f 64 65 2c 20 65 74 63 2e 29 20 73 68 6f 75 6c  ode, etc.) shoul
6ed0: 64 20 62 65 20 63 6f 64 65 64 2e 0d 0a 63 6f 6e  d be coded...con
6ee0: 73 74 20 44 33 44 43 52 45 41 54 45 5f 4e 4f 57  st D3DCREATE_NOW
6ef0: 49 4e 44 4f 57 43 48 41 4e 47 45 53 20 3d 20 30  INDOWCHANGES = 0
6f00: 78 30 30 30 30 30 38 30 30 4c 3b 0d 0a 0d 0a 2f  x00000800L;..../
6f10: 2f 20 44 69 73 61 62 6c 65 20 6d 75 6c 74 69 74  / Disable multit
6f20: 68 72 65 61 64 69 6e 67 20 66 6f 72 20 73 6f 66  hreading for sof
6f30: 74 77 61 72 65 20 76 65 72 74 65 78 20 70 72 6f  tware vertex pro
6f40: 63 65 73 73 69 6e 67 0d 0a 63 6f 6e 73 74 20 44  cessing..const D
6f50: 33 44 43 52 45 41 54 45 5f 44 49 53 41 42 4c 45  3DCREATE_DISABLE
6f60: 5f 50 53 47 50 5f 54 48 52 45 41 44 49 4e 47 20  _PSGP_THREADING 
6f70: 3d 20 30 78 30 30 30 30 32 30 30 30 4c 3b 0d 0a  = 0x00002000L;..
6f80: 2f 2f 20 54 68 69 73 20 66 6c 61 67 20 65 6e 61  // This flag ena
6f90: 62 6c 65 73 20 70 72 65 73 65 6e 74 20 73 74 61  bles present sta
6fa0: 74 69 73 74 69 63 73 20 6f 6e 20 64 65 76 69 63  tistics on devic
6fb0: 65 2e 0d 0a 63 6f 6e 73 74 20 44 33 44 43 52 45  e...const D3DCRE
6fc0: 41 54 45 5f 45 4e 41 42 4c 45 5f 50 52 45 53 45  ATE_ENABLE_PRESE
6fd0: 4e 54 53 54 41 54 53 20 3d 20 30 78 30 30 30 30  NTSTATS = 0x0000
6fe0: 34 30 30 30 4c 3b 0d 0a 2f 2f 20 54 68 69 73 20  4000L;..// This 
6ff0: 66 6c 61 67 20 64 69 73 61 62 6c 65 73 20 70 72  flag disables pr
7000: 69 6e 74 73 63 72 65 65 6e 20 73 75 70 70 6f 72  intscreen suppor
7010: 74 20 69 6e 20 74 68 65 20 72 75 6e 74 69 6d 65  t in the runtime
7020: 20 66 6f 72 20 74 68 69 73 20 64 65 76 69 63 65   for this device
7030: 0d 0a 63 6f 6e 73 74 20 44 33 44 43 52 45 41 54  ..const D3DCREAT
7040: 45 5f 44 49 53 41 42 4c 45 5f 50 52 49 4e 54 53  E_DISABLE_PRINTS
7050: 43 52 45 45 4e 20 3d 20 30 78 30 30 30 30 38 30  CREEN = 0x000080
7060: 30 30 4c 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33  00L;....const D3
7070: 44 43 52 45 41 54 45 5f 53 43 52 45 45 4e 53 41  DCREATE_SCREENSA
7080: 56 45 52 20 3d 20 30 78 31 30 30 30 30 30 30 30  VER = 0x10000000
7090: 4c 3b 0d 0a 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a  L;....../*******
70a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
70b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
70c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
70d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
70e0: 2a 2a 2a 2a 2a 0d 0a 20 2a 0d 0a 20 2a 20 50 61  *****.. *.. * Pa
70f0: 72 61 6d 65 74 65 72 20 66 6f 72 20 49 44 69 72  rameter for IDir
7100: 65 63 74 33 44 39 3a 3a 43 72 65 61 74 65 44 65  ect3D9::CreateDe
7110: 76 69 63 65 27 73 20 41 64 61 70 74 65 72 20 61  vice's Adapter a
7120: 72 67 75 6d 65 6e 74 0d 0a 20 2a 0d 0a 20 2a 2a  rgument.. *.. **
7130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7170: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a 63  **********/....c
7180: 6f 6e 73 74 20 44 33 44 41 44 41 50 54 45 52 5f  onst D3DADAPTER_
7190: 44 45 46 41 55 4c 54 20 3d 20 30 3b 0d 0a 0d 0a  DEFAULT = 0;....
71a0: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
71b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
71c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
71d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
71e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 20  *************.. 
71f0: 2a 0d 0a 20 2a 20 46 6c 61 67 73 20 66 6f 72 20  *.. * Flags for 
7200: 49 44 69 72 65 63 74 33 44 39 3a 3a 45 6e 75 6d  IDirect3D9::Enum
7210: 41 64 61 70 74 65 72 73 0d 0a 20 2a 0d 0a 20 2a  Adapters.. *.. *
7220: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7230: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7240: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7250: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a  ***********/....
7270: 2f 2a 0d 0a 20 2a 20 54 68 65 20 44 33 44 45 4e  /*.. * The D3DEN
7280: 55 4d 5f 57 48 51 4c 5f 4c 45 56 45 4c 20 76 61  UM_WHQL_LEVEL va
7290: 6c 75 65 20 68 61 73 20 62 65 65 6e 20 72 65 74  lue has been ret
72a0: 69 72 65 64 20 66 6f 72 20 39 45 78 20 61 6e 64  ired for 9Ex and
72b0: 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73   future versions
72c0: 2c 0d 0a 20 2a 20 62 75 74 20 69 74 20 6e 65 65  ,.. * but it nee
72d0: 64 73 20 74 6f 20 62 65 20 64 65 66 69 6e 65 64  ds to be defined
72e0: 20 68 65 72 65 20 66 6f 72 20 63 6f 6d 70 61 74   here for compat
72f0: 69 62 69 6c 69 74 79 20 77 69 74 68 20 44 58 39  ibility with DX9
7300: 20 61 6e 64 20 65 61 72 6c 69 65 72 20 76 65 72   and earlier ver
7310: 73 69 6f 6e 73 2e 0d 0a 20 2a 20 53 65 65 20 74  sions... * See t
7320: 68 65 20 44 69 72 65 63 74 58 20 53 44 4b 20 66  he DirectX SDK f
7330: 6f 72 20 73 61 6d 70 6c 65 20 63 6f 64 65 20 6f  or sample code o
7340: 6e 20 64 69 73 63 6f 76 65 72 69 6e 67 20 64 72  n discovering dr
7350: 69 76 65 72 20 73 69 67 6e 61 74 75 72 65 73 2e  iver signatures.
7360: 0d 0a 20 2a 2f 0d 0a 63 6f 6e 73 74 20 44 33 44  .. */..const D3D
7370: 45 4e 55 4d 5f 57 48 51 4c 5f 4c 45 56 45 4c 20  ENUM_WHQL_LEVEL 
7380: 3d 20 30 78 30 30 30 30 30 30 30 32 4c 3b 0d 0a  = 0x00000002L;..
7390: 0d 0a 2f 2a 20 4e 4f 5f 44 52 49 56 45 52 56 45  ../* NO_DRIVERVE
73a0: 52 53 49 4f 4e 20 77 69 6c 6c 20 6e 6f 74 20 66  RSION will not f
73b0: 69 6c 6c 20 6f 75 74 20 74 68 65 20 44 72 69 76  ill out the Driv
73c0: 65 72 56 65 72 73 69 6f 6e 20 66 69 65 6c 64 2c  erVersion field,
73d0: 20 6e 6f 72 20 77 69 6c 6c 20 74 68 65 0d 0a 20   nor will the.. 
73e0: 20 20 44 72 69 76 65 72 56 65 72 73 69 6f 6e 20    DriverVersion 
73f0: 62 65 20 69 6e 63 6f 72 70 6f 72 61 74 65 64 20  be incorporated 
7400: 69 6e 74 6f 20 74 68 65 20 44 65 76 69 63 65 49  into the DeviceI
7410: 64 65 6e 74 69 66 69 65 72 20 47 55 49 44 2e 20  dentifier GUID. 
7420: 57 49 4e 4e 54 20 6f 6e 6c 79 20 2a 2f 0d 0a 63  WINNT only */..c
7430: 6f 6e 73 74 20 44 33 44 45 4e 55 4d 5f 4e 4f 5f  onst D3DENUM_NO_
7440: 44 52 49 56 45 52 56 45 52 53 49 4f 4e 20 3d 20  DRIVERVERSION = 
7450: 30 78 30 30 30 30 30 30 30 34 4c 3b 0d 0a 0d 0a  0x00000004L;....
7460: 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ../*************
7470: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7480: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7490: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
74a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d  ***************.
74b0: 0a 20 2a 0d 0a 20 2a 20 4d 61 78 69 6d 75 6d 20  . *.. * Maximum 
74c0: 6e 75 6d 62 65 72 20 6f 66 20 62 61 63 6b 2d 62  number of back-b
74d0: 75 66 66 65 72 73 20 73 75 70 70 6f 72 74 65 64  uffers supported
74e0: 20 69 6e 20 44 58 39 0d 0a 20 2a 0d 0a 20 2a 2a   in DX9.. *.. **
74f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7500: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7510: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7520: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7530: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a 63  **********/....c
7540: 6f 6e 73 74 20 44 33 44 50 52 45 53 45 4e 54 5f  onst D3DPRESENT_
7550: 42 41 43 4b 5f 42 55 46 46 45 52 53 5f 4d 41 58  BACK_BUFFERS_MAX
7560: 20 3d 20 33 4c 3b 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a   = 3L;..../*****
7570: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7580: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7590: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
75a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
75b0: 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 2a 0d 0a 20 2a 20  *******.. *.. * 
75c0: 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f  Maximum number o
75d0: 66 20 62 61 63 6b 2d 62 75 66 66 65 72 73 20 73  f back-buffers s
75e0: 75 70 70 6f 72 74 65 64 20 77 68 65 6e 20 61 70  upported when ap
75f0: 70 73 20 75 73 65 20 43 72 65 61 74 65 44 65 76  ps use CreateDev
7600: 69 63 65 45 78 0d 0a 20 2a 0d 0a 20 2a 2a 2a 2a  iceEx.. *.. ****
7610: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7620: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7630: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7640: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7650: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 63 6f 6e 73 74  ********/..const
7660: 20 44 33 44 50 52 45 53 45 4e 54 5f 42 41 43 4b   D3DPRESENT_BACK
7670: 5f 42 55 46 46 45 52 53 5f 4d 41 58 5f 45 58 20  _BUFFERS_MAX_EX 
7680: 3d 20 33 30 4c 3b 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a  = 30L;..../*****
7690: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
76a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
76b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
76c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
76d0: 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 2a 0d 0a 20 2a 20  *******.. *.. * 
76e0: 46 6c 61 67 73 20 66 6f 72 20 49 44 69 72 65 63  Flags for IDirec
76f0: 74 33 44 44 65 76 69 63 65 39 3a 3a 53 65 74 47  t3DDevice9::SetG
7700: 61 6d 6d 61 52 61 6d 70 0d 0a 20 2a 0d 0a 20 2a  ammaRamp.. *.. *
7710: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7720: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7730: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7740: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7750: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a  ***********/....
7760: 63 6f 6e 73 74 20 44 33 44 53 47 52 5f 4e 4f 5f  const D3DSGR_NO_
7770: 43 41 4c 49 42 52 41 54 49 4f 4e 20 3d 20 30 78  CALIBRATION = 0x
7780: 30 30 30 30 30 30 30 30 4c 3b 0d 0a 63 6f 6e 73  00000000L;..cons
7790: 74 20 44 33 44 53 47 52 5f 43 41 4c 49 42 52 41  t D3DSGR_CALIBRA
77a0: 54 45 20 3d 20 30 78 30 30 30 30 30 30 30 31 4c  TE = 0x00000001L
77b0: 3b 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ;..../**********
77c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
77d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
77e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
77f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7800: 2a 2a 0d 0a 20 2a 0d 0a 20 2a 20 46 6c 61 67 73  **.. *.. * Flags
7810: 20 66 6f 72 20 49 44 69 72 65 63 74 33 44 44 65   for IDirect3DDe
7820: 76 69 63 65 39 3a 3a 53 65 74 43 75 72 73 6f 72  vice9::SetCursor
7830: 50 6f 73 69 74 69 6f 6e 0d 0a 20 2a 0d 0a 20 2a  Position.. *.. *
7840: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7850: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7860: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7870: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7880: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a  ***********/....
7890: 63 6f 6e 73 74 20 44 33 44 43 55 52 53 4f 52 5f  const D3DCURSOR_
78a0: 49 4d 4d 45 44 49 41 54 45 5f 55 50 44 41 54 45  IMMEDIATE_UPDATE
78b0: 20 3d 20 30 78 30 30 30 30 30 30 30 31 4c 3b 0d   = 0x00000001L;.
78c0: 0a 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  .../************
78d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
78e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
78f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7900: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7910: 0d 0a 20 2a 0d 0a 20 2a 20 46 6c 61 67 73 20 66  .. *.. * Flags f
7920: 6f 72 20 49 44 69 72 65 63 74 33 44 53 77 61 70  or IDirect3DSwap
7930: 43 68 61 69 6e 39 3a 3a 50 72 65 73 65 6e 74 0d  Chain9::Present.
7940: 0a 20 2a 0d 0a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  . *.. **********
7950: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7960: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7970: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7980: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7990: 2a 2a 2f 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44  **/....const D3D
79a0: 50 52 45 53 45 4e 54 5f 44 4f 4e 4f 54 57 41 49  PRESENT_DONOTWAI
79b0: 54 20 3d 20 30 78 30 30 30 30 30 30 30 31 4c 3b  T = 0x00000001L;
79c0: 0d 0a 63 6f 6e 73 74 20 44 33 44 50 52 45 53 45  ..const D3DPRESE
79d0: 4e 54 5f 4c 49 4e 45 41 52 5f 43 4f 4e 54 45 4e  NT_LINEAR_CONTEN
79e0: 54 20 3d 20 30 78 30 30 30 30 30 30 30 32 4c 3b  T = 0x00000002L;
79f0: 0d 0a 63 6f 6e 73 74 20 44 33 44 50 52 45 53 45  ..const D3DPRESE
7a00: 4e 54 5f 44 4f 4e 4f 54 46 4c 49 50 20 3d 20 30  NT_DONOTFLIP = 0
7a10: 78 30 30 30 30 30 30 30 34 4c 3b 0d 0a 63 6f 6e  x00000004L;..con
7a20: 73 74 20 44 33 44 50 52 45 53 45 4e 54 5f 46 4c  st D3DPRESENT_FL
7a30: 49 50 52 45 53 54 41 52 54 20 3d 20 30 78 30 30  IPRESTART = 0x00
7a40: 30 30 30 30 30 38 4c 3b 0d 0a 63 6f 6e 73 74 20  000008L;..const 
7a50: 44 33 44 50 52 45 53 45 4e 54 5f 56 49 44 45 4f  D3DPRESENT_VIDEO
7a60: 5f 52 45 53 54 52 49 43 54 5f 54 4f 5f 4d 4f 4e  _RESTRICT_TO_MON
7a70: 49 54 4f 52 20 3d 20 30 78 30 30 30 30 30 30 31  ITOR = 0x0000001
7a80: 30 4c 3b 0d 0a 0d 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a  0L;..../********
7a90: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7aa0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7ab0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7ac0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7ad0: 2a 2a 2a 2a 0d 0a 20 2a 0d 0a 20 2a 20 46 6c 61  ****.. *.. * Fla
7ae0: 67 73 20 66 6f 72 20 44 72 61 77 50 72 69 6d 69  gs for DrawPrimi
7af0: 74 69 76 65 2f 44 72 61 77 49 6e 64 65 78 65 64  tive/DrawIndexed
7b00: 50 72 69 6d 69 74 69 76 65 0d 0a 20 2a 20 20 20  Primitive.. *   
7b10: 41 6c 73 6f 20 76 61 6c 69 64 20 66 6f 72 20 42  Also valid for B
7b20: 65 67 69 6e 2f 42 65 67 69 6e 49 6e 64 65 78 65  egin/BeginIndexe
7b30: 64 0d 0a 20 2a 20 20 20 41 6c 73 6f 20 76 61 6c  d.. *   Also val
7b40: 69 64 20 66 6f 72 20 56 65 72 74 65 78 42 75 66  id for VertexBuf
7b50: 66 65 72 3a 3a 43 72 65 61 74 65 56 65 72 74 65  fer::CreateVerte
7b60: 78 42 75 66 66 65 72 0d 0a 20 2a 2a 2a 2a 2a 2a  xBuffer.. ******
7b70: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7b80: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7b90: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7ba0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
7bb0: 2a 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a 0d 0a 2f 2a 0d  ******/....../*.
7bc0: 0a 20 2a 20 20 44 69 72 65 63 74 44 72 61 77 20  . *  DirectDraw 
7bd0: 65 72 72 6f 72 20 63 6f 64 65 73 0d 0a 20 2a 2f  error codes.. */
7be0: 0d 0a 63 6f 6e 73 74 20 5f 46 41 43 44 33 44 20  ..const _FACD3D 
7bf0: 3d 20 30 78 38 37 36 3b 0d 0a 48 52 45 53 55 4c  = 0x876;..HRESUL
7c00: 54 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c  T MAKE_D3DHRESUL
7c10: 54 28 54 29 28 54 20 63 6f 64 65 29 20 7b 20 72  T(T)(T code) { r
7c20: 65 74 75 72 6e 20 4d 41 4b 45 5f 48 52 45 53 55  eturn MAKE_HRESU
7c30: 4c 54 28 20 31 2c 20 5f 46 41 43 44 33 44 2c 20  LT( 1, _FACD3D, 
7c40: 63 6f 64 65 20 29 3b 20 7d 0d 0a 48 52 45 53 55  code ); }..HRESU
7c50: 4c 54 20 4d 41 4b 45 5f 44 33 44 53 54 41 54 55  LT MAKE_D3DSTATU
7c60: 53 28 54 29 28 54 20 63 6f 64 65 29 20 7b 20 72  S(T)(T code) { r
7c70: 65 74 75 72 6e 20 4d 41 4b 45 5f 48 52 45 53 55  eturn MAKE_HRESU
7c80: 4c 54 28 20 30 2c 20 5f 46 41 43 44 33 44 2c 20  LT( 0, _FACD3D, 
7c90: 63 6f 64 65 20 29 3b 20 7d 0d 0a 0d 0a 2f 2a 0d  code ); }..../*.
7ca0: 0a 20 2a 20 44 69 72 65 63 74 33 44 20 45 72 72  . * Direct3D Err
7cb0: 6f 72 73 0d 0a 20 2a 2f 0d 0a 63 6f 6e 73 74 20  ors.. */..const 
7cc0: 48 52 45 53 55 4c 54 20 44 33 44 5f 4f 4b 20 3d  HRESULT D3D_OK =
7cd0: 20 53 5f 4f 4b 3b 0d 0a 0d 0a 63 6f 6e 73 74 20   S_OK;....const 
7ce0: 48 52 45 53 55 4c 54 20 44 33 44 45 52 52 5f 57  HRESULT D3DERR_W
7cf0: 52 4f 4e 47 54 45 58 54 55 52 45 46 4f 52 4d 41  RONGTEXTUREFORMA
7d00: 54 20 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45 53  T = MAKE_D3DHRES
7d10: 55 4c 54 28 32 30 37 32 29 3b 0d 0a 63 6f 6e 73  ULT(2072);..cons
7d20: 74 20 48 52 45 53 55 4c 54 20 44 33 44 45 52 52  t HRESULT D3DERR
7d30: 5f 55 4e 53 55 50 50 4f 52 54 45 44 43 4f 4c 4f  _UNSUPPORTEDCOLO
7d40: 52 4f 50 45 52 41 54 49 4f 4e 20 3d 20 4d 41 4b  ROPERATION = MAK
7d50: 45 5f 44 33 44 48 52 45 53 55 4c 54 28 32 30 37  E_D3DHRESULT(207
7d60: 33 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55  3);..const HRESU
7d70: 4c 54 20 44 33 44 45 52 52 5f 55 4e 53 55 50 50  LT D3DERR_UNSUPP
7d80: 4f 52 54 45 44 43 4f 4c 4f 52 41 52 47 20 3d 20  ORTEDCOLORARG = 
7d90: 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c 54 28  MAKE_D3DHRESULT(
7da0: 32 30 37 34 29 3b 0d 0a 63 6f 6e 73 74 20 48 52  2074);..const HR
7db0: 45 53 55 4c 54 20 44 33 44 45 52 52 5f 55 4e 53  ESULT D3DERR_UNS
7dc0: 55 50 50 4f 52 54 45 44 41 4c 50 48 41 4f 50 45  UPPORTEDALPHAOPE
7dd0: 52 41 54 49 4f 4e 20 3d 20 4d 41 4b 45 5f 44 33  RATION = MAKE_D3
7de0: 44 48 52 45 53 55 4c 54 28 32 30 37 35 29 3b 0d  DHRESULT(2075);.
7df0: 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c 54 20 44  .const HRESULT D
7e00: 33 44 45 52 52 5f 55 4e 53 55 50 50 4f 52 54 45  3DERR_UNSUPPORTE
7e10: 44 41 4c 50 48 41 41 52 47 20 3d 20 4d 41 4b 45  DALPHAARG = MAKE
7e20: 5f 44 33 44 48 52 45 53 55 4c 54 28 32 30 37 36  _D3DHRESULT(2076
7e30: 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c  );..const HRESUL
7e40: 54 20 44 33 44 45 52 52 5f 54 4f 4f 4d 41 4e 59  T D3DERR_TOOMANY
7e50: 4f 50 45 52 41 54 49 4f 4e 53 20 3d 20 4d 41 4b  OPERATIONS = MAK
7e60: 45 5f 44 33 44 48 52 45 53 55 4c 54 28 32 30 37  E_D3DHRESULT(207
7e70: 37 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55  7);..const HRESU
7e80: 4c 54 20 44 33 44 45 52 52 5f 43 4f 4e 46 4c 49  LT D3DERR_CONFLI
7e90: 43 54 49 4e 47 54 45 58 54 55 52 45 46 49 4c 54  CTINGTEXTUREFILT
7ea0: 45 52 20 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45  ER = MAKE_D3DHRE
7eb0: 53 55 4c 54 28 32 30 37 38 29 3b 0d 0a 63 6f 6e  SULT(2078);..con
7ec0: 73 74 20 48 52 45 53 55 4c 54 20 44 33 44 45 52  st HRESULT D3DER
7ed0: 52 5f 55 4e 53 55 50 50 4f 52 54 45 44 46 41 43  R_UNSUPPORTEDFAC
7ee0: 54 4f 52 56 41 4c 55 45 20 3d 20 4d 41 4b 45 5f  TORVALUE = MAKE_
7ef0: 44 33 44 48 52 45 53 55 4c 54 28 32 30 37 39 29  D3DHRESULT(2079)
7f00: 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c 54  ;..const HRESULT
7f10: 20 44 33 44 45 52 52 5f 43 4f 4e 46 4c 49 43 54   D3DERR_CONFLICT
7f20: 49 4e 47 52 45 4e 44 45 52 53 54 41 54 45 20 3d  INGRENDERSTATE =
7f30: 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c 54   MAKE_D3DHRESULT
7f40: 28 32 30 38 31 29 3b 0d 0a 63 6f 6e 73 74 20 48  (2081);..const H
7f50: 52 45 53 55 4c 54 20 44 33 44 45 52 52 5f 55 4e  RESULT D3DERR_UN
7f60: 53 55 50 50 4f 52 54 45 44 54 45 58 54 55 52 45  SUPPORTEDTEXTURE
7f70: 46 49 4c 54 45 52 20 3d 20 4d 41 4b 45 5f 44 33  FILTER = MAKE_D3
7f80: 44 48 52 45 53 55 4c 54 28 32 30 38 32 29 3b 0d  DHRESULT(2082);.
7f90: 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c 54 20 44  .const HRESULT D
7fa0: 33 44 45 52 52 5f 43 4f 4e 46 4c 49 43 54 49 4e  3DERR_CONFLICTIN
7fb0: 47 54 45 58 54 55 52 45 50 41 4c 45 54 54 45 20  GTEXTUREPALETTE 
7fc0: 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c  = MAKE_D3DHRESUL
7fd0: 54 28 32 30 38 36 29 3b 0d 0a 63 6f 6e 73 74 20  T(2086);..const 
7fe0: 48 52 45 53 55 4c 54 20 44 33 44 45 52 52 5f 44  HRESULT D3DERR_D
7ff0: 52 49 56 45 52 49 4e 54 45 52 4e 41 4c 45 52 52  RIVERINTERNALERR
8000: 4f 52 20 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45  OR = MAKE_D3DHRE
8010: 53 55 4c 54 28 32 30 38 37 29 3b 0d 0a 0d 0a 63  SULT(2087);....c
8020: 6f 6e 73 74 20 48 52 45 53 55 4c 54 20 44 33 44  onst HRESULT D3D
8030: 45 52 52 5f 4e 4f 54 46 4f 55 4e 44 20 3d 20 4d  ERR_NOTFOUND = M
8040: 41 4b 45 5f 44 33 44 48 52 45 53 55 4c 54 28 32  AKE_D3DHRESULT(2
8050: 31 35 30 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45  150);..const HRE
8060: 53 55 4c 54 20 44 33 44 45 52 52 5f 4d 4f 52 45  SULT D3DERR_MORE
8070: 44 41 54 41 20 3d 20 4d 41 4b 45 5f 44 33 44 48  DATA = MAKE_D3DH
8080: 52 45 53 55 4c 54 28 32 31 35 31 29 3b 0d 0a 63  RESULT(2151);..c
8090: 6f 6e 73 74 20 48 52 45 53 55 4c 54 20 44 33 44  onst HRESULT D3D
80a0: 45 52 52 5f 44 45 56 49 43 45 4c 4f 53 54 20 3d  ERR_DEVICELOST =
80b0: 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c 54   MAKE_D3DHRESULT
80c0: 28 32 31 35 32 29 3b 0d 0a 63 6f 6e 73 74 20 48  (2152);..const H
80d0: 52 45 53 55 4c 54 20 44 33 44 45 52 52 5f 44 45  RESULT D3DERR_DE
80e0: 56 49 43 45 4e 4f 54 52 45 53 45 54 20 3d 20 4d  VICENOTRESET = M
80f0: 41 4b 45 5f 44 33 44 48 52 45 53 55 4c 54 28 32  AKE_D3DHRESULT(2
8100: 31 35 33 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45  153);..const HRE
8110: 53 55 4c 54 20 44 33 44 45 52 52 5f 4e 4f 54 41  SULT D3DERR_NOTA
8120: 56 41 49 4c 41 42 4c 45 20 3d 20 4d 41 4b 45 5f  VAILABLE = MAKE_
8130: 44 33 44 48 52 45 53 55 4c 54 28 32 31 35 34 29  D3DHRESULT(2154)
8140: 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c 54  ;..const HRESULT
8150: 20 44 33 44 45 52 52 5f 4f 55 54 4f 46 56 49 44   D3DERR_OUTOFVID
8160: 45 4f 4d 45 4d 4f 52 59 20 3d 20 4d 41 4b 45 5f  EOMEMORY = MAKE_
8170: 44 33 44 48 52 45 53 55 4c 54 28 33 38 30 29 3b  D3DHRESULT(380);
8180: 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c 54 20  ..const HRESULT 
8190: 44 33 44 45 52 52 5f 49 4e 56 41 4c 49 44 44 45  D3DERR_INVALIDDE
81a0: 56 49 43 45 20 3d 20 4d 41 4b 45 5f 44 33 44 48  VICE = MAKE_D3DH
81b0: 52 45 53 55 4c 54 28 32 31 35 35 29 3b 0d 0a 63  RESULT(2155);..c
81c0: 6f 6e 73 74 20 48 52 45 53 55 4c 54 20 44 33 44  onst HRESULT D3D
81d0: 45 52 52 5f 49 4e 56 41 4c 49 44 43 41 4c 4c 20  ERR_INVALIDCALL 
81e0: 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c  = MAKE_D3DHRESUL
81f0: 54 28 32 31 35 36 29 3b 0d 0a 63 6f 6e 73 74 20  T(2156);..const 
8200: 48 52 45 53 55 4c 54 20 44 33 44 45 52 52 5f 44  HRESULT D3DERR_D
8210: 52 49 56 45 52 49 4e 56 41 4c 49 44 43 41 4c 4c  RIVERINVALIDCALL
8220: 20 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55   = MAKE_D3DHRESU
8230: 4c 54 28 32 31 35 37 29 3b 0d 0a 63 6f 6e 73 74  LT(2157);..const
8240: 20 48 52 45 53 55 4c 54 20 44 33 44 45 52 52 5f   HRESULT D3DERR_
8250: 57 41 53 53 54 49 4c 4c 44 52 41 57 49 4e 47 20  WASSTILLDRAWING 
8260: 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c  = MAKE_D3DHRESUL
8270: 54 28 35 34 30 29 3b 0d 0a 63 6f 6e 73 74 20 48  T(540);..const H
8280: 52 45 53 55 4c 54 20 44 33 44 4f 4b 5f 4e 4f 41  RESULT D3DOK_NOA
8290: 55 54 4f 47 45 4e 20 3d 20 4d 41 4b 45 5f 44 33  UTOGEN = MAKE_D3
82a0: 44 53 54 41 54 55 53 28 32 31 35 39 29 3b 0d 0a  DSTATUS(2159);..
82b0: 63 6f 6e 73 74 20 48 52 45 53 55 4c 54 20 44 33  const HRESULT D3
82c0: 44 45 52 52 5f 44 45 56 49 43 45 52 45 4d 4f 56  DERR_DEVICEREMOV
82d0: 45 44 20 3d 20 4d 41 4b 45 5f 44 33 44 48 52 45  ED = MAKE_D3DHRE
82e0: 53 55 4c 54 28 32 31 36 30 29 3b 0d 0a 63 6f 6e  SULT(2160);..con
82f0: 73 74 20 48 52 45 53 55 4c 54 20 53 5f 4e 4f 54  st HRESULT S_NOT
8300: 5f 52 45 53 49 44 45 4e 54 20 3d 20 4d 41 4b 45  _RESIDENT = MAKE
8310: 5f 44 33 44 53 54 41 54 55 53 28 32 31 36 35 29  _D3DSTATUS(2165)
8320: 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c 54  ;..const HRESULT
8330: 20 53 5f 52 45 53 49 44 45 4e 54 5f 49 4e 5f 53   S_RESIDENT_IN_S
8340: 48 41 52 45 44 5f 4d 45 4d 4f 52 59 20 3d 20 4d  HARED_MEMORY = M
8350: 41 4b 45 5f 44 33 44 53 54 41 54 55 53 28 32 31  AKE_D3DSTATUS(21
8360: 36 36 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53  66);..const HRES
8370: 55 4c 54 20 53 5f 50 52 45 53 45 4e 54 5f 4d 4f  ULT S_PRESENT_MO
8380: 44 45 5f 43 48 41 4e 47 45 44 20 3d 20 4d 41 4b  DE_CHANGED = MAK
8390: 45 5f 44 33 44 53 54 41 54 55 53 28 32 31 36 37  E_D3DSTATUS(2167
83a0: 29 3b 0d 0a 63 6f 6e 73 74 20 48 52 45 53 55 4c  );..const HRESUL
83b0: 54 20 53 5f 50 52 45 53 45 4e 54 5f 4f 43 43 4c  T S_PRESENT_OCCL
83c0: 55 44 45 44 20 3d 20 4d 41 4b 45 5f 44 33 44 53  UDED = MAKE_D3DS
83d0: 54 41 54 55 53 28 32 31 36 38 29 3b 0d 0a 63 6f  TATUS(2168);..co
83e0: 6e 73 74 20 48 52 45 53 55 4c 54 20 44 33 44 45  nst HRESULT D3DE
83f0: 52 52 5f 44 45 56 49 43 45 48 55 4e 47 20 3d 20  RR_DEVICEHUNG = 
8400: 4d 41 4b 45 5f 44 33 44 48 52 45 53 55 4c 54 28  MAKE_D3DHRESULT(
8410: 32 31 36 34 29 3b 0d 0a 0d 0a 0d 0a 2f 2a 2a 2a  2164);....../***
8420: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
8430: 2a 2a 0d 0a 2f 2a 20 44 33 44 39 45 78 20 69 6e  **../* D3D9Ex in
8440: 74 65 72 66 61 63 65 73 0d 0a 2f 2a 2a 2a 2a 2a  terfaces../*****
8450: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
8460: 2f 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e  /....extern (Win
8470: 64 6f 77 73 29 20 48 52 45 53 55 4c 54 20 44 69  dows) HRESULT Di
8480: 72 65 63 74 33 44 43 72 65 61 74 65 39 45 78 28  rect3DCreate9Ex(
8490: 55 49 4e 54 20 53 44 4b 56 65 72 73 69 6f 6e 2c  UINT SDKVersion,
84a0: 20 4c 50 44 49 52 45 43 54 33 44 39 45 58 2a 29   LPDIRECT3D9EX*)
84b0: 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 4c  ;....interface L
84c0: 50 44 49 52 45 43 54 33 44 39 45 58 20 3a 20 4c  PDIRECT3D9EX : L
84d0: 50 44 49 52 45 43 54 33 44 39 0d 0a 7b 0d 0a 20  PDIRECT3D9..{.. 
84e0: 20 20 20 55 49 4e 54 20 47 65 74 41 64 61 70 74     UINT GetAdapt
84f0: 65 72 4d 6f 64 65 43 6f 75 6e 74 45 78 28 55 49  erModeCountEx(UI
8500: 4e 54 20 41 64 61 70 74 65 72 2c 20 44 33 44 44  NT Adapter, D3DD
8510: 49 53 50 4c 41 59 4d 4f 44 45 46 49 4c 54 45 52  ISPLAYMODEFILTER
8520: 2a 20 70 46 69 6c 74 65 72 20 29 3b 0d 0a 20 20  * pFilter );..  
8530: 20 20 48 52 45 53 55 4c 54 20 45 6e 75 6d 41 64    HRESULT EnumAd
8540: 61 70 74 65 72 4d 6f 64 65 73 45 78 28 20 55 49  apterModesEx( UI
8550: 4e 54 20 41 64 61 70 74 65 72 2c 20 44 33 44 44  NT Adapter, D3DD
8560: 49 53 50 4c 41 59 4d 4f 44 45 46 49 4c 54 45 52  ISPLAYMODEFILTER
8570: 2a 20 70 46 69 6c 74 65 72 2c 55 49 4e 54 20 4d  * pFilter,UINT M
8580: 6f 64 65 2c 44 33 44 44 49 53 50 4c 41 59 4d 4f  ode,D3DDISPLAYMO
8590: 44 45 45 58 2a 20 70 4d 6f 64 65 29 3b 0d 0a 20  DEEX* pMode);.. 
85a0: 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 41 64     HRESULT GetAd
85b0: 61 70 74 65 72 44 69 73 70 6c 61 79 4d 6f 64 65  apterDisplayMode
85c0: 45 78 28 20 55 49 4e 54 20 41 64 61 70 74 65 72  Ex( UINT Adapter
85d0: 2c 44 33 44 44 49 53 50 4c 41 59 4d 4f 44 45 45  ,D3DDISPLAYMODEE
85e0: 58 2a 20 70 4d 6f 64 65 2c 44 33 44 44 49 53 50  X* pMode,D3DDISP
85f0: 4c 41 59 52 4f 54 41 54 49 4f 4e 2a 20 70 52 6f  LAYROTATION* pRo
8600: 74 61 74 69 6f 6e 29 3b 0d 0a 20 20 20 20 48 52  tation);..    HR
8610: 45 53 55 4c 54 20 43 72 65 61 74 65 44 65 76 69  ESULT CreateDevi
8620: 63 65 45 78 28 20 55 49 4e 54 20 41 64 61 70 74  ceEx( UINT Adapt
8630: 65 72 2c 44 33 44 44 45 56 54 59 50 45 20 44 65  er,D3DDEVTYPE De
8640: 76 69 63 65 54 79 70 65 2c 48 57 4e 44 20 68 46  viceType,HWND hF
8650: 6f 63 75 73 57 69 6e 64 6f 77 2c 44 57 4f 52 44  ocusWindow,DWORD
8660: 20 42 65 68 61 76 69 6f 72 46 6c 61 67 73 2c 44   BehaviorFlags,D
8670: 33 44 50 52 45 53 45 4e 54 5f 50 41 52 41 4d 45  3DPRESENT_PARAME
8680: 54 45 52 53 2a 20 70 50 72 65 73 65 6e 74 61 74  TERS* pPresentat
8690: 69 6f 6e 50 61 72 61 6d 65 74 65 72 73 2c 44 33  ionParameters,D3
86a0: 44 44 49 53 50 4c 41 59 4d 4f 44 45 45 58 2a 20  DDISPLAYMODEEX* 
86b0: 70 46 75 6c 6c 73 63 72 65 65 6e 44 69 73 70 6c  pFullscreenDispl
86c0: 61 79 4d 6f 64 65 2c 4c 50 44 49 52 45 43 54 33  ayMode,LPDIRECT3
86d0: 44 44 45 56 49 43 45 39 45 58 2a 20 70 70 52 65  DDEVICE9EX* ppRe
86e0: 74 75 72 6e 65 64 44 65 76 69 63 65 49 6e 74 65  turnedDeviceInte
86f0: 72 66 61 63 65 29 3b 0d 0a 20 20 20 20 48 52 45  rface);..    HRE
8700: 53 55 4c 54 20 47 65 74 41 64 61 70 74 65 72 4c  SULT GetAdapterL
8710: 55 49 44 28 20 55 49 4e 54 20 41 64 61 70 74 65  UID( UINT Adapte
8720: 72 2c 4c 55 49 44 20 2a 20 70 4c 55 49 44 29 3b  r,LUID * pLUID);
8730: 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 4c 50 44  ..}....alias LPD
8740: 49 52 45 43 54 33 44 39 45 58 20 49 44 69 72 65  IRECT3D9EX IDire
8750: 63 74 33 44 39 45 78 3b 0d 0a 0d 0a 69 6e 74 65  ct3D9Ex;....inte
8760: 72 66 61 63 65 20 4c 50 44 49 52 45 43 54 33 44  rface LPDIRECT3D
8770: 44 45 56 49 43 45 39 45 58 20 3a 20 4c 50 44 49  DEVICE9EX : LPDI
8780: 52 45 43 54 33 44 44 45 56 49 43 45 39 0d 0a 7b  RECT3DDEVICE9..{
8790: 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 53 65  ..    HRESULT Se
87a0: 74 43 6f 6e 76 6f 6c 75 74 69 6f 6e 4d 6f 6e 6f  tConvolutionMono
87b0: 4b 65 72 6e 65 6c 28 20 55 49 4e 54 20 77 69 64  Kernel( UINT wid
87c0: 74 68 2c 55 49 4e 54 20 68 65 69 67 68 74 2c 66  th,UINT height,f
87d0: 6c 6f 61 74 2a 20 72 6f 77 73 2c 66 6c 6f 61 74  loat* rows,float
87e0: 2a 20 63 6f 6c 75 6d 6e 73 29 3b 0d 0a 20 20 20  * columns);..   
87f0: 20 48 52 45 53 55 4c 54 20 43 6f 6d 70 6f 73 65   HRESULT Compose
8800: 52 65 63 74 73 28 20 4c 50 44 49 52 45 43 54 33  Rects( LPDIRECT3
8810: 44 53 55 52 46 41 43 45 39 20 70 53 72 63 2c 4c  DSURFACE9 pSrc,L
8820: 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43 45  PDIRECT3DSURFACE
8830: 39 20 70 44 73 74 2c 4c 50 44 49 52 45 43 54 33  9 pDst,LPDIRECT3
8840: 44 56 45 52 54 45 58 42 55 46 46 45 52 39 20 70  DVERTEXBUFFER9 p
8850: 53 72 63 52 65 63 74 44 65 73 63 73 2c 55 49 4e  SrcRectDescs,UIN
8860: 54 20 4e 75 6d 52 65 63 74 73 2c 4c 50 44 49 52  T NumRects,LPDIR
8870: 45 43 54 33 44 56 45 52 54 45 58 42 55 46 46 45  ECT3DVERTEXBUFFE
8880: 52 39 20 70 44 73 74 52 65 63 74 44 65 73 63 73  R9 pDstRectDescs
8890: 2c 44 33 44 43 4f 4d 50 4f 53 45 52 45 43 54 53  ,D3DCOMPOSERECTS
88a0: 4f 50 20 4f 70 65 72 61 74 69 6f 6e 2c 69 6e 74  OP Operation,int
88b0: 20 58 6f 66 66 73 65 74 2c 69 6e 74 20 59 6f 66   Xoffset,int Yof
88c0: 66 73 65 74 29 3b 0d 0a 20 20 20 20 48 52 45 53  fset);..    HRES
88d0: 55 4c 54 20 50 72 65 73 65 6e 74 45 78 28 20 52  ULT PresentEx( R
88e0: 45 43 54 2a 20 70 53 6f 75 72 63 65 52 65 63 74  ECT* pSourceRect
88f0: 2c 20 52 45 43 54 2a 20 70 44 65 73 74 52 65 63  , RECT* pDestRec
8900: 74 2c 48 57 4e 44 20 68 44 65 73 74 57 69 6e 64  t,HWND hDestWind
8910: 6f 77 4f 76 65 72 72 69 64 65 2c 20 52 47 4e 44  owOverride, RGND
8920: 41 54 41 2a 20 70 44 69 72 74 79 52 65 67 69 6f  ATA* pDirtyRegio
8930: 6e 2c 44 57 4f 52 44 20 64 77 46 6c 61 67 73 29  n,DWORD dwFlags)
8940: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 47  ;..    HRESULT G
8950: 65 74 47 50 55 54 68 72 65 61 64 50 72 69 6f 72  etGPUThreadPrior
8960: 69 74 79 28 20 49 4e 54 2a 20 70 50 72 69 6f 72  ity( INT* pPrior
8970: 69 74 79 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  ity);..    HRESU
8980: 4c 54 20 53 65 74 47 50 55 54 68 72 65 61 64 50  LT SetGPUThreadP
8990: 72 69 6f 72 69 74 79 28 20 49 4e 54 20 50 72 69  riority( INT Pri
89a0: 6f 72 69 74 79 29 3b 0d 0a 20 20 20 20 48 52 45  ority);..    HRE
89b0: 53 55 4c 54 20 57 61 69 74 46 6f 72 56 42 6c 61  SULT WaitForVBla
89c0: 6e 6b 28 20 55 49 4e 54 20 69 53 77 61 70 43 68  nk( UINT iSwapCh
89d0: 61 69 6e 29 3b 0d 0a 20 20 20 20 48 52 45 53 55  ain);..    HRESU
89e0: 4c 54 20 43 68 65 63 6b 52 65 73 6f 75 72 63 65  LT CheckResource
89f0: 52 65 73 69 64 65 6e 63 79 28 20 4c 50 44 49 52  Residency( LPDIR
8a00: 45 43 54 33 44 52 45 53 4f 55 52 43 45 39 2a 20  ECT3DRESOURCE9* 
8a10: 70 52 65 73 6f 75 72 63 65 41 72 72 61 79 2c 55  pResourceArray,U
8a20: 49 4e 54 33 32 20 4e 75 6d 52 65 73 6f 75 72 63  INT32 NumResourc
8a30: 65 73 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  es);..    HRESUL
8a40: 54 20 53 65 74 4d 61 78 69 6d 75 6d 46 72 61 6d  T SetMaximumFram
8a50: 65 4c 61 74 65 6e 63 79 28 20 55 49 4e 54 20 4d  eLatency( UINT M
8a60: 61 78 4c 61 74 65 6e 63 79 29 3b 0d 0a 20 20 20  axLatency);..   
8a70: 20 48 52 45 53 55 4c 54 20 47 65 74 4d 61 78 69   HRESULT GetMaxi
8a80: 6d 75 6d 46 72 61 6d 65 4c 61 74 65 6e 63 79 28  mumFrameLatency(
8a90: 20 55 49 4e 54 2a 20 70 4d 61 78 4c 61 74 65 6e   UINT* pMaxLaten
8aa0: 63 79 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  cy);..    HRESUL
8ab0: 54 20 43 68 65 63 6b 44 65 76 69 63 65 53 74 61  T CheckDeviceSta
8ac0: 74 65 28 20 48 57 4e 44 20 68 44 65 73 74 69 6e  te( HWND hDestin
8ad0: 61 74 69 6f 6e 57 69 6e 64 6f 77 29 3b 0d 0a 20  ationWindow);.. 
8ae0: 20 20 20 48 52 45 53 55 4c 54 20 43 72 65 61 74     HRESULT Creat
8af0: 65 52 65 6e 64 65 72 54 61 72 67 65 74 45 78 28  eRenderTargetEx(
8b00: 20 55 49 4e 54 20 57 69 64 74 68 2c 55 49 4e 54   UINT Width,UINT
8b10: 20 48 65 69 67 68 74 2c 44 33 44 46 4f 52 4d 41   Height,D3DFORMA
8b20: 54 20 46 6f 72 6d 61 74 2c 44 33 44 4d 55 4c 54  T Format,D3DMULT
8b30: 49 53 41 4d 50 4c 45 5f 54 59 50 45 20 4d 75 6c  ISAMPLE_TYPE Mul
8b40: 74 69 53 61 6d 70 6c 65 2c 44 57 4f 52 44 20 4d  tiSample,DWORD M
8b50: 75 6c 74 69 73 61 6d 70 6c 65 51 75 61 6c 69 74  ultisampleQualit
8b60: 79 2c 42 4f 4f 4c 20 4c 6f 63 6b 61 62 6c 65 2c  y,BOOL Lockable,
8b70: 4c 50 44 49 52 45 43 54 33 44 53 55 52 46 41 43  LPDIRECT3DSURFAC
8b80: 45 39 2a 20 70 70 53 75 72 66 61 63 65 2c 48 41  E9* ppSurface,HA
8b90: 4e 44 4c 45 2a 20 70 53 68 61 72 65 64 48 61 6e  NDLE* pSharedHan
8ba0: 64 6c 65 2c 44 57 4f 52 44 20 55 73 61 67 65 29  dle,DWORD Usage)
8bb0: 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54 20 43  ;..    HRESULT C
8bc0: 72 65 61 74 65 4f 66 66 73 63 72 65 65 6e 50 6c  reateOffscreenPl
8bd0: 61 69 6e 53 75 72 66 61 63 65 45 78 28 20 55 49  ainSurfaceEx( UI
8be0: 4e 54 20 57 69 64 74 68 2c 55 49 4e 54 20 48 65  NT Width,UINT He
8bf0: 69 67 68 74 2c 44 33 44 46 4f 52 4d 41 54 20 46  ight,D3DFORMAT F
8c00: 6f 72 6d 61 74 2c 44 33 44 50 4f 4f 4c 20 50 6f  ormat,D3DPOOL Po
8c10: 6f 6c 2c 4c 50 44 49 52 45 43 54 33 44 53 55 52  ol,LPDIRECT3DSUR
8c20: 46 41 43 45 39 2a 20 70 70 53 75 72 66 61 63 65  FACE9* ppSurface
8c30: 2c 48 41 4e 44 4c 45 2a 20 70 53 68 61 72 65 64  ,HANDLE* pShared
8c40: 48 61 6e 64 6c 65 2c 44 57 4f 52 44 20 55 73 61  Handle,DWORD Usa
8c50: 67 65 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c  ge);..    HRESUL
8c60: 54 20 43 72 65 61 74 65 44 65 70 74 68 53 74 65  T CreateDepthSte
8c70: 6e 63 69 6c 53 75 72 66 61 63 65 45 78 28 20 55  ncilSurfaceEx( U
8c80: 49 4e 54 20 57 69 64 74 68 2c 55 49 4e 54 20 48  INT Width,UINT H
8c90: 65 69 67 68 74 2c 44 33 44 46 4f 52 4d 41 54 20  eight,D3DFORMAT 
8ca0: 46 6f 72 6d 61 74 2c 44 33 44 4d 55 4c 54 49 53  Format,D3DMULTIS
8cb0: 41 4d 50 4c 45 5f 54 59 50 45 20 4d 75 6c 74 69  AMPLE_TYPE Multi
8cc0: 53 61 6d 70 6c 65 2c 44 57 4f 52 44 20 4d 75 6c  Sample,DWORD Mul
8cd0: 74 69 73 61 6d 70 6c 65 51 75 61 6c 69 74 79 2c  tisampleQuality,
8ce0: 42 4f 4f 4c 20 44 69 73 63 61 72 64 2c 4c 50 44  BOOL Discard,LPD
8cf0: 49 52 45 43 54 33 44 53 55 52 46 41 43 45 39 2a  IRECT3DSURFACE9*
8d00: 20 70 70 53 75 72 66 61 63 65 2c 48 41 4e 44 4c   ppSurface,HANDL
8d10: 45 2a 20 70 53 68 61 72 65 64 48 61 6e 64 6c 65  E* pSharedHandle
8d20: 2c 44 57 4f 52 44 20 55 73 61 67 65 29 3b 0d 0a  ,DWORD Usage);..
8d30: 20 20 20 20 48 52 45 53 55 4c 54 20 52 65 73 65      HRESULT Rese
8d40: 74 45 78 28 20 44 33 44 50 52 45 53 45 4e 54 5f  tEx( D3DPRESENT_
8d50: 50 41 52 41 4d 45 54 45 52 53 2a 20 70 50 72 65  PARAMETERS* pPre
8d60: 73 65 6e 74 61 74 69 6f 6e 50 61 72 61 6d 65 74  sentationParamet
8d70: 65 72 73 2c 44 33 44 44 49 53 50 4c 41 59 4d 4f  ers,D3DDISPLAYMO
8d80: 44 45 45 58 20 2a 70 46 75 6c 6c 73 63 72 65 65  DEEX *pFullscree
8d90: 6e 44 69 73 70 6c 61 79 4d 6f 64 65 29 3b 0d 0a  nDisplayMode);..
8da0: 20 20 20 20 48 52 45 53 55 4c 54 20 47 65 74 44      HRESULT GetD
8db0: 69 73 70 6c 61 79 4d 6f 64 65 45 78 28 20 55 49  isplayModeEx( UI
8dc0: 4e 54 20 69 53 77 61 70 43 68 61 69 6e 2c 44 33  NT iSwapChain,D3
8dd0: 44 44 49 53 50 4c 41 59 4d 4f 44 45 45 58 2a 20  DDISPLAYMODEEX* 
8de0: 70 4d 6f 64 65 2c 44 33 44 44 49 53 50 4c 41 59  pMode,D3DDISPLAY
8df0: 52 4f 54 41 54 49 4f 4e 2a 20 70 52 6f 74 61 74  ROTATION* pRotat
8e00: 69 6f 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61  ion);..}....alia
8e10: 73 20 4c 50 44 49 52 45 43 54 33 44 44 45 56 49  s LPDIRECT3DDEVI
8e20: 43 45 39 45 58 20 49 44 69 72 65 63 74 33 44 44  CE9EX IDirect3DD
8e30: 65 76 69 63 65 39 45 78 3b 0d 0a 0d 0a 69 6e 74  evice9Ex;....int
8e40: 65 72 66 61 63 65 20 4c 50 44 49 52 45 43 54 33  erface LPDIRECT3
8e50: 44 53 57 41 50 43 48 41 49 4e 39 45 58 20 3a 20  DSWAPCHAIN9EX : 
8e60: 4c 50 44 49 52 45 43 54 33 44 53 57 41 50 43 48  LPDIRECT3DSWAPCH
8e70: 41 49 4e 39 0d 0a 7b 0d 0a 20 20 20 20 48 52 45  AIN9..{..    HRE
8e80: 53 55 4c 54 20 47 65 74 4c 61 73 74 50 72 65 73  SULT GetLastPres
8e90: 65 6e 74 43 6f 75 6e 74 28 20 55 49 4e 54 2a 20  entCount( UINT* 
8ea0: 70 4c 61 73 74 50 72 65 73 65 6e 74 43 6f 75 6e  pLastPresentCoun
8eb0: 74 29 3b 0d 0a 20 20 20 20 48 52 45 53 55 4c 54  t);..    HRESULT
8ec0: 20 47 65 74 50 72 65 73 65 6e 74 53 74 61 74 73   GetPresentStats
8ed0: 28 20 44 33 44 50 52 45 53 45 4e 54 53 54 41 54  ( D3DPRESENTSTAT
8ee0: 53 2a 20 70 50 72 65 73 65 6e 74 61 74 69 6f 6e  S* pPresentation
8ef0: 53 74 61 74 69 73 74 69 63 73 29 3b 0d 0a 20 20  Statistics);..  
8f00: 20 20 48 52 45 53 55 4c 54 20 47 65 74 44 69 73    HRESULT GetDis
8f10: 70 6c 61 79 4d 6f 64 65 45 78 28 20 44 33 44 44  playModeEx( D3DD
8f20: 49 53 50 4c 41 59 4d 4f 44 45 45 58 2a 20 70 4d  ISPLAYMODEEX* pM
8f30: 6f 64 65 2c 44 33 44 44 49 53 50 4c 41 59 52 4f  ode,D3DDISPLAYRO
8f40: 54 41 54 49 4f 4e 2a 20 70 52 6f 74 61 74 69 6f  TATION* pRotatio
8f50: 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20  n);..}....alias 
8f60: 4c 50 44 49 52 45 43 54 33 44 53 57 41 50 43 48  LPDIRECT3DSWAPCH
8f70: 41 49 4e 39 45 58 20 49 44 69 72 65 63 74 33 44  AIN9EX IDirect3D
8f80: 53 77 61 70 43 68 61 69 6e 39 45 78 3b 0d 0a     SwapChain9Ex;..