Hex Artifact Content

Not logged in

Artifact 496784a5813cdffad050268f7a06dbf4a121db43:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20  ********\..*    
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 64 33 64 31 30 65 66           d3d10ef
0070: 66 65 63 74 2e 64 20 20 20 20 20 20 20 20 20 20  fect.d          
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20     *..*         
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20           *..*   
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50                 P
0190: 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69  laced into publi
01a0: 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20  c domain        
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
01c0: 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ..\*************
01d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
01e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
01f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0200: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f 64  **********/..mod
0210: 75 6c 65 20 77 69 6e 33 32 2e 64 69 72 65 63 74  ule win32.direct
0220: 78 2e 64 33 64 31 30 65 66 66 65 63 74 3b 0d 0a  x.d3d10effect;..
0230: 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74  ..private import
0240: 20 77 69 6e 33 32 2e 77 69 6e 64 6f 77 73 3b 0d   win32.windows;.
0250: 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20  .private import 
0260: 77 69 6e 33 32 2e 64 69 72 65 63 74 78 2e 64 33  win32.directx.d3
0270: 64 31 30 3b 0d 0a 0d 0a 0d 0a 65 6e 75 6d 20 44  d10;......enum D
0280: 33 44 31 30 5f 44 45 56 49 43 45 5f 53 54 41 54  3D10_DEVICE_STAT
0290: 45 5f 54 59 50 45 53 20 7b 0d 0a 09 44 33 44 31  E_TYPES {...D3D1
02a0: 30 5f 44 53 54 5f 53 4f 5f 42 55 46 46 45 52 53  0_DST_SO_BUFFERS
02b0: 20 3d 20 31 2c 0d 0a 09 44 33 44 31 30 5f 44 53   = 1,...D3D10_DS
02c0: 54 5f 4f 4d 5f 52 45 4e 44 45 52 5f 54 41 52 47  T_OM_RENDER_TARG
02d0: 45 54 53 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54  ETS,...D3D10_DST
02e0: 5f 4f 4d 5f 44 45 50 54 48 5f 53 54 45 4e 43 49  _OM_DEPTH_STENCI
02f0: 4c 5f 53 54 41 54 45 2c 0d 0a 09 44 33 44 31 30  L_STATE,...D3D10
0300: 5f 44 53 54 5f 4f 4d 5f 42 4c 45 4e 44 5f 53 54  _DST_OM_BLEND_ST
0310: 41 54 45 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54  ATE,...D3D10_DST
0320: 5f 56 53 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54  _VS,...D3D10_DST
0330: 5f 56 53 5f 53 41 4d 50 4c 45 52 53 2c 0d 0a 09  _VS_SAMPLERS,...
0340: 44 33 44 31 30 5f 44 53 54 5f 56 53 5f 53 48 41  D3D10_DST_VS_SHA
0350: 44 45 52 5f 52 45 53 4f 55 52 43 45 53 2c 0d 0a  DER_RESOURCES,..
0360: 09 44 33 44 31 30 5f 44 53 54 5f 56 53 5f 43 4f  .D3D10_DST_VS_CO
0370: 4e 53 54 41 4e 54 5f 42 55 46 46 45 52 53 2c 0d  NSTANT_BUFFERS,.
0380: 0a 09 44 33 44 31 30 5f 44 53 54 5f 47 53 2c 0d  ..D3D10_DST_GS,.
0390: 0a 09 44 33 44 31 30 5f 44 53 54 5f 47 53 5f 53  ..D3D10_DST_GS_S
03a0: 41 4d 50 4c 45 52 53 2c 0d 0a 09 44 33 44 31 30  AMPLERS,...D3D10
03b0: 5f 44 53 54 5f 47 53 5f 53 48 41 44 45 52 5f 52  _DST_GS_SHADER_R
03c0: 45 53 4f 55 52 43 45 53 2c 0d 0a 09 44 33 44 31  ESOURCES,...D3D1
03d0: 30 5f 44 53 54 5f 47 53 5f 43 4f 4e 53 54 41 4e  0_DST_GS_CONSTAN
03e0: 54 5f 42 55 46 46 45 52 53 2c 0d 0a 09 44 33 44  T_BUFFERS,...D3D
03f0: 31 30 5f 44 53 54 5f 50 53 2c 0d 0a 09 44 33 44  10_DST_PS,...D3D
0400: 31 30 5f 44 53 54 5f 50 53 5f 53 41 4d 50 4c 45  10_DST_PS_SAMPLE
0410: 52 53 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54 5f  RS,...D3D10_DST_
0420: 50 53 5f 53 48 41 44 45 52 5f 52 45 53 4f 55 52  PS_SHADER_RESOUR
0430: 43 45 53 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54  CES,...D3D10_DST
0440: 5f 50 53 5f 43 4f 4e 53 54 41 4e 54 5f 42 55 46  _PS_CONSTANT_BUF
0450: 46 45 52 53 2c 0d 0a 09 44 33 44 31 30 5f 44 53  FERS,...D3D10_DS
0460: 54 5f 49 41 5f 56 45 52 54 45 58 5f 42 55 46 46  T_IA_VERTEX_BUFF
0470: 45 52 53 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54  ERS,...D3D10_DST
0480: 5f 49 41 5f 49 4e 44 45 58 5f 42 55 46 46 45 52  _IA_INDEX_BUFFER
0490: 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54 5f 49 41  ,...D3D10_DST_IA
04a0: 5f 49 4e 50 55 54 5f 4c 41 59 4f 55 54 2c 0d 0a  _INPUT_LAYOUT,..
04b0: 09 44 33 44 31 30 5f 44 53 54 5f 49 41 5f 50 52  .D3D10_DST_IA_PR
04c0: 49 4d 49 54 49 56 45 5f 54 4f 50 4f 4c 4f 47 59  IMITIVE_TOPOLOGY
04d0: 2c 0d 0a 09 44 33 44 31 30 5f 44 53 54 5f 52 53  ,...D3D10_DST_RS
04e0: 5f 56 49 45 57 50 4f 52 54 53 2c 0d 0a 09 44 33  _VIEWPORTS,...D3
04f0: 44 31 30 5f 44 53 54 5f 52 53 5f 53 43 49 53 53  D10_DST_RS_SCISS
0500: 4f 52 5f 52 45 43 54 53 2c 0d 0a 09 44 33 44 31  OR_RECTS,...D3D1
0510: 30 5f 44 53 54 5f 52 53 5f 52 41 53 54 45 52 49  0_DST_RS_RASTERI
0520: 5a 45 52 5f 53 54 41 54 45 2c 0d 0a 09 44 33 44  ZER_STATE,...D3D
0530: 31 30 5f 44 53 54 5f 50 52 45 44 49 43 41 54 49  10_DST_PREDICATI
0540: 4f 4e 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20  ON..}....struct 
0550: 44 33 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43  D3D10_STATE_BLOC
0560: 4b 5f 4d 41 53 4b 20 7b 0d 0a 09 42 59 54 45 20  K_MASK {...BYTE 
0570: 56 53 3b 0d 0a 09 42 59 54 45 5b 32 5d 20 56 53  VS;...BYTE[2] VS
0580: 53 61 6d 70 6c 65 72 73 3b 0d 0a 09 42 59 54 45  Samplers;...BYTE
0590: 5b 31 36 5d 20 56 53 53 68 61 64 65 72 52 65 73  [16] VSShaderRes
05a0: 6f 75 72 63 65 73 3b 0d 0a 09 42 59 54 45 5b 32  ources;...BYTE[2
05b0: 5d 20 56 53 43 6f 6e 73 74 61 6e 74 42 75 66 66  ] VSConstantBuff
05c0: 65 72 73 3b 0d 0a 09 42 59 54 45 20 47 53 3b 0d  ers;...BYTE GS;.
05d0: 0a 09 42 59 54 45 5b 32 5d 20 47 53 53 61 6d 70  ..BYTE[2] GSSamp
05e0: 6c 65 72 73 3b 0d 0a 09 42 59 54 45 5b 31 36 5d  lers;...BYTE[16]
05f0: 20 47 53 53 68 61 64 65 72 52 65 73 6f 75 72 63   GSShaderResourc
0600: 65 73 3b 0d 0a 09 42 59 54 45 5b 32 5d 20 47 53  es;...BYTE[2] GS
0610: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 73 3b  ConstantBuffers;
0620: 0d 0a 09 42 59 54 45 20 50 53 3b 0d 0a 09 42 59  ...BYTE PS;...BY
0630: 54 45 5b 32 5d 20 50 53 53 61 6d 70 6c 65 72 73  TE[2] PSSamplers
0640: 3b 0d 0a 09 42 59 54 45 5b 31 36 5d 20 50 53 53  ;...BYTE[16] PSS
0650: 68 61 64 65 72 52 65 73 6f 75 72 63 65 73 3b 0d  haderResources;.
0660: 0a 09 42 59 54 45 5b 32 5d 20 50 53 43 6f 6e 73  ..BYTE[2] PSCons
0670: 74 61 6e 74 42 75 66 66 65 72 73 3b 0d 0a 09 42  tantBuffers;...B
0680: 59 54 45 5b 32 5d 20 49 41 56 65 72 74 65 78 42  YTE[2] IAVertexB
0690: 75 66 66 65 72 73 3b 0d 0a 09 42 59 54 45 20 49  uffers;...BYTE I
06a0: 41 49 6e 64 65 78 42 75 66 66 65 72 3b 0d 0a 09  AIndexBuffer;...
06b0: 42 59 54 45 20 49 41 49 6e 70 75 74 4c 61 79 6f  BYTE IAInputLayo
06c0: 75 74 3b 0d 0a 09 42 59 54 45 20 49 41 50 72 69  ut;...BYTE IAPri
06d0: 6d 69 74 69 76 65 54 6f 70 6f 6c 6f 67 79 3b 0d  mitiveTopology;.
06e0: 0a 09 42 59 54 45 20 4f 4d 52 65 6e 64 65 72 54  ..BYTE OMRenderT
06f0: 61 72 67 65 74 73 3b 0d 0a 09 42 59 54 45 20 4f  argets;...BYTE O
0700: 4d 44 65 70 74 68 53 74 65 6e 63 69 6c 53 74 61  MDepthStencilSta
0710: 74 65 3b 0d 0a 09 42 59 54 45 20 4f 4d 42 6c 65  te;...BYTE OMBle
0720: 6e 64 53 74 61 74 65 3b 0d 0a 09 42 59 54 45 20  ndState;...BYTE 
0730: 52 53 56 69 65 77 70 6f 72 74 73 3b 0d 0a 09 42  RSViewports;...B
0740: 59 54 45 20 52 53 53 63 69 73 73 6f 72 52 65 63  YTE RSScissorRec
0750: 74 73 3b 0d 0a 09 42 59 54 45 20 52 53 52 61 73  ts;...BYTE RSRas
0760: 74 65 72 69 7a 65 72 53 74 61 74 65 3b 0d 0a 09  terizerState;...
0770: 42 59 54 45 20 53 4f 42 75 66 66 65 72 73 3b 0d  BYTE SOBuffers;.
0780: 0a 09 42 59 54 45 20 50 72 65 64 69 63 61 74 69  ..BYTE Predicati
0790: 6f 6e 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e  on;..}....extern
07a0: 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20   (C) const GUID 
07b0: 49 49 44 5f 49 44 33 44 31 30 53 74 61 74 65 42  IID_ID3D10StateB
07c0: 6c 6f 63 6b 20 3d 20 7b 30 78 38 30 33 34 32 35  lock = {0x803425
07d0: 61 2c 20 30 78 35 37 66 35 2c 20 30 78 34 64 64  a, 0x57f5, 0x4dd
07e0: 36 2c 20 5b 30 78 39 34 2c 20 30 78 36 35 2c 20  6, [0x94, 0x65, 
07f0: 30 78 61 38 2c 20 30 78 37 35 2c 20 30 78 37 30  0xa8, 0x75, 0x70
0800: 2c 20 30 78 38 33 2c 20 30 78 34 61 2c 20 30 78  , 0x83, 0x4a, 0x
0810: 30 38 5d 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61  08]};....interfa
0820: 63 65 20 49 44 33 44 31 30 53 74 61 74 65 42 6c  ce ID3D10StateBl
0830: 6f 63 6b 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b  ock : IUnknown {
0840: 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
0850: 73 29 20 3a 0d 0a 09 48 52 45 53 55 4c 54 20 43  s) :...HRESULT C
0860: 61 70 74 75 72 65 28 29 3b 0d 0a 09 48 52 45 53  apture();...HRES
0870: 55 4c 54 20 41 70 70 6c 79 28 29 3b 0d 0a 09 48  ULT Apply();...H
0880: 52 45 53 55 4c 54 20 52 65 6c 65 61 73 65 41 6c  RESULT ReleaseAl
0890: 6c 44 65 76 69 63 65 4f 62 6a 65 63 74 73 28 29  lDeviceObjects()
08a0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44  ;...HRESULT GetD
08b0: 65 76 69 63 65 28 49 44 33 44 31 30 44 65 76 69  evice(ID3D10Devi
08c0: 63 65 20 70 70 44 65 76 69 63 65 29 3b 0d 0a 7d  ce ppDevice);..}
08d0: 0d 0a 0d 0a 48 52 45 53 55 4c 54 20 44 33 44 31  ....HRESULT D3D1
08e0: 30 53 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 55  0StateBlockMaskU
08f0: 6e 69 6f 6e 28 44 33 44 31 30 5f 53 54 41 54 45  nion(D3D10_STATE
0900: 5f 42 4c 4f 43 4b 5f 4d 41 53 4b 2a 20 70 41 2c  _BLOCK_MASK* pA,
0910: 20 44 33 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f   D3D10_STATE_BLO
0920: 43 4b 5f 4d 41 53 4b 2a 20 70 42 2c 20 44 33 44  CK_MASK* pB, D3D
0930: 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d  10_STATE_BLOCK_M
0940: 41 53 4b 2a 20 70 52 65 73 75 6c 74 29 3b 0d 0a  ASK* pResult);..
0950: 48 52 45 53 55 4c 54 20 44 33 44 31 30 53 74 61  HRESULT D3D10Sta
0960: 74 65 42 6c 6f 63 6b 4d 61 73 6b 49 6e 74 65 72  teBlockMaskInter
0970: 73 65 63 74 28 44 33 44 31 30 5f 53 54 41 54 45  sect(D3D10_STATE
0980: 5f 42 4c 4f 43 4b 5f 4d 41 53 4b 2a 20 70 41 2c  _BLOCK_MASK* pA,
0990: 20 44 33 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f   D3D10_STATE_BLO
09a0: 43 4b 5f 4d 41 53 4b 2a 20 70 42 2c 20 44 33 44  CK_MASK* pB, D3D
09b0: 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d  10_STATE_BLOCK_M
09c0: 41 53 4b 2a 20 70 52 65 73 75 6c 74 29 3b 0d 0a  ASK* pResult);..
09d0: 48 52 45 53 55 4c 54 20 44 33 44 31 30 53 74 61  HRESULT D3D10Sta
09e0: 74 65 42 6c 6f 63 6b 4d 61 73 6b 44 69 66 66 65  teBlockMaskDiffe
09f0: 72 65 6e 63 65 28 44 33 44 31 30 5f 53 54 41 54  rence(D3D10_STAT
0a00: 45 5f 42 4c 4f 43 4b 5f 4d 41 53 4b 2a 20 70 41  E_BLOCK_MASK* pA
0a10: 2c 20 44 33 44 31 30 5f 53 54 41 54 45 5f 42 4c  , D3D10_STATE_BL
0a20: 4f 43 4b 5f 4d 41 53 4b 2a 20 70 42 2c 20 44 33  OCK_MASK* pB, D3
0a30: 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43 4b 5f  D10_STATE_BLOCK_
0a40: 4d 41 53 4b 2a 20 70 52 65 73 75 6c 74 29 3b 0d  MASK* pResult);.
0a50: 0a 48 52 45 53 55 4c 54 20 44 33 44 31 30 53 74  .HRESULT D3D10St
0a60: 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 45 6e 61 62  ateBlockMaskEnab
0a70: 6c 65 43 61 70 74 75 72 65 28 44 33 44 31 30 5f  leCapture(D3D10_
0a80: 53 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d 41 53 4b  STATE_BLOCK_MASK
0a90: 2a 20 70 4d 61 73 6b 2c 20 44 33 44 31 30 5f 44  * pMask, D3D10_D
0aa0: 45 56 49 43 45 5f 53 54 41 54 45 5f 54 59 50 45  EVICE_STATE_TYPE
0ab0: 53 20 53 74 61 74 65 54 79 70 65 2c 20 55 49 4e  S StateType, UIN
0ac0: 54 20 52 61 6e 67 65 53 74 61 72 74 2c 20 55 49  T RangeStart, UI
0ad0: 4e 54 20 52 61 6e 67 65 4c 65 6e 67 74 68 29 3b  NT RangeLength);
0ae0: 0d 0a 48 52 45 53 55 4c 54 20 44 33 44 31 30 53  ..HRESULT D3D10S
0af0: 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 44 69 73  tateBlockMaskDis
0b00: 61 62 6c 65 43 61 70 74 75 72 65 28 44 33 44 31  ableCapture(D3D1
0b10: 30 5f 53 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d 41  0_STATE_BLOCK_MA
0b20: 53 4b 2a 20 70 4d 61 73 6b 2c 20 44 33 44 31 30  SK* pMask, D3D10
0b30: 5f 44 45 56 49 43 45 5f 53 54 41 54 45 5f 54 59  _DEVICE_STATE_TY
0b40: 50 45 53 20 53 74 61 74 65 54 79 70 65 2c 20 55  PES StateType, U
0b50: 49 4e 54 20 52 61 6e 67 65 53 74 61 72 74 2c 20  INT RangeStart, 
0b60: 55 49 4e 54 20 52 61 6e 67 65 4c 65 6e 67 74 68  UINT RangeLength
0b70: 29 3b 0d 0a 48 52 45 53 55 4c 54 20 44 33 44 31  );..HRESULT D3D1
0b80: 30 53 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 45  0StateBlockMaskE
0b90: 6e 61 62 6c 65 41 6c 6c 28 44 33 44 31 30 5f 53  nableAll(D3D10_S
0ba0: 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d 41 53 4b 2a  TATE_BLOCK_MASK*
0bb0: 20 70 4d 61 73 6b 29 3b 0d 0a 48 52 45 53 55 4c   pMask);..HRESUL
0bc0: 54 20 44 33 44 31 30 53 74 61 74 65 42 6c 6f 63  T D3D10StateBloc
0bd0: 6b 4d 61 73 6b 44 69 73 61 62 6c 65 41 6c 6c 28  kMaskDisableAll(
0be0: 44 33 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43  D3D10_STATE_BLOC
0bf0: 4b 5f 4d 41 53 4b 2a 20 70 4d 61 73 6b 29 3b 0d  K_MASK* pMask);.
0c00: 0a 42 4f 4f 4c 20 44 33 44 31 30 53 74 61 74 65  .BOOL D3D10State
0c10: 42 6c 6f 63 6b 4d 61 73 6b 47 65 74 53 65 74 74  BlockMaskGetSett
0c20: 69 6e 67 28 44 33 44 31 30 5f 53 54 41 54 45 5f  ing(D3D10_STATE_
0c30: 42 4c 4f 43 4b 5f 4d 41 53 4b 2a 20 70 4d 61 73  BLOCK_MASK* pMas
0c40: 6b 2c 20 44 33 44 31 30 5f 44 45 56 49 43 45 5f  k, D3D10_DEVICE_
0c50: 53 54 41 54 45 5f 54 59 50 45 53 20 53 74 61 74  STATE_TYPES Stat
0c60: 65 54 79 70 65 2c 20 55 49 4e 54 20 45 6e 74 72  eType, UINT Entr
0c70: 79 29 3b 0d 0a 48 52 45 53 55 4c 54 20 44 33 44  y);..HRESULT D3D
0c80: 31 30 43 72 65 61 74 65 53 74 61 74 65 42 6c 6f  10CreateStateBlo
0c90: 63 6b 28 49 44 33 44 31 30 44 65 76 69 63 65 20  ck(ID3D10Device 
0ca0: 70 44 65 76 69 63 65 2c 20 44 33 44 31 30 5f 53  pDevice, D3D10_S
0cb0: 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d 41 53 4b 2a  TATE_BLOCK_MASK*
0cc0: 20 70 53 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b   pStateBlockMask
0cd0: 2c 20 49 44 33 44 31 30 53 74 61 74 65 42 6c 6f  , ID3D10StateBlo
0ce0: 63 6b 20 70 70 53 74 61 74 65 42 6c 6f 63 6b 29  ck ppStateBlock)
0cf0: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 44 33 44 31 30  ;....const D3D10
0d00: 5f 45 46 46 45 43 54 5f 43 4f 4d 50 49 4c 45 5f  _EFFECT_COMPILE_
0d10: 43 48 49 4c 44 5f 45 46 46 45 43 54 09 09 09 3d  CHILD_EFFECT...=
0d20: 20 31 20 3c 3c 20 30 3b 0d 0a 63 6f 6e 73 74 20   1 << 0;..const 
0d30: 44 33 44 31 30 5f 45 46 46 45 43 54 5f 43 4f 4d  D3D10_EFFECT_COM
0d40: 50 49 4c 45 5f 41 4c 4c 4f 57 5f 53 4c 4f 57 5f  PILE_ALLOW_SLOW_
0d50: 4f 50 53 09 09 3d 20 31 20 3c 3c 20 31 3b 0d 0a  OPS..= 1 << 1;..
0d60: 63 6f 6e 73 74 20 44 33 44 31 30 5f 45 46 46 45  const D3D10_EFFE
0d70: 43 54 5f 53 49 4e 47 4c 45 5f 54 48 52 45 41 44  CT_SINGLE_THREAD
0d80: 45 44 09 09 09 09 3d 20 31 20 3c 3c 20 33 3b 0d  ED....= 1 << 3;.
0d90: 0a 63 6f 6e 73 74 20 44 33 44 31 30 5f 45 46 46  .const D3D10_EFF
0da0: 45 43 54 5f 56 41 52 49 41 42 4c 45 5f 50 4f 4f  ECT_VARIABLE_POO
0db0: 4c 45 44 09 09 09 09 3d 20 31 20 3c 3c 20 30 3b  LED....= 1 << 0;
0dc0: 0d 0a 63 6f 6e 73 74 20 44 33 44 31 30 5f 45 46  ..const D3D10_EF
0dd0: 46 45 43 54 5f 56 41 52 49 41 42 4c 45 5f 41 4e  FECT_VARIABLE_AN
0de0: 4e 4f 54 41 54 49 4f 4e 09 09 09 3d 20 31 20 3c  NOTATION...= 1 <
0df0: 3c 20 31 3b 0d 0a 63 6f 6e 73 74 20 44 33 44 31  < 1;..const D3D1
0e00: 30 5f 45 46 46 45 43 54 5f 56 41 52 49 41 42 4c  0_EFFECT_VARIABL
0e10: 45 5f 45 58 50 4c 49 43 49 54 5f 42 49 4e 44 5f  E_EXPLICIT_BIND_
0e20: 50 4f 49 4e 54 09 3d 20 31 20 3c 3c 20 32 3b 0d  POINT.= 1 << 2;.
0e30: 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 31 30 5f  ...struct D3D10_
0e40: 45 46 46 45 43 54 5f 54 59 50 45 5f 44 45 53 43  EFFECT_TYPE_DESC
0e50: 20 7b 0d 0a 09 4c 50 43 53 54 52 09 54 79 70 65   {...LPCSTR.Type
0e60: 4e 61 6d 65 3b 0d 0a 09 44 33 44 31 30 5f 53 48  Name;...D3D10_SH
0e70: 41 44 45 52 5f 56 41 52 49 41 42 4c 45 5f 43 4c  ADER_VARIABLE_CL
0e80: 41 53 53 09 43 6c 61 73 73 3b 0d 0a 09 44 33 44  ASS.Class;...D3D
0e90: 31 30 5f 53 48 41 44 45 52 5f 56 41 52 49 41 42  10_SHADER_VARIAB
0ea0: 4c 45 5f 54 59 50 45 09 54 79 70 65 3b 0d 0a 09  LE_TYPE.Type;...
0eb0: 55 49 4e 54 09 45 6c 65 6d 65 6e 74 73 3b 0d 0a  UINT.Elements;..
0ec0: 09 55 49 4e 54 09 4d 65 6d 62 65 72 73 3b 0d 0a  .UINT.Members;..
0ed0: 09 55 49 4e 54 09 52 6f 77 73 3b 0d 0a 09 55 49  .UINT.Rows;...UI
0ee0: 4e 54 09 43 6f 6c 75 6d 6e 73 3b 0d 0a 09 55 49  NT.Columns;...UI
0ef0: 4e 54 09 50 61 63 6b 65 64 53 69 7a 65 3b 0d 0a  NT.PackedSize;..
0f00: 09 55 49 4e 54 09 55 6e 70 61 63 6b 65 64 53 69  .UINT.UnpackedSi
0f10: 7a 65 3b 0d 0a 09 55 49 4e 54 09 53 74 72 69 64  ze;...UINT.Strid
0f20: 65 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20  e;..}....extern 
0f30: 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49  (C) const GUID I
0f40: 49 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 54  ID_ID3D10EffectT
0f50: 79 70 65 20 3d 20 7b 30 78 34 65 39 65 31 64 64  ype = {0x4e9e1dd
0f60: 63 2c 20 30 78 63 64 39 64 2c 20 30 78 34 37 37  c, 0xcd9d, 0x477
0f70: 32 2c 20 5b 30 78 61 38 2c 20 30 78 33 37 2c 20  2, [0xa8, 0x37, 
0f80: 30 78 30 2c 20 30 78 31 38 2c 20 30 78 30 62 2c  0x0, 0x18, 0x0b,
0f90: 20 30 78 39 62 2c 20 30 78 38 38 2c 20 30 78 66   0x9b, 0x88, 0xf
0fa0: 64 5d 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63  d]};....interfac
0fb0: 65 20 49 44 33 44 31 30 45 66 66 65 63 74 54 79  e ID3D10EffectTy
0fc0: 70 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f 3a 20 66  pe {../* TODO: f
0fd0: 69 78 20 76 74 62 6c 5b 30 5d 20 62 75 67 0d 0a  ix vtbl[0] bug..
0fe0: 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
0ff0: 20 3a 0d 0a 09 42 4f 4f 4c 20 49 73 56 61 6c 69   :...BOOL IsVali
1000: 64 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47  d();...HRESULT G
1010: 65 74 44 65 73 63 28 44 33 44 31 30 5f 45 46 46  etDesc(D3D10_EFF
1020: 45 43 54 5f 54 59 50 45 5f 44 45 53 43 2a 20 70  ECT_TYPE_DESC* p
1030: 44 65 73 63 29 3b 0d 0a 09 49 44 33 44 31 30 45  Desc);...ID3D10E
1040: 66 66 65 63 74 54 79 70 65 20 47 65 74 4d 65 6d  ffectType GetMem
1050: 62 65 72 54 79 70 65 42 79 49 6e 64 65 78 28 55  berTypeByIndex(U
1060: 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44  INT Index);...ID
1070: 33 44 31 30 45 66 66 65 63 74 54 79 70 65 20 47  3D10EffectType G
1080: 65 74 4d 65 6d 62 65 72 54 79 70 65 42 79 4e 61  etMemberTypeByNa
1090: 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b  me(LPCSTR Name);
10a0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 54  ...ID3D10EffectT
10b0: 79 70 65 20 47 65 74 4d 65 6d 62 65 72 54 79 70  ype GetMemberTyp
10c0: 65 42 79 53 65 6d 61 6e 74 69 63 28 4c 50 43 53  eBySemantic(LPCS
10d0: 54 52 20 53 65 6d 61 6e 74 69 63 29 3b 0d 0a 09  TR Semantic);...
10e0: 4c 50 43 53 54 52 20 47 65 74 4d 65 6d 62 65 72  LPCSTR GetMember
10f0: 4e 61 6d 65 28 55 49 4e 54 20 49 6e 64 65 78 29  Name(UINT Index)
1100: 3b 0d 0a 09 4c 50 43 53 54 52 20 47 65 74 4d 65  ;...LPCSTR GetMe
1110: 6d 62 65 72 53 65 6d 61 6e 74 69 63 28 55 49 4e  mberSemantic(UIN
1120: 54 20 49 6e 64 65 78 29 3b 0d 0a 09 2a 2f 0d 0a  T Index);...*/..
1130: 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 33 44 31  }....struct D3D1
1140: 30 5f 45 46 46 45 43 54 5f 56 41 52 49 41 42 4c  0_EFFECT_VARIABL
1150: 45 5f 44 45 53 43 20 7b 0d 0a 09 4c 50 43 53 54  E_DESC {...LPCST
1160: 52 09 4e 61 6d 65 3b 0d 0a 09 4c 50 43 53 54 52  R.Name;...LPCSTR
1170: 09 53 65 6d 61 6e 74 69 63 3b 0d 0a 09 55 49 4e  .Semantic;...UIN
1180: 54 09 46 6c 61 67 73 3b 0d 0a 09 55 49 4e 54 09  T.Flags;...UINT.
1190: 41 6e 6e 6f 74 61 74 69 6f 6e 73 3b 0d 0a 09 55  Annotations;...U
11a0: 49 4e 54 09 42 75 66 66 65 72 4f 66 66 73 65 74  INT.BufferOffset
11b0: 3b 0d 0a 09 55 49 4e 54 09 45 78 70 6c 69 63 69  ;...UINT.Explici
11c0: 74 42 69 6e 64 50 6f 69 6e 74 3b 0d 0a 7d 0d 0a  tBindPoint;..}..
11d0: 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e  ..extern (C) con
11e0: 73 74 20 47 55 49 44 20 49 49 44 5f 49 44 33 44  st GUID IID_ID3D
11f0: 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65  10EffectVariable
1200: 20 3d 20 7b 30 78 61 65 38 39 37 31 30 35 2c 20   = {0xae897105, 
1210: 30 78 30 30 65 36 2c 20 30 78 34 35 62 66 2c 20  0x00e6, 0x45bf, 
1220: 5b 30 78 62 62 2c 20 30 78 38 65 2c 20 30 78 32  [0xbb, 0x8e, 0x2
1230: 38 2c 20 30 78 31 64 2c 20 30 78 64 36 2c 20 30  8, 0x1d, 0xd6, 0
1240: 78 64 62 2c 20 30 78 38 65 2c 20 30 78 31 62 5d  xdb, 0x8e, 0x1b]
1250: 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  };....interface 
1260: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
1270: 61 62 6c 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f 3a  able {../* TODO:
1280: 20 66 69 78 20 76 74 62 6c 5b 30 5d 20 62 75 67   fix vtbl[0] bug
1290: 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
12a0: 73 29 20 3a 0d 0a 09 42 4f 4f 4c 20 49 73 56 61  s) :...BOOL IsVa
12b0: 6c 69 64 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  lid();...ID3D10E
12c0: 66 66 65 63 74 54 79 70 65 20 47 65 74 54 79 70  ffectType GetTyp
12d0: 65 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47  e();...HRESULT G
12e0: 65 74 44 65 73 63 28 44 33 44 31 30 5f 45 46 46  etDesc(D3D10_EFF
12f0: 45 43 54 5f 56 41 52 49 41 42 4c 45 5f 44 45 53  ECT_VARIABLE_DES
1300: 43 2a 20 70 44 65 73 63 29 3b 0d 0a 09 49 44 33  C* pDesc);...ID3
1310: 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c  D10EffectVariabl
1320: 65 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42  e GetAnnotationB
1330: 79 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65  yIndex(UINT Inde
1340: 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  x);...ID3D10Effe
1350: 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 41 6e  ctVariable GetAn
1360: 6e 6f 74 61 74 69 6f 6e 42 79 4e 61 6d 65 28 4c  notationByName(L
1370: 50 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49  PCSTR Name);...I
1380: 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61  D3D10EffectVaria
1390: 62 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 49  ble GetMemberByI
13a0: 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29  ndex(UINT Index)
13b0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
13c0: 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62  Variable GetMemb
13d0: 65 72 42 79 4e 61 6d 65 28 4c 50 43 53 54 52 20  erByName(LPCSTR 
13e0: 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30 45  Name);...ID3D10E
13f0: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
1400: 74 4d 65 6d 62 65 72 42 79 53 65 6d 61 6e 74 69  tMemberBySemanti
1410: 63 28 4c 50 43 53 54 52 20 53 65 6d 61 6e 74 69  c(LPCSTR Semanti
1420: 63 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  c);...ID3D10Effe
1430: 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 45 6c  ctVariable GetEl
1440: 65 6d 65 6e 74 28 55 49 4e 54 20 49 6e 64 65 78  ement(UINT Index
1450: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
1460: 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20  tConstantBuffer 
1470: 47 65 74 50 61 72 65 6e 74 43 6f 6e 73 74 61 6e  GetParentConstan
1480: 74 42 75 66 66 65 72 28 29 3b 0d 0a 09 49 44 33  tBuffer();...ID3
1490: 44 31 30 45 66 66 65 63 74 53 63 61 6c 61 72 56  D10EffectScalarV
14a0: 61 72 69 61 62 6c 65 20 41 73 53 63 61 6c 61 72  ariable AsScalar
14b0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
14c0: 63 74 56 65 63 74 6f 72 56 61 72 69 61 62 6c 65  ctVectorVariable
14d0: 20 41 73 56 65 63 74 6f 72 28 29 3b 0d 0a 09 49   AsVector();...I
14e0: 44 33 44 31 30 45 66 66 65 63 74 4d 61 74 72 69  D3D10EffectMatri
14f0: 78 56 61 72 69 61 62 6c 65 20 41 73 4d 61 74 72  xVariable AsMatr
1500: 69 78 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ix();...ID3D10Ef
1510: 66 65 63 74 53 74 72 69 6e 67 56 61 72 69 61 62  fectStringVariab
1520: 6c 65 20 41 73 53 74 72 69 6e 67 28 29 3b 0d 0a  le AsString();..
1530: 09 49 44 33 44 31 30 45 66 66 65 63 74 53 68 61  .ID3D10EffectSha
1540: 64 65 72 52 65 73 6f 75 72 63 65 56 61 72 69 61  derResourceVaria
1550: 62 6c 65 20 41 73 53 68 61 64 65 72 52 65 73 6f  ble AsShaderReso
1560: 75 72 63 65 28 29 3b 0d 0a 09 49 44 33 44 31 30  urce();...ID3D10
1570: 45 66 66 65 63 74 52 65 6e 64 65 72 54 61 72 67  EffectRenderTarg
1580: 65 74 56 69 65 77 56 61 72 69 61 62 6c 65 20 41  etViewVariable A
1590: 73 52 65 6e 64 65 72 54 61 72 67 65 74 56 69 65  sRenderTargetVie
15a0: 77 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  w();...ID3D10Eff
15b0: 65 63 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56  ectDepthStencilV
15c0: 69 65 77 56 61 72 69 61 62 6c 65 20 41 73 44 65  iewVariable AsDe
15d0: 70 74 68 53 74 65 6e 63 69 6c 56 69 65 77 28 29  pthStencilView()
15e0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
15f0: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20 41  ConstantBuffer A
1600: 73 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 28  sConstantBuffer(
1610: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
1620: 74 53 68 61 64 65 72 56 61 72 69 61 62 6c 65 20  tShaderVariable 
1630: 41 73 53 68 61 64 65 72 28 29 3b 0d 0a 09 49 44  AsShader();...ID
1640: 33 44 31 30 45 66 66 65 63 74 42 6c 65 6e 64 56  3D10EffectBlendV
1650: 61 72 69 61 62 6c 65 20 41 73 42 6c 65 6e 64 28  ariable AsBlend(
1660: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
1670: 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56 61 72  tDepthStencilVar
1680: 69 61 62 6c 65 20 41 73 44 65 70 74 68 53 74 65  iable AsDepthSte
1690: 6e 63 69 6c 28 29 3b 0d 0a 09 49 44 33 44 31 30  ncil();...ID3D10
16a0: 45 66 66 65 63 74 52 61 73 74 65 72 69 7a 65 72  EffectRasterizer
16b0: 56 61 72 69 61 62 6c 65 20 41 73 52 61 73 74 65  Variable AsRaste
16c0: 72 69 7a 65 72 28 29 3b 0d 0a 09 49 44 33 44 31  rizer();...ID3D1
16d0: 30 45 66 66 65 63 74 53 61 6d 70 6c 65 72 56 61  0EffectSamplerVa
16e0: 72 69 61 62 6c 65 20 41 73 53 61 6d 70 6c 65 72  riable AsSampler
16f0: 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65  ();...HRESULT Se
1700: 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20  tRawValue(void* 
1710: 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73  pData, UINT Offs
1720: 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b  et, UINT Count);
1730: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 52 61  ...HRESULT GetRa
1740: 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61  wValue(void* pDa
1750: 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c  ta, UINT Offset,
1760: 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09   UINT Count);...
1770: 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20  */..}....extern 
1780: 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49  (C) const GUID I
1790: 49 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 53  ID_ID3D10EffectS
17a0: 63 61 6c 61 72 56 61 72 69 61 62 6c 65 20 3d 20  calarVariable = 
17b0: 7b 30 78 65 34 38 66 37 62 2c 20 30 78 64 32 63  {0xe48f7b, 0xd2c
17c0: 38 2c 20 30 78 34 39 65 38 2c 20 5b 30 78 61 38  8, 0x49e8, [0xa8
17d0: 2c 20 30 78 36 63 2c 20 30 78 32 2c 20 30 78 32  , 0x6c, 0x2, 0x2
17e0: 64 2c 20 30 78 65 65 2c 20 30 78 35 33 2c 20 30  d, 0xee, 0x53, 0
17f0: 78 34 33 2c 20 30 78 31 66 5d 7d 3b 0d 0a 0d 0a  x43, 0x1f]};....
1800: 69 6e 74 65 72 66 61 63 65 20 49 44 33 44 31 30  interface ID3D10
1810: 45 66 66 65 63 74 53 63 61 6c 61 72 56 61 72 69  EffectScalarVari
1820: 61 62 6c 65 20 3a 20 49 44 33 44 31 30 45 66 66  able : ID3D10Eff
1830: 65 63 74 56 61 72 69 61 62 6c 65 20 7b 0d 0a 2f  ectVariable {../
1840: 2a 20 54 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c  * TODO: fix vtbl
1850: 5b 30 5d 20 62 75 67 0d 0a 09 65 78 74 65 72 6e  [0] bug...extern
1860: 28 57 69 6e 64 6f 77 73 29 20 3a 0d 0a 09 42 4f  (Windows) :...BO
1870: 4f 4c 20 49 73 56 61 6c 69 64 28 29 3b 0d 0a 09  OL IsValid();...
1880: 49 44 33 44 31 30 45 66 66 65 63 74 54 79 70 65  ID3D10EffectType
1890: 20 47 65 74 54 79 70 65 28 29 3b 0d 0a 09 48 52   GetType();...HR
18a0: 45 53 55 4c 54 20 47 65 74 44 65 73 63 28 44 33  ESULT GetDesc(D3
18b0: 44 31 30 5f 45 46 46 45 43 54 5f 56 41 52 49 41  D10_EFFECT_VARIA
18c0: 42 4c 45 5f 44 45 53 43 2a 20 70 44 65 73 63 29  BLE_DESC* pDesc)
18d0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
18e0: 56 61 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f  Variable GetAnno
18f0: 74 61 74 69 6f 6e 42 79 49 6e 64 65 78 28 55 49  tationByIndex(UI
1900: 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33  NT Index);...ID3
1910: 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c  D10EffectVariabl
1920: 65 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42  e GetAnnotationB
1930: 79 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d  yName(LPCSTR Nam
1940: 65 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  e);...ID3D10Effe
1950: 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65  ctVariable GetMe
1960: 6d 62 65 72 42 79 49 6e 64 65 78 28 55 49 4e 54  mberByIndex(UINT
1970: 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31   Index);...ID3D1
1980: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
1990: 47 65 74 4d 65 6d 62 65 72 42 79 4e 61 6d 65 28  GetMemberByName(
19a0: 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09  LPCSTR Name);...
19b0: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
19c0: 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79  able GetMemberBy
19d0: 53 65 6d 61 6e 74 69 63 28 4c 50 43 53 54 52 20  Semantic(LPCSTR 
19e0: 53 65 6d 61 6e 74 69 63 29 3b 0d 0a 09 49 44 33  Semantic);...ID3
19f0: 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c  D10EffectVariabl
1a00: 65 20 47 65 74 45 6c 65 6d 65 6e 74 28 55 49 4e  e GetElement(UIN
1a10: 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44  T Index);...ID3D
1a20: 31 30 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74  10EffectConstant
1a30: 42 75 66 66 65 72 20 47 65 74 50 61 72 65 6e 74  Buffer GetParent
1a40: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29  ConstantBuffer()
1a50: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
1a60: 53 63 61 6c 61 72 56 61 72 69 61 62 6c 65 20 41  ScalarVariable A
1a70: 73 53 63 61 6c 61 72 28 29 3b 0d 0a 09 49 44 33  sScalar();...ID3
1a80: 44 31 30 45 66 66 65 63 74 56 65 63 74 6f 72 56  D10EffectVectorV
1a90: 61 72 69 61 62 6c 65 20 41 73 56 65 63 74 6f 72  ariable AsVector
1aa0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
1ab0: 63 74 4d 61 74 72 69 78 56 61 72 69 61 62 6c 65  ctMatrixVariable
1ac0: 20 41 73 4d 61 74 72 69 78 28 29 3b 0d 0a 09 49   AsMatrix();...I
1ad0: 44 33 44 31 30 45 66 66 65 63 74 53 74 72 69 6e  D3D10EffectStrin
1ae0: 67 56 61 72 69 61 62 6c 65 20 41 73 53 74 72 69  gVariable AsStri
1af0: 6e 67 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ng();...ID3D10Ef
1b00: 66 65 63 74 53 68 61 64 65 72 52 65 73 6f 75 72  fectShaderResour
1b10: 63 65 56 61 72 69 61 62 6c 65 20 41 73 53 68 61  ceVariable AsSha
1b20: 64 65 72 52 65 73 6f 75 72 63 65 28 29 3b 0d 0a  derResource();..
1b30: 09 49 44 33 44 31 30 45 66 66 65 63 74 52 65 6e  .ID3D10EffectRen
1b40: 64 65 72 54 61 72 67 65 74 56 69 65 77 56 61 72  derTargetViewVar
1b50: 69 61 62 6c 65 20 41 73 52 65 6e 64 65 72 54 61  iable AsRenderTa
1b60: 72 67 65 74 56 69 65 77 28 29 3b 0d 0a 09 49 44  rgetView();...ID
1b70: 33 44 31 30 45 66 66 65 63 74 44 65 70 74 68 53  3D10EffectDepthS
1b80: 74 65 6e 63 69 6c 56 69 65 77 56 61 72 69 61 62  tencilViewVariab
1b90: 6c 65 20 41 73 44 65 70 74 68 53 74 65 6e 63 69  le AsDepthStenci
1ba0: 6c 56 69 65 77 28 29 3b 0d 0a 09 49 44 33 44 31  lView();...ID3D1
1bb0: 30 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42  0EffectConstantB
1bc0: 75 66 66 65 72 20 41 73 43 6f 6e 73 74 61 6e 74  uffer AsConstant
1bd0: 42 75 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44  Buffer();...ID3D
1be0: 31 30 45 66 66 65 63 74 53 68 61 64 65 72 56 61  10EffectShaderVa
1bf0: 72 69 61 62 6c 65 20 41 73 53 68 61 64 65 72 28  riable AsShader(
1c00: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
1c10: 74 42 6c 65 6e 64 56 61 72 69 61 62 6c 65 20 41  tBlendVariable A
1c20: 73 42 6c 65 6e 64 28 29 3b 0d 0a 09 49 44 33 44  sBlend();...ID3D
1c30: 31 30 45 66 66 65 63 74 44 65 70 74 68 53 74 65  10EffectDepthSte
1c40: 6e 63 69 6c 56 61 72 69 61 62 6c 65 20 41 73 44  ncilVariable AsD
1c50: 65 70 74 68 53 74 65 6e 63 69 6c 28 29 3b 0d 0a  epthStencil();..
1c60: 09 49 44 33 44 31 30 45 66 66 65 63 74 52 61 73  .ID3D10EffectRas
1c70: 74 65 72 69 7a 65 72 56 61 72 69 61 62 6c 65 20  terizerVariable 
1c80: 41 73 52 61 73 74 65 72 69 7a 65 72 28 29 3b 0d  AsRasterizer();.
1c90: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53 61  ..ID3D10EffectSa
1ca0: 6d 70 6c 65 72 56 61 72 69 61 62 6c 65 20 41 73  mplerVariable As
1cb0: 53 61 6d 70 6c 65 72 28 29 3b 0d 0a 09 48 52 45  Sampler();...HRE
1cc0: 53 55 4c 54 20 53 65 74 52 61 77 56 61 6c 75 65  SULT SetRawValue
1cd0: 28 76 6f 69 64 2a 20 70 44 61 74 61 2c 20 55 49  (void* pData, UI
1ce0: 4e 54 20 42 79 74 65 4f 66 66 73 65 74 2c 20 55  NT ByteOffset, U
1cf0: 49 4e 54 20 42 79 74 65 43 6f 75 6e 74 29 3b 0d  INT ByteCount);.
1d00: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 52 61 77  ..HRESULT GetRaw
1d10: 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74  Value(void* pDat
1d20: 61 2c 20 55 49 4e 54 20 42 79 74 65 4f 66 66 73  a, UINT ByteOffs
1d30: 65 74 2c 20 55 49 4e 54 20 42 79 74 65 43 6f 75  et, UINT ByteCou
1d40: 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53  nt);...HRESULT S
1d50: 65 74 46 6c 6f 61 74 28 66 6c 6f 61 74 20 56 61  etFloat(float Va
1d60: 6c 75 65 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  lue);...HRESULT 
1d70: 47 65 74 46 6c 6f 61 74 28 66 6c 6f 61 74 2a 20  GetFloat(float* 
1d80: 70 56 61 6c 75 65 29 3b 20 20 20 20 0d 0a 09 48  pValue);    ...H
1d90: 52 45 53 55 4c 54 20 53 65 74 46 6c 6f 61 74 41  RESULT SetFloatA
1da0: 72 72 61 79 28 66 6c 6f 61 74 2a 20 70 44 61 74  rray(float* pDat
1db0: 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  a, UINT Offset, 
1dc0: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48  UINT Count);...H
1dd0: 52 45 53 55 4c 54 20 47 65 74 46 6c 6f 61 74 41  RESULT GetFloatA
1de0: 72 72 61 79 28 66 6c 6f 61 74 2a 20 70 44 61 74  rray(float* pDat
1df0: 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  a, UINT Offset, 
1e00: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48  UINT Count);...H
1e10: 52 45 53 55 4c 54 20 53 65 74 49 6e 74 28 69 6e  RESULT SetInt(in
1e20: 74 20 56 61 6c 75 65 29 3b 0d 0a 09 48 52 45 53  t Value);...HRES
1e30: 55 4c 54 20 47 65 74 49 6e 74 28 69 6e 74 2a 20  ULT GetInt(int* 
1e40: 70 56 61 6c 75 65 29 3b 0d 0a 09 48 52 45 53 55  pValue);...HRESU
1e50: 4c 54 20 53 65 74 49 6e 74 41 72 72 61 79 28 69  LT SetIntArray(i
1e60: 6e 74 2a 20 70 44 61 74 61 2c 20 55 49 4e 54 20  nt* pData, UINT 
1e70: 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75  Offset, UINT Cou
1e80: 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47  nt);...HRESULT G
1e90: 65 74 49 6e 74 41 72 72 61 79 28 69 6e 74 2a 20  etIntArray(int* 
1ea0: 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73  pData, UINT Offs
1eb0: 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b  et, UINT Count);
1ec0: 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 42 6f  ...HRESULT SetBo
1ed0: 6f 6c 28 42 4f 4f 4c 20 56 61 6c 75 65 29 3b 0d  ol(BOOL Value);.
1ee0: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 42 6f 6f  ..HRESULT GetBoo
1ef0: 6c 28 42 4f 4f 4c 2a 20 70 56 61 6c 75 65 29 3b  l(BOOL* pValue);
1f00: 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 42 6f  ...HRESULT SetBo
1f10: 6f 6c 41 72 72 61 79 28 42 4f 4f 4c 2a 20 70 44  olArray(BOOL* pD
1f20: 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74  ata, UINT Offset
1f30: 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a  , UINT Count);..
1f40: 09 48 52 45 53 55 4c 54 20 47 65 74 42 6f 6f 6c  .HRESULT GetBool
1f50: 41 72 72 61 79 28 42 4f 4f 4c 2a 20 70 44 61 74  Array(BOOL* pDat
1f60: 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  a, UINT Offset, 
1f70: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 2a  UINT Count);...*
1f80: 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28  /..}....extern (
1f90: 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49  C) const GUID II
1fa0: 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 56 65  D_ID3D10EffectVe
1fb0: 63 74 6f 72 56 61 72 69 61 62 6c 65 20 3d 20 7b  ctorVariable = {
1fc0: 30 78 36 32 62 39 38 63 34 34 2c 20 30 78 31 66  0x62b98c44, 0x1f
1fd0: 38 32 2c 20 30 78 34 63 36 37 2c 20 5b 30 78 62  82, 0x4c67, [0xb
1fe0: 63 2c 20 30 78 64 30 2c 20 30 78 37 32 2c 20 30  c, 0xd0, 0x72, 0
1ff0: 78 63 66 2c 20 30 78 38 66 2c 20 30 78 32 31 2c  xcf, 0x8f, 0x21,
2000: 20 30 78 37 65 2c 20 30 78 38 31 5d 7d 3b 0d 0a   0x7e, 0x81]};..
2010: 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 44 33 44  ..interface ID3D
2020: 31 30 45 66 66 65 63 74 56 65 63 74 6f 72 56 61  10EffectVectorVa
2030: 72 69 61 62 6c 65 20 3a 20 49 44 33 44 31 30 45  riable : ID3D10E
2040: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 7b 0d  ffectVariable {.
2050: 0a 2f 2a 20 54 4f 44 4f 3a 20 66 69 78 20 76 74  ./* TODO: fix vt
2060: 62 6c 5b 30 5d 20 62 75 67 0d 0a 09 65 78 74 65  bl[0] bug...exte
2070: 72 6e 28 57 69 6e 64 6f 77 73 29 20 3a 0d 0a 09  rn(Windows) :...
2080: 42 4f 4f 4c 20 49 73 56 61 6c 69 64 28 29 3b 0d  BOOL IsValid();.
2090: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 54 79  ..ID3D10EffectTy
20a0: 70 65 20 47 65 74 54 79 70 65 28 29 3b 0d 0a 09  pe GetType();...
20b0: 48 52 45 53 55 4c 54 20 47 65 74 44 65 73 63 28  HRESULT GetDesc(
20c0: 44 33 44 31 30 5f 45 46 46 45 43 54 5f 56 41 52  D3D10_EFFECT_VAR
20d0: 49 41 42 4c 45 5f 44 45 53 43 2a 20 70 44 65 73  IABLE_DESC* pDes
20e0: 63 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  c);...ID3D10Effe
20f0: 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 41 6e  ctVariable GetAn
2100: 6e 6f 74 61 74 69 6f 6e 42 79 49 6e 64 65 78 28  notationByIndex(
2110: 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49  UINT Index);...I
2120: 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61  D3D10EffectVaria
2130: 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f  ble GetAnnotatio
2140: 6e 42 79 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e  nByName(LPCSTR N
2150: 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ame);...ID3D10Ef
2160: 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74  fectVariable Get
2170: 4d 65 6d 62 65 72 42 79 49 6e 64 65 78 28 55 49  MemberByIndex(UI
2180: 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33  NT Index);...ID3
2190: 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c  D10EffectVariabl
21a0: 65 20 47 65 74 4d 65 6d 62 65 72 42 79 4e 61 6d  e GetMemberByNam
21b0: 65 28 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b 0d  e(LPCSTR Name);.
21c0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
21d0: 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72  riable GetMember
21e0: 42 79 53 65 6d 61 6e 74 69 63 28 4c 50 43 53 54  BySemantic(LPCST
21f0: 52 20 53 65 6d 61 6e 74 69 63 29 3b 0d 0a 09 49  R Semantic);...I
2200: 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61  D3D10EffectVaria
2210: 62 6c 65 20 47 65 74 45 6c 65 6d 65 6e 74 28 55  ble GetElement(U
2220: 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44  INT Index);...ID
2230: 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73 74 61  3D10EffectConsta
2240: 6e 74 42 75 66 66 65 72 20 47 65 74 50 61 72 65  ntBuffer GetPare
2250: 6e 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72  ntConstantBuffer
2260: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
2270: 63 74 53 63 61 6c 61 72 56 61 72 69 61 62 6c 65  ctScalarVariable
2280: 20 41 73 53 63 61 6c 61 72 28 29 3b 0d 0a 09 49   AsScalar();...I
2290: 44 33 44 31 30 45 66 66 65 63 74 56 65 63 74 6f  D3D10EffectVecto
22a0: 72 56 61 72 69 61 62 6c 65 20 41 73 56 65 63 74  rVariable AsVect
22b0: 6f 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  or();...ID3D10Ef
22c0: 66 65 63 74 4d 61 74 72 69 78 56 61 72 69 61 62  fectMatrixVariab
22d0: 6c 65 20 41 73 4d 61 74 72 69 78 28 29 3b 0d 0a  le AsMatrix();..
22e0: 09 49 44 33 44 31 30 45 66 66 65 63 74 53 74 72  .ID3D10EffectStr
22f0: 69 6e 67 56 61 72 69 61 62 6c 65 20 41 73 53 74  ingVariable AsSt
2300: 72 69 6e 67 28 29 3b 20 0d 0a 09 49 44 33 44 31  ring(); ...ID3D1
2310: 30 45 66 66 65 63 74 53 68 61 64 65 72 52 65 73  0EffectShaderRes
2320: 6f 75 72 63 65 56 61 72 69 61 62 6c 65 20 41 73  ourceVariable As
2330: 53 68 61 64 65 72 52 65 73 6f 75 72 63 65 28 29  ShaderResource()
2340: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
2350: 52 65 6e 64 65 72 54 61 72 67 65 74 56 69 65 77  RenderTargetView
2360: 56 61 72 69 61 62 6c 65 20 41 73 52 65 6e 64 65  Variable AsRende
2370: 72 54 61 72 67 65 74 56 69 65 77 28 29 3b 0d 0a  rTargetView();..
2380: 09 49 44 33 44 31 30 45 66 66 65 63 74 44 65 70  .ID3D10EffectDep
2390: 74 68 53 74 65 6e 63 69 6c 56 69 65 77 56 61 72  thStencilViewVar
23a0: 69 61 62 6c 65 20 41 73 44 65 70 74 68 53 74 65  iable AsDepthSte
23b0: 6e 63 69 6c 56 69 65 77 28 29 3b 0d 0a 09 49 44  ncilView();...ID
23c0: 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73 74 61  3D10EffectConsta
23d0: 6e 74 42 75 66 66 65 72 20 41 73 43 6f 6e 73 74  ntBuffer AsConst
23e0: 61 6e 74 42 75 66 66 65 72 28 29 3b 0d 0a 09 49  antBuffer();...I
23f0: 44 33 44 31 30 45 66 66 65 63 74 53 68 61 64 65  D3D10EffectShade
2400: 72 56 61 72 69 61 62 6c 65 20 41 73 53 68 61 64  rVariable AsShad
2410: 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  er();...ID3D10Ef
2420: 66 65 63 74 42 6c 65 6e 64 56 61 72 69 61 62 6c  fectBlendVariabl
2430: 65 20 41 73 42 6c 65 6e 64 28 29 3b 0d 0a 09 49  e AsBlend();...I
2440: 44 33 44 31 30 45 66 66 65 63 74 44 65 70 74 68  D3D10EffectDepth
2450: 53 74 65 6e 63 69 6c 56 61 72 69 61 62 6c 65 20  StencilVariable 
2460: 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c 28 29  AsDepthStencil()
2470: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
2480: 52 61 73 74 65 72 69 7a 65 72 56 61 72 69 61 62  RasterizerVariab
2490: 6c 65 20 41 73 52 61 73 74 65 72 69 7a 65 72 28  le AsRasterizer(
24a0: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
24b0: 74 53 61 6d 70 6c 65 72 56 61 72 69 61 62 6c 65  tSamplerVariable
24c0: 20 41 73 53 61 6d 70 6c 65 72 28 29 3b 0d 0a 09   AsSampler();...
24d0: 48 52 45 53 55 4c 54 20 53 65 74 52 61 77 56 61  HRESULT SetRawVa
24e0: 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74 61 2c  lue(void* pData,
24f0: 20 55 49 4e 54 20 42 79 74 65 4f 66 66 73 65 74   UINT ByteOffset
2500: 2c 20 55 49 4e 54 20 42 79 74 65 43 6f 75 6e 74  , UINT ByteCount
2510: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
2520: 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70  RawValue(void* p
2530: 44 61 74 61 2c 20 55 49 4e 54 20 42 79 74 65 4f  Data, UINT ByteO
2540: 66 66 73 65 74 2c 20 55 49 4e 54 20 42 79 74 65  ffset, UINT Byte
2550: 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c  Count);...HRESUL
2560: 54 20 53 65 74 42 6f 6f 6c 56 65 63 74 6f 72 20  T SetBoolVector 
2570: 28 42 4f 4f 4c 2a 20 70 44 61 74 61 29 3b 0d 0a  (BOOL* pData);..
2580: 09 48 52 45 53 55 4c 54 20 53 65 74 49 6e 74 56  .HRESULT SetIntV
2590: 65 63 74 6f 72 20 20 28 69 6e 74 2a 20 70 44 61  ector  (int* pDa
25a0: 74 61 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53  ta);...HRESULT S
25b0: 65 74 46 6c 6f 61 74 56 65 63 74 6f 72 28 66 6c  etFloatVector(fl
25c0: 6f 61 74 2a 20 70 44 61 74 61 29 3b 0d 0a 09 48  oat* pData);...H
25d0: 52 45 53 55 4c 54 20 47 65 74 42 6f 6f 6c 56 65  RESULT GetBoolVe
25e0: 63 74 6f 72 20 28 42 4f 4f 4c 2a 20 70 44 61 74  ctor (BOOL* pDat
25f0: 61 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  a);...HRESULT Ge
2600: 74 49 6e 74 56 65 63 74 6f 72 20 20 28 69 6e 74  tIntVector  (int
2610: 2a 20 70 44 61 74 61 29 3b 0d 0a 09 48 52 45 53  * pData);...HRES
2620: 55 4c 54 20 47 65 74 46 6c 6f 61 74 56 65 63 74  ULT GetFloatVect
2630: 6f 72 28 66 6c 6f 61 74 2a 20 70 44 61 74 61 29  or(float* pData)
2640: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 42  ;...HRESULT SetB
2650: 6f 6f 6c 56 65 63 74 6f 72 41 72 72 61 79 20 28  oolVectorArray (
2660: 42 4f 4f 4c 2a 20 70 44 61 74 61 2c 20 55 49 4e  BOOL* pData, UIN
2670: 54 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43  T Offset, UINT C
2680: 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54  ount);...HRESULT
2690: 20 53 65 74 49 6e 74 56 65 63 74 6f 72 41 72 72   SetIntVectorArr
26a0: 61 79 20 20 28 69 6e 74 2a 20 70 44 61 74 61 2c  ay  (int* pData,
26b0: 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20 55 49   UINT Offset, UI
26c0: 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45  NT Count);...HRE
26d0: 53 55 4c 54 20 53 65 74 46 6c 6f 61 74 56 65 63  SULT SetFloatVec
26e0: 74 6f 72 41 72 72 61 79 28 66 6c 6f 61 74 2a 20  torArray(float* 
26f0: 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73  pData, UINT Offs
2700: 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b  et, UINT Count);
2710: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 42 6f  ...HRESULT GetBo
2720: 6f 6c 56 65 63 74 6f 72 41 72 72 61 79 20 28 42  olVectorArray (B
2730: 4f 4f 4c 2a 20 70 44 61 74 61 2c 20 55 49 4e 54  OOL* pData, UINT
2740: 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f   Offset, UINT Co
2750: 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  unt);...HRESULT 
2760: 47 65 74 49 6e 74 56 65 63 74 6f 72 41 72 72 61  GetIntVectorArra
2770: 79 20 20 28 69 6e 74 2a 20 70 44 61 74 61 2c 20  y  (int* pData, 
2780: 55 49 4e 54 20 4f 66 66 73 65 74 2c 20 55 49 4e  UINT Offset, UIN
2790: 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53  T Count);...HRES
27a0: 55 4c 54 20 47 65 74 46 6c 6f 61 74 56 65 63 74  ULT GetFloatVect
27b0: 6f 72 41 72 72 61 79 28 66 6c 6f 61 74 2a 20 70  orArray(float* p
27c0: 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65  Data, UINT Offse
27d0: 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d  t, UINT Count);.
27e0: 0a 09 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72  ..*/..}....exter
27f0: 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44  n (C) const GUID
2800: 20 49 49 44 5f 49 44 33 44 31 30 45 66 66 65 63   IID_ID3D10Effec
2810: 74 4d 61 74 72 69 78 56 61 72 69 61 62 6c 65 20  tMatrixVariable 
2820: 3d 20 7b 30 78 35 30 36 36 36 63 32 34 2c 20 30  = {0x50666c24, 0
2830: 78 62 38 32 66 2c 20 30 78 34 65 65 64 2c 20 5b  xb82f, 0x4eed, [
2840: 30 78 61 31 2c 20 30 78 37 32 2c 20 30 78 35 62  0xa1, 0x72, 0x5b
2850: 2c 20 30 78 36 65 2c 20 30 78 37 65 2c 20 30 78  , 0x6e, 0x7e, 0x
2860: 38 35 2c 20 30 78 32 32 2c 20 30 78 65 30 5d 7d  85, 0x22, 0xe0]}
2870: 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49  ;....interface I
2880: 44 33 44 31 30 45 66 66 65 63 74 4d 61 74 72 69  D3D10EffectMatri
2890: 78 56 61 72 69 61 62 6c 65 20 3a 20 49 44 33 44  xVariable : ID3D
28a0: 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65  10EffectVariable
28b0: 20 7b 0d 0a 2f 2a 20 54 4f 44 4f 3a 20 66 69 78   {../* TODO: fix
28c0: 20 76 74 62 6c 5b 30 5d 20 62 75 67 0d 0a 09 65   vtbl[0] bug...e
28d0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 3a  xtern(Windows) :
28e0: 0d 0a 09 42 4f 4f 4c 20 49 73 56 61 6c 69 64 28  ...BOOL IsValid(
28f0: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
2900: 74 54 79 70 65 20 47 65 74 54 79 70 65 28 29 3b  tType GetType();
2910: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44 65  ...HRESULT GetDe
2920: 73 63 28 44 33 44 31 30 5f 45 46 46 45 43 54 5f  sc(D3D10_EFFECT_
2930: 56 41 52 49 41 42 4c 45 5f 44 45 53 43 2a 20 70  VARIABLE_DESC* p
2940: 44 65 73 63 29 3b 0d 0a 09 49 44 33 44 31 30 45  Desc);...ID3D10E
2950: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
2960: 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 49 6e 64  tAnnotationByInd
2970: 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d  ex(UINT Index);.
2980: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
2990: 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61  riable GetAnnota
29a0: 74 69 6f 6e 42 79 4e 61 6d 65 28 4c 50 43 53 54  tionByName(LPCST
29b0: 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31  R Name);...ID3D1
29c0: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
29d0: 47 65 74 4d 65 6d 62 65 72 42 79 49 6e 64 65 78  GetMemberByIndex
29e0: 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09  (UINT Index);...
29f0: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
2a00: 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79  able GetMemberBy
2a10: 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65  Name(LPCSTR Name
2a20: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
2a30: 74 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d  tVariable GetMem
2a40: 62 65 72 42 79 53 65 6d 61 6e 74 69 63 28 4c 50  berBySemantic(LP
2a50: 43 53 54 52 20 53 65 6d 61 6e 74 69 63 29 3b 0d  CSTR Semantic);.
2a60: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
2a70: 72 69 61 62 6c 65 20 47 65 74 45 6c 65 6d 65 6e  riable GetElemen
2a80: 74 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a  t(UINT Index);..
2a90: 09 49 44 33 44 31 30 45 66 66 65 63 74 43 6f 6e  .ID3D10EffectCon
2aa0: 73 74 61 6e 74 42 75 66 66 65 72 20 47 65 74 50  stantBuffer GetP
2ab0: 61 72 65 6e 74 43 6f 6e 73 74 61 6e 74 42 75 66  arentConstantBuf
2ac0: 66 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  fer();...ID3D10E
2ad0: 66 66 65 63 74 53 63 61 6c 61 72 56 61 72 69 61  ffectScalarVaria
2ae0: 62 6c 65 20 41 73 53 63 61 6c 61 72 28 29 3b 0d  ble AsScalar();.
2af0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 65  ..ID3D10EffectVe
2b00: 63 74 6f 72 56 61 72 69 61 62 6c 65 20 41 73 56  ctorVariable AsV
2b10: 65 63 74 6f 72 28 29 3b 0d 0a 09 49 44 33 44 31  ector();...ID3D1
2b20: 30 45 66 66 65 63 74 4d 61 74 72 69 78 56 61 72  0EffectMatrixVar
2b30: 69 61 62 6c 65 20 41 73 4d 61 74 72 69 78 28 29  iable AsMatrix()
2b40: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
2b50: 53 74 72 69 6e 67 56 61 72 69 61 62 6c 65 20 41  StringVariable A
2b60: 73 53 74 72 69 6e 67 28 29 3b 0d 0a 09 49 44 33  sString();...ID3
2b70: 44 31 30 45 66 66 65 63 74 53 68 61 64 65 72 52  D10EffectShaderR
2b80: 65 73 6f 75 72 63 65 56 61 72 69 61 62 6c 65 20  esourceVariable 
2b90: 41 73 53 68 61 64 65 72 52 65 73 6f 75 72 63 65  AsShaderResource
2ba0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
2bb0: 63 74 52 65 6e 64 65 72 54 61 72 67 65 74 56 69  ctRenderTargetVi
2bc0: 65 77 56 61 72 69 61 62 6c 65 20 41 73 52 65 6e  ewVariable AsRen
2bd0: 64 65 72 54 61 72 67 65 74 56 69 65 77 28 29 3b  derTargetView();
2be0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 44  ...ID3D10EffectD
2bf0: 65 70 74 68 53 74 65 6e 63 69 6c 56 69 65 77 56  epthStencilViewV
2c00: 61 72 69 61 62 6c 65 20 41 73 44 65 70 74 68 53  ariable AsDepthS
2c10: 74 65 6e 63 69 6c 56 69 65 77 28 29 3b 0d 0a 09  tencilView();...
2c20: 49 44 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73  ID3D10EffectCons
2c30: 74 61 6e 74 42 75 66 66 65 72 20 41 73 43 6f 6e  tantBuffer AsCon
2c40: 73 74 61 6e 74 42 75 66 66 65 72 28 29 3b 0d 0a  stantBuffer();..
2c50: 09 49 44 33 44 31 30 45 66 66 65 63 74 53 68 61  .ID3D10EffectSha
2c60: 64 65 72 56 61 72 69 61 62 6c 65 20 41 73 53 68  derVariable AsSh
2c70: 61 64 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  ader();...ID3D10
2c80: 45 66 66 65 63 74 42 6c 65 6e 64 56 61 72 69 61  EffectBlendVaria
2c90: 62 6c 65 20 41 73 42 6c 65 6e 64 28 29 3b 0d 0a  ble AsBlend();..
2ca0: 09 49 44 33 44 31 30 45 66 66 65 63 74 44 65 70  .ID3D10EffectDep
2cb0: 74 68 53 74 65 6e 63 69 6c 56 61 72 69 61 62 6c  thStencilVariabl
2cc0: 65 20 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c  e AsDepthStencil
2cd0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
2ce0: 63 74 52 61 73 74 65 72 69 7a 65 72 56 61 72 69  ctRasterizerVari
2cf0: 61 62 6c 65 20 41 73 52 61 73 74 65 72 69 7a 65  able AsRasterize
2d00: 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  r();...ID3D10Eff
2d10: 65 63 74 53 61 6d 70 6c 65 72 56 61 72 69 61 62  ectSamplerVariab
2d20: 6c 65 20 41 73 53 61 6d 70 6c 65 72 28 29 3b 0d  le AsSampler();.
2d30: 0a 09 48 52 45 53 55 4c 54 20 53 65 74 52 61 77  ..HRESULT SetRaw
2d40: 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74  Value(void* pDat
2d50: 61 2c 20 55 49 4e 54 20 42 79 74 65 4f 66 66 73  a, UINT ByteOffs
2d60: 65 74 2c 20 55 49 4e 54 20 42 79 74 65 43 6f 75  et, UINT ByteCou
2d70: 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47  nt);...HRESULT G
2d80: 65 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a  etRawValue(void*
2d90: 20 70 44 61 74 61 2c 20 55 49 4e 54 20 42 79 74   pData, UINT Byt
2da0: 65 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 42 79  eOffset, UINT By
2db0: 74 65 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53  teCount);...HRES
2dc0: 55 4c 54 20 53 65 74 4d 61 74 72 69 78 28 66 6c  ULT SetMatrix(fl
2dd0: 6f 61 74 2a 20 70 44 61 74 61 29 3b 0d 0a 09 48  oat* pData);...H
2de0: 52 45 53 55 4c 54 20 47 65 74 4d 61 74 72 69 78  RESULT GetMatrix
2df0: 28 66 6c 6f 61 74 2a 20 70 44 61 74 61 29 3b 0d  (float* pData);.
2e00: 0a 09 48 52 45 53 55 4c 54 20 53 65 74 4d 61 74  ..HRESULT SetMat
2e10: 72 69 78 41 72 72 61 79 28 66 6c 6f 61 74 2a 20  rixArray(float* 
2e20: 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73  pData, UINT Offs
2e30: 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b  et, UINT Count);
2e40: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 4d 61  ...HRESULT GetMa
2e50: 74 72 69 78 41 72 72 61 79 28 66 6c 6f 61 74 2a  trixArray(float*
2e60: 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66   pData, UINT Off
2e70: 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29  set, UINT Count)
2e80: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 4d  ;...HRESULT SetM
2e90: 61 74 72 69 78 54 72 61 6e 73 70 6f 73 65 28 66  atrixTranspose(f
2ea0: 6c 6f 61 74 2a 20 70 44 61 74 61 29 3b 0d 0a 09  loat* pData);...
2eb0: 48 52 45 53 55 4c 54 20 47 65 74 4d 61 74 72 69  HRESULT GetMatri
2ec0: 78 54 72 61 6e 73 70 6f 73 65 28 66 6c 6f 61 74  xTranspose(float
2ed0: 2a 20 70 44 61 74 61 29 3b 0d 0a 09 48 52 45 53  * pData);...HRES
2ee0: 55 4c 54 20 53 65 74 4d 61 74 72 69 78 54 72 61  ULT SetMatrixTra
2ef0: 6e 73 70 6f 73 65 41 72 72 61 79 28 66 6c 6f 61  nsposeArray(floa
2f00: 74 2a 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f  t* pData, UINT O
2f10: 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e  ffset, UINT Coun
2f20: 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  t);...HRESULT Ge
2f30: 74 4d 61 74 72 69 78 54 72 61 6e 73 70 6f 73 65  tMatrixTranspose
2f40: 41 72 72 61 79 28 66 6c 6f 61 74 2a 20 70 44 61  Array(float* pDa
2f50: 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c  ta, UINT Offset,
2f60: 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09   UINT Count);...
2f70: 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20  */..}....extern 
2f80: 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49  (C) const GUID I
2f90: 49 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 53  ID_ID3D10EffectS
2fa0: 74 72 69 6e 67 56 61 72 69 61 62 6c 65 20 3d 20  tringVariable = 
2fb0: 7b 30 78 37 31 34 31 37 35 30 31 2c 20 30 78 38  {0x71417501, 0x8
2fc0: 64 66 39 2c 20 30 78 34 65 30 61 2c 20 5b 30 78  df9, 0x4e0a, [0x
2fd0: 61 37 2c 20 30 78 38 61 2c 20 30 78 32 35 2c 20  a7, 0x8a, 0x25, 
2fe0: 30 78 35 66 2c 20 30 78 39 37 2c 20 30 78 35 36  0x5f, 0x97, 0x56
2ff0: 2c 20 30 78 62 61 2c 20 30 78 66 66 5d 7d 3b 0d  , 0xba, 0xff]};.
3000: 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 44 33  ...interface ID3
3010: 44 31 30 45 66 66 65 63 74 53 74 72 69 6e 67 56  D10EffectStringV
3020: 61 72 69 61 62 6c 65 20 3a 20 49 44 33 44 31 30  ariable : ID3D10
3030: 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 7b  EffectVariable {
3040: 0d 0a 2f 2a 20 54 4f 44 4f 3a 20 66 69 78 20 76  ../* TODO: fix v
3050: 74 62 6c 5b 30 5d 20 62 75 67 0d 0a 09 65 78 74  tbl[0] bug...ext
3060: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 3a 0d 0a  ern(Windows) :..
3070: 09 42 4f 4f 4c 20 49 73 56 61 6c 69 64 28 29 3b  .BOOL IsValid();
3080: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 54  ...ID3D10EffectT
3090: 79 70 65 20 47 65 74 54 79 70 65 28 29 3b 0d 0a  ype GetType();..
30a0: 09 48 52 45 53 55 4c 54 20 47 65 74 44 65 73 63  .HRESULT GetDesc
30b0: 28 44 33 44 31 30 5f 45 46 46 45 43 54 5f 56 41  (D3D10_EFFECT_VA
30c0: 52 49 41 42 4c 45 5f 44 45 53 43 2a 20 70 44 65  RIABLE_DESC* pDe
30d0: 73 63 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  sc);...ID3D10Eff
30e0: 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 41  ectVariable GetA
30f0: 6e 6e 6f 74 61 74 69 6f 6e 42 79 49 6e 64 65 78  nnotationByIndex
3100: 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09  (UINT Index);...
3110: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
3120: 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61 74 69  able GetAnnotati
3130: 6f 6e 42 79 4e 61 6d 65 28 4c 50 43 53 54 52 20  onByName(LPCSTR 
3140: 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30 45  Name);...ID3D10E
3150: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
3160: 74 4d 65 6d 62 65 72 42 79 49 6e 64 65 78 28 55  tMemberByIndex(U
3170: 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44  INT Index);...ID
3180: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
3190: 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 4e 61  le GetMemberByNa
31a0: 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b  me(LPCSTR Name);
31b0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56  ...ID3D10EffectV
31c0: 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62 65  ariable GetMembe
31d0: 72 42 79 53 65 6d 61 6e 74 69 63 28 4c 50 43 53  rBySemantic(LPCS
31e0: 54 52 20 53 65 6d 61 6e 74 69 63 29 3b 0d 0a 09  TR Semantic);...
31f0: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
3200: 61 62 6c 65 20 47 65 74 45 6c 65 6d 65 6e 74 28  able GetElement(
3210: 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49  UINT Index);...I
3220: 44 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73 74  D3D10EffectConst
3230: 61 6e 74 42 75 66 66 65 72 20 47 65 74 50 61 72  antBuffer GetPar
3240: 65 6e 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65  entConstantBuffe
3250: 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  r();...ID3D10Eff
3260: 65 63 74 53 63 61 6c 61 72 56 61 72 69 61 62 6c  ectScalarVariabl
3270: 65 20 41 73 53 63 61 6c 61 72 28 29 3b 0d 0a 09  e AsScalar();...
3280: 49 44 33 44 31 30 45 66 66 65 63 74 56 65 63 74  ID3D10EffectVect
3290: 6f 72 56 61 72 69 61 62 6c 65 20 41 73 56 65 63  orVariable AsVec
32a0: 74 6f 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  tor();...ID3D10E
32b0: 66 66 65 63 74 4d 61 74 72 69 78 56 61 72 69 61  ffectMatrixVaria
32c0: 62 6c 65 20 41 73 4d 61 74 72 69 78 28 29 3b 0d  ble AsMatrix();.
32d0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53 74  ..ID3D10EffectSt
32e0: 72 69 6e 67 56 61 72 69 61 62 6c 65 20 41 73 53  ringVariable AsS
32f0: 74 72 69 6e 67 28 29 3b 0d 0a 09 49 44 33 44 31  tring();...ID3D1
3300: 30 45 66 66 65 63 74 53 68 61 64 65 72 52 65 73  0EffectShaderRes
3310: 6f 75 72 63 65 56 61 72 69 61 62 6c 65 20 41 73  ourceVariable As
3320: 53 68 61 64 65 72 52 65 73 6f 75 72 63 65 28 29  ShaderResource()
3330: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
3340: 52 65 6e 64 65 72 54 61 72 67 65 74 56 69 65 77  RenderTargetView
3350: 56 61 72 69 61 62 6c 65 20 41 73 52 65 6e 64 65  Variable AsRende
3360: 72 54 61 72 67 65 74 56 69 65 77 28 29 3b 0d 0a  rTargetView();..
3370: 09 49 44 33 44 31 30 45 66 66 65 63 74 44 65 70  .ID3D10EffectDep
3380: 74 68 53 74 65 6e 63 69 6c 56 69 65 77 56 61 72  thStencilViewVar
3390: 69 61 62 6c 65 20 41 73 44 65 70 74 68 53 74 65  iable AsDepthSte
33a0: 6e 63 69 6c 56 69 65 77 28 29 3b 0d 0a 09 49 44  ncilView();...ID
33b0: 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73 74 61  3D10EffectConsta
33c0: 6e 74 42 75 66 66 65 72 20 41 73 43 6f 6e 73 74  ntBuffer AsConst
33d0: 61 6e 74 42 75 66 66 65 72 28 29 3b 0d 0a 09 49  antBuffer();...I
33e0: 44 33 44 31 30 45 66 66 65 63 74 53 68 61 64 65  D3D10EffectShade
33f0: 72 56 61 72 69 61 62 6c 65 20 41 73 53 68 61 64  rVariable AsShad
3400: 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  er();...ID3D10Ef
3410: 66 65 63 74 42 6c 65 6e 64 56 61 72 69 61 62 6c  fectBlendVariabl
3420: 65 20 41 73 42 6c 65 6e 64 28 29 3b 0d 0a 09 49  e AsBlend();...I
3430: 44 33 44 31 30 45 66 66 65 63 74 44 65 70 74 68  D3D10EffectDepth
3440: 53 74 65 6e 63 69 6c 56 61 72 69 61 62 6c 65 20  StencilVariable 
3450: 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c 28 29  AsDepthStencil()
3460: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
3470: 52 61 73 74 65 72 69 7a 65 72 56 61 72 69 61 62  RasterizerVariab
3480: 6c 65 20 41 73 52 61 73 74 65 72 69 7a 65 72 28  le AsRasterizer(
3490: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
34a0: 74 53 61 6d 70 6c 65 72 56 61 72 69 61 62 6c 65  tSamplerVariable
34b0: 20 41 73 53 61 6d 70 6c 65 72 28 29 3b 0d 0a 09   AsSampler();...
34c0: 48 52 45 53 55 4c 54 20 53 65 74 52 61 77 56 61  HRESULT SetRawVa
34d0: 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74 61 2c  lue(void* pData,
34e0: 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20 55 49   UINT Offset, UI
34f0: 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45  NT Count);...HRE
3500: 53 55 4c 54 20 47 65 74 52 61 77 56 61 6c 75 65  SULT GetRawValue
3510: 28 76 6f 69 64 2a 20 70 44 61 74 61 2c 20 55 49  (void* pData, UI
3520: 4e 54 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20  NT Offset, UINT 
3530: 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c  Count);...HRESUL
3540: 54 20 47 65 74 53 74 72 69 6e 67 28 4c 50 43 53  T GetString(LPCS
3550: 54 52 2a 20 70 70 53 74 72 69 6e 67 29 3b 0d 0a  TR* ppString);..
3560: 09 48 52 45 53 55 4c 54 20 47 65 74 53 74 72 69  .HRESULT GetStri
3570: 6e 67 41 72 72 61 79 28 4c 50 43 53 54 52 2a 20  ngArray(LPCSTR* 
3580: 70 70 53 74 72 69 6e 67 73 2c 20 55 49 4e 54 20  ppStrings, UINT 
3590: 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75  Offset, UINT Cou
35a0: 6e 74 29 3b 0d 0a 09 2a 2f 0d 0a 7d 0d 0a 0d 0a  nt);...*/..}....
35b0: 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73 74  extern (C) const
35c0: 20 47 55 49 44 20 49 49 44 5f 49 44 33 44 31 30   GUID IID_ID3D10
35d0: 45 66 66 65 63 74 53 68 61 64 65 72 52 65 73 6f  EffectShaderReso
35e0: 75 72 63 65 56 61 72 69 61 62 6c 65 20 3d 20 7b  urceVariable = {
35f0: 30 78 63 30 61 37 31 35 37 62 2c 20 30 78 64 38  0xc0a7157b, 0xd8
3600: 37 32 2c 20 30 78 34 62 31 64 2c 20 5b 30 78 38  72, 0x4b1d, [0x8
3610: 30 2c 20 30 78 37 33 2c 20 30 78 65 66 2c 20 30  0, 0x73, 0xef, 0
3620: 78 63 32 2c 20 30 78 61 63 2c 20 30 78 64 34 2c  xc2, 0xac, 0xd4,
3630: 20 30 78 62 31 2c 20 30 78 66 63 5d 7d 3b 0d 0a   0xb1, 0xfc]};..
3640: 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 44 33 44  ..interface ID3D
3650: 31 30 45 66 66 65 63 74 53 68 61 64 65 72 52 65  10EffectShaderRe
3660: 73 6f 75 72 63 65 56 61 72 69 61 62 6c 65 20 3a  sourceVariable :
3670: 20 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72   ID3D10EffectVar
3680: 69 61 62 6c 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f  iable {../* TODO
3690: 3a 20 66 69 78 20 76 74 62 6c 5b 30 5d 20 62 75  : fix vtbl[0] bu
36a0: 67 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f  g...extern(Windo
36b0: 77 73 29 20 3a 0d 0a 09 42 4f 4f 4c 20 49 73 56  ws) :...BOOL IsV
36c0: 61 6c 69 64 28 29 3b 0d 0a 09 49 44 33 44 31 30  alid();...ID3D10
36d0: 45 66 66 65 63 74 54 79 70 65 20 47 65 74 54 79  EffectType GetTy
36e0: 70 65 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  pe();...HRESULT 
36f0: 47 65 74 44 65 73 63 28 44 33 44 31 30 5f 45 46  GetDesc(D3D10_EF
3700: 46 45 43 54 5f 56 41 52 49 41 42 4c 45 5f 44 45  FECT_VARIABLE_DE
3710: 53 43 2a 20 70 44 65 73 63 29 3b 0d 0a 09 49 44  SC* pDesc);...ID
3720: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
3730: 6c 65 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e  le GetAnnotation
3740: 42 79 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64  ByIndex(UINT Ind
3750: 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  ex);...ID3D10Eff
3760: 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 41  ectVariable GetA
3770: 6e 6e 6f 74 61 74 69 6f 6e 42 79 4e 61 6d 65 28  nnotationByName(
3780: 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09  LPCSTR Name);...
3790: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
37a0: 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79  able GetMemberBy
37b0: 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78  Index(UINT Index
37c0: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
37d0: 74 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d  tVariable GetMem
37e0: 62 65 72 42 79 4e 61 6d 65 28 4c 50 43 53 54 52  berByName(LPCSTR
37f0: 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30   Name);...ID3D10
3800: 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47  EffectVariable G
3810: 65 74 4d 65 6d 62 65 72 42 79 53 65 6d 61 6e 74  etMemberBySemant
3820: 69 63 28 4c 50 43 53 54 52 20 53 65 6d 61 6e 74  ic(LPCSTR Semant
3830: 69 63 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  ic);...ID3D10Eff
3840: 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 45  ectVariable GetE
3850: 6c 65 6d 65 6e 74 28 55 49 4e 54 20 49 6e 64 65  lement(UINT Inde
3860: 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  x);...ID3D10Effe
3870: 63 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72  ctConstantBuffer
3880: 20 47 65 74 50 61 72 65 6e 74 43 6f 6e 73 74 61   GetParentConsta
3890: 6e 74 42 75 66 66 65 72 28 29 3b 0d 0a 09 49 44  ntBuffer();...ID
38a0: 33 44 31 30 45 66 66 65 63 74 53 63 61 6c 61 72  3D10EffectScalar
38b0: 56 61 72 69 61 62 6c 65 20 41 73 53 63 61 6c 61  Variable AsScala
38c0: 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  r();...ID3D10Eff
38d0: 65 63 74 56 65 63 74 6f 72 56 61 72 69 61 62 6c  ectVectorVariabl
38e0: 65 20 41 73 56 65 63 74 6f 72 28 29 3b 0d 0a 09  e AsVector();...
38f0: 49 44 33 44 31 30 45 66 66 65 63 74 4d 61 74 72  ID3D10EffectMatr
3900: 69 78 56 61 72 69 61 62 6c 65 20 41 73 4d 61 74  ixVariable AsMat
3910: 72 69 78 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  rix();...ID3D10E
3920: 66 66 65 63 74 53 74 72 69 6e 67 56 61 72 69 61  ffectStringVaria
3930: 62 6c 65 20 41 73 53 74 72 69 6e 67 28 29 3b 0d  ble AsString();.
3940: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53 68  ..ID3D10EffectSh
3950: 61 64 65 72 52 65 73 6f 75 72 63 65 56 61 72 69  aderResourceVari
3960: 61 62 6c 65 20 41 73 53 68 61 64 65 72 52 65 73  able AsShaderRes
3970: 6f 75 72 63 65 28 29 3b 0d 0a 09 49 44 33 44 31  ource();...ID3D1
3980: 30 45 66 66 65 63 74 52 65 6e 64 65 72 54 61 72  0EffectRenderTar
3990: 67 65 74 56 69 65 77 56 61 72 69 61 62 6c 65 20  getViewVariable 
39a0: 41 73 52 65 6e 64 65 72 54 61 72 67 65 74 56 69  AsRenderTargetVi
39b0: 65 77 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ew();...ID3D10Ef
39c0: 66 65 63 74 44 65 70 74 68 53 74 65 6e 63 69 6c  fectDepthStencil
39d0: 56 69 65 77 56 61 72 69 61 62 6c 65 20 41 73 44  ViewVariable AsD
39e0: 65 70 74 68 53 74 65 6e 63 69 6c 56 69 65 77 28  epthStencilView(
39f0: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
3a00: 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20  tConstantBuffer 
3a10: 41 73 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72  AsConstantBuffer
3a20: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
3a30: 63 74 53 68 61 64 65 72 56 61 72 69 61 62 6c 65  ctShaderVariable
3a40: 20 41 73 53 68 61 64 65 72 28 29 3b 0d 0a 09 49   AsShader();...I
3a50: 44 33 44 31 30 45 66 66 65 63 74 42 6c 65 6e 64  D3D10EffectBlend
3a60: 56 61 72 69 61 62 6c 65 20 41 73 42 6c 65 6e 64  Variable AsBlend
3a70: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
3a80: 63 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56 61  ctDepthStencilVa
3a90: 72 69 61 62 6c 65 20 41 73 44 65 70 74 68 53 74  riable AsDepthSt
3aa0: 65 6e 63 69 6c 28 29 3b 0d 0a 09 49 44 33 44 31  encil();...ID3D1
3ab0: 30 45 66 66 65 63 74 52 61 73 74 65 72 69 7a 65  0EffectRasterize
3ac0: 72 56 61 72 69 61 62 6c 65 20 41 73 52 61 73 74  rVariable AsRast
3ad0: 65 72 69 7a 65 72 28 29 3b 0d 0a 09 49 44 33 44  erizer();...ID3D
3ae0: 31 30 45 66 66 65 63 74 53 61 6d 70 6c 65 72 56  10EffectSamplerV
3af0: 61 72 69 61 62 6c 65 20 41 73 53 61 6d 70 6c 65  ariable AsSample
3b00: 72 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53  r();...HRESULT S
3b10: 65 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a  etRawValue(void*
3b20: 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66   pData, UINT Off
3b30: 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29  set, UINT Count)
3b40: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 52  ;...HRESULT GetR
3b50: 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44  awValue(void* pD
3b60: 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74  ata, UINT Offset
3b70: 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a  , UINT Count);..
3b80: 09 48 52 45 53 55 4c 54 20 53 65 74 52 65 73 6f  .HRESULT SetReso
3b90: 75 72 63 65 28 49 44 33 44 31 30 53 68 61 64 65  urce(ID3D10Shade
3ba0: 72 52 65 73 6f 75 72 63 65 56 69 65 77 20 70 52  rResourceView pR
3bb0: 65 73 6f 75 72 63 65 29 3b 0d 0a 09 48 52 45 53  esource);...HRES
3bc0: 55 4c 54 20 47 65 74 52 65 73 6f 75 72 63 65 28  ULT GetResource(
3bd0: 49 44 33 44 31 30 53 68 61 64 65 72 52 65 73 6f  ID3D10ShaderReso
3be0: 75 72 63 65 56 69 65 77 2a 20 70 70 52 65 73 6f  urceView* ppReso
3bf0: 75 72 63 65 29 3b 0d 0a 09 48 52 45 53 55 4c 54  urce);...HRESULT
3c00: 20 53 65 74 52 65 73 6f 75 72 63 65 41 72 72 61   SetResourceArra
3c10: 79 28 49 44 33 44 31 30 53 68 61 64 65 72 52 65  y(ID3D10ShaderRe
3c20: 73 6f 75 72 63 65 56 69 65 77 2a 20 70 70 52 65  sourceView* ppRe
3c30: 73 6f 75 72 63 65 73 2c 20 55 49 4e 54 20 4f 66  sources, UINT Of
3c40: 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74  fset, UINT Count
3c50: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
3c60: 52 65 73 6f 75 72 63 65 41 72 72 61 79 28 49 44  ResourceArray(ID
3c70: 33 44 31 30 53 68 61 64 65 72 52 65 73 6f 75 72  3D10ShaderResour
3c80: 63 65 56 69 65 77 2a 20 70 70 52 65 73 6f 75 72  ceView* ppResour
3c90: 63 65 73 2c 20 55 49 4e 54 20 4f 66 66 73 65 74  ces, UINT Offset
3ca0: 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a  , UINT Count);..
3cb0: 09 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e  .*/..}....extern
3cc0: 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20   (C) const GUID 
3cd0: 49 49 44 5f 49 44 33 44 31 30 45 66 66 65 63 74  IID_ID3D10Effect
3ce0: 52 65 6e 64 65 72 54 61 72 67 65 74 56 69 65 77  RenderTargetView
3cf0: 56 61 72 69 61 62 6c 65 20 3d 20 7b 30 78 32 38  Variable = {0x28
3d00: 63 61 30 63 63 33 2c 20 30 78 63 32 63 39 2c 20  ca0cc3, 0xc2c9, 
3d10: 30 78 34 30 62 62 2c 20 5b 30 78 62 35 2c 20 30  0x40bb, [0xb5, 0
3d20: 78 37 66 2c 20 30 78 36 37 2c 20 30 78 62 37 2c  x7f, 0x67, 0xb7,
3d30: 20 30 78 33 37 2c 20 30 78 31 32 2c 20 30 78 32   0x37, 0x12, 0x2
3d40: 62 2c 20 30 78 31 37 5d 7d 3b 0d 0a 0d 0a 69 6e  b, 0x17]};....in
3d50: 74 65 72 66 61 63 65 20 49 44 33 44 31 30 45 66  terface ID3D10Ef
3d60: 66 65 63 74 52 65 6e 64 65 72 54 61 72 67 65 74  fectRenderTarget
3d70: 56 69 65 77 56 61 72 69 61 62 6c 65 20 3a 20 49  ViewVariable : I
3d80: 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61  D3D10EffectVaria
3d90: 62 6c 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f 3a 20  ble {../* TODO: 
3da0: 66 69 78 20 76 74 62 6c 5b 30 5d 20 62 75 67 0d  fix vtbl[0] bug.
3db0: 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
3dc0: 29 20 3a 0d 0a 09 42 4f 4f 4c 20 49 73 56 61 6c  ) :...BOOL IsVal
3dd0: 69 64 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  id();...ID3D10Ef
3de0: 66 65 63 74 54 79 70 65 20 47 65 74 54 79 70 65  fectType GetType
3df0: 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  ();...HRESULT Ge
3e00: 74 44 65 73 63 28 44 33 44 31 30 5f 45 46 46 45  tDesc(D3D10_EFFE
3e10: 43 54 5f 56 41 52 49 41 42 4c 45 5f 44 45 53 43  CT_VARIABLE_DESC
3e20: 2a 20 70 44 65 73 63 29 3b 0d 0a 09 49 44 33 44  * pDesc);...ID3D
3e30: 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65  10EffectVariable
3e40: 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79   GetAnnotationBy
3e50: 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78  Index(UINT Index
3e60: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
3e70: 74 56 61 72 69 61 62 6c 65 20 47 65 74 41 6e 6e  tVariable GetAnn
3e80: 6f 74 61 74 69 6f 6e 42 79 4e 61 6d 65 28 4c 50  otationByName(LP
3e90: 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44  CSTR Name);...ID
3ea0: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
3eb0: 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 49 6e  le GetMemberByIn
3ec0: 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29 3b  dex(UINT Index);
3ed0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56  ...ID3D10EffectV
3ee0: 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62 65  ariable GetMembe
3ef0: 72 42 79 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e  rByName(LPCSTR N
3f00: 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ame);...ID3D10Ef
3f10: 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74  fectVariable Get
3f20: 4d 65 6d 62 65 72 42 79 53 65 6d 61 6e 74 69 63  MemberBySemantic
3f30: 28 4c 50 43 53 54 52 20 53 65 6d 61 6e 74 69 63  (LPCSTR Semantic
3f40: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
3f50: 74 56 61 72 69 61 62 6c 65 20 47 65 74 45 6c 65  tVariable GetEle
3f60: 6d 65 6e 74 28 55 49 4e 54 20 49 6e 64 65 78 29  ment(UINT Index)
3f70: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
3f80: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20 47  ConstantBuffer G
3f90: 65 74 50 61 72 65 6e 74 43 6f 6e 73 74 61 6e 74  etParentConstant
3fa0: 42 75 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44  Buffer();...ID3D
3fb0: 31 30 45 66 66 65 63 74 53 63 61 6c 61 72 56 61  10EffectScalarVa
3fc0: 72 69 61 62 6c 65 20 41 73 53 63 61 6c 61 72 28  riable AsScalar(
3fd0: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
3fe0: 74 56 65 63 74 6f 72 56 61 72 69 61 62 6c 65 20  tVectorVariable 
3ff0: 41 73 56 65 63 74 6f 72 28 29 3b 0d 0a 09 49 44  AsVector();...ID
4000: 33 44 31 30 45 66 66 65 63 74 4d 61 74 72 69 78  3D10EffectMatrix
4010: 56 61 72 69 61 62 6c 65 20 41 73 4d 61 74 72 69  Variable AsMatri
4020: 78 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  x();...ID3D10Eff
4030: 65 63 74 53 74 72 69 6e 67 56 61 72 69 61 62 6c  ectStringVariabl
4040: 65 20 41 73 53 74 72 69 6e 67 28 29 3b 0d 0a 09  e AsString();...
4050: 49 44 33 44 31 30 45 66 66 65 63 74 53 68 61 64  ID3D10EffectShad
4060: 65 72 52 65 73 6f 75 72 63 65 56 61 72 69 61 62  erResourceVariab
4070: 6c 65 20 41 73 53 68 61 64 65 72 52 65 73 6f 75  le AsShaderResou
4080: 72 63 65 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  rce();...ID3D10E
4090: 66 66 65 63 74 52 65 6e 64 65 72 54 61 72 67 65  ffectRenderTarge
40a0: 74 56 69 65 77 56 61 72 69 61 62 6c 65 20 41 73  tViewVariable As
40b0: 52 65 6e 64 65 72 54 61 72 67 65 74 56 69 65 77  RenderTargetView
40c0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
40d0: 63 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56 69  ctDepthStencilVi
40e0: 65 77 56 61 72 69 61 62 6c 65 20 41 73 44 65 70  ewVariable AsDep
40f0: 74 68 53 74 65 6e 63 69 6c 56 69 65 77 28 29 3b  thStencilView();
4100: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 43  ...ID3D10EffectC
4110: 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20 41 73  onstantBuffer As
4120: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29  ConstantBuffer()
4130: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
4140: 53 68 61 64 65 72 56 61 72 69 61 62 6c 65 20 41  ShaderVariable A
4150: 73 53 68 61 64 65 72 28 29 3b 0d 0a 09 49 44 33  sShader();...ID3
4160: 44 31 30 45 66 66 65 63 74 42 6c 65 6e 64 56 61  D10EffectBlendVa
4170: 72 69 61 62 6c 65 20 41 73 42 6c 65 6e 64 28 29  riable AsBlend()
4180: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
4190: 44 65 70 74 68 53 74 65 6e 63 69 6c 56 61 72 69  DepthStencilVari
41a0: 61 62 6c 65 20 41 73 44 65 70 74 68 53 74 65 6e  able AsDepthSten
41b0: 63 69 6c 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  cil();...ID3D10E
41c0: 66 66 65 63 74 52 61 73 74 65 72 69 7a 65 72 56  ffectRasterizerV
41d0: 61 72 69 61 62 6c 65 20 41 73 52 61 73 74 65 72  ariable AsRaster
41e0: 69 7a 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  izer();...ID3D10
41f0: 45 66 66 65 63 74 53 61 6d 70 6c 65 72 56 61 72  EffectSamplerVar
4200: 69 61 62 6c 65 20 41 73 53 61 6d 70 6c 65 72 28  iable AsSampler(
4210: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74  );...HRESULT Set
4220: 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70  RawValue(void* p
4230: 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65  Data, UINT Offse
4240: 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d  t, UINT Count);.
4250: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 52 61 77  ..HRESULT GetRaw
4260: 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74  Value(void* pDat
4270: 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  a, UINT Offset, 
4280: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48  UINT Count);...H
4290: 52 45 53 55 4c 54 20 53 65 74 52 65 6e 64 65 72  RESULT SetRender
42a0: 54 61 72 67 65 74 28 49 44 33 44 31 30 52 65 6e  Target(ID3D10Ren
42b0: 64 65 72 54 61 72 67 65 74 56 69 65 77 20 70 52  derTargetView pR
42c0: 65 73 6f 75 72 63 65 29 3b 0d 0a 09 48 52 45 53  esource);...HRES
42d0: 55 4c 54 20 47 65 74 52 65 6e 64 65 72 54 61 72  ULT GetRenderTar
42e0: 67 65 74 28 49 44 33 44 31 30 52 65 6e 64 65 72  get(ID3D10Render
42f0: 54 61 72 67 65 74 56 69 65 77 2a 20 70 70 52 65  TargetView* ppRe
4300: 73 6f 75 72 63 65 29 3b 0d 0a 09 48 52 45 53 55  source);...HRESU
4310: 4c 54 20 53 65 74 52 65 6e 64 65 72 54 61 72 67  LT SetRenderTarg
4320: 65 74 41 72 72 61 79 28 49 44 33 44 31 30 52 65  etArray(ID3D10Re
4330: 6e 64 65 72 54 61 72 67 65 74 56 69 65 77 2a 20  nderTargetView* 
4340: 70 70 52 65 73 6f 75 72 63 65 73 2c 20 55 49 4e  ppResources, UIN
4350: 54 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43  T Offset, UINT C
4360: 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54  ount);...HRESULT
4370: 20 47 65 74 52 65 6e 64 65 72 54 61 72 67 65 74   GetRenderTarget
4380: 41 72 72 61 79 28 49 44 33 44 31 30 52 65 6e 64  Array(ID3D10Rend
4390: 65 72 54 61 72 67 65 74 56 69 65 77 2a 20 70 70  erTargetView* pp
43a0: 52 65 73 6f 75 72 63 65 73 2c 20 55 49 4e 54 20  Resources, UINT 
43b0: 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75  Offset, UINT Cou
43c0: 6e 74 29 3b 0d 0a 09 2a 2f 0d 0a 7d 0d 0a 0d 0a  nt);...*/..}....
43d0: 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e 73 74  extern (C) const
43e0: 20 47 55 49 44 20 49 49 44 5f 49 44 33 44 31 30   GUID IID_ID3D10
43f0: 45 66 66 65 63 74 44 65 70 74 68 53 74 65 6e 63  EffectDepthStenc
4400: 69 6c 56 69 65 77 56 61 72 69 61 62 6c 65 20 3d  ilViewVariable =
4410: 20 7b 30 78 33 65 30 32 63 39 31 38 2c 20 30 78   {0x3e02c918, 0x
4420: 63 63 37 39 2c 20 30 78 34 39 38 35 2c 20 5b 30  cc79, 0x4985, [0
4430: 78 62 36 2c 20 30 78 32 32 2c 20 30 78 32 64 2c  xb6, 0x22, 0x2d,
4440: 20 30 78 39 32 2c 20 30 78 61 64 2c 20 30 78 37   0x92, 0xad, 0x7
4450: 30 2c 20 30 78 31 36 2c 20 30 78 32 33 5d 7d 3b  0, 0x16, 0x23]};
4460: 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20 49 44  ....interface ID
4470: 33 44 31 30 45 66 66 65 63 74 44 65 70 74 68 53  3D10EffectDepthS
4480: 74 65 6e 63 69 6c 56 69 65 77 56 61 72 69 61 62  tencilViewVariab
4490: 6c 65 20 3a 20 49 44 33 44 31 30 45 66 66 65 63  le : ID3D10Effec
44a0: 74 56 61 72 69 61 62 6c 65 20 7b 0d 0a 2f 2a 20  tVariable {../* 
44b0: 54 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c 5b 30  TODO: fix vtbl[0
44c0: 5d 20 62 75 67 0d 0a 09 65 78 74 65 72 6e 28 57  ] bug...extern(W
44d0: 69 6e 64 6f 77 73 29 20 3a 0d 0a 09 42 4f 4f 4c  indows) :...BOOL
44e0: 20 49 73 56 61 6c 69 64 28 29 3b 0d 0a 09 49 44   IsValid();...ID
44f0: 33 44 31 30 45 66 66 65 63 74 54 79 70 65 20 47  3D10EffectType G
4500: 65 74 54 79 70 65 28 29 3b 0d 0a 09 48 52 45 53  etType();...HRES
4510: 55 4c 54 20 47 65 74 44 65 73 63 28 44 33 44 31  ULT GetDesc(D3D1
4520: 30 5f 45 46 46 45 43 54 5f 56 41 52 49 41 42 4c  0_EFFECT_VARIABL
4530: 45 5f 44 45 53 43 2a 20 70 44 65 73 63 29 3b 0d  E_DESC* pDesc);.
4540: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
4550: 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61  riable GetAnnota
4560: 74 69 6f 6e 42 79 49 6e 64 65 78 28 55 49 4e 54  tionByIndex(UINT
4570: 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31   Index);...ID3D1
4580: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
4590: 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 4e  GetAnnotationByN
45a0: 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65 29  ame(LPCSTR Name)
45b0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
45c0: 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62  Variable GetMemb
45d0: 65 72 42 79 49 6e 64 65 78 28 55 49 4e 54 20 49  erByIndex(UINT I
45e0: 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45  ndex);...ID3D10E
45f0: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
4600: 74 4d 65 6d 62 65 72 42 79 4e 61 6d 65 28 4c 50  tMemberByName(LP
4610: 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44  CSTR Name);...ID
4620: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
4630: 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 53 65  le GetMemberBySe
4640: 6d 61 6e 74 69 63 28 4c 50 43 53 54 52 20 53 65  mantic(LPCSTR Se
4650: 6d 61 6e 74 69 63 29 3b 0d 0a 09 49 44 33 44 31  mantic);...ID3D1
4660: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
4670: 47 65 74 45 6c 65 6d 65 6e 74 28 55 49 4e 54 20  GetElement(UINT 
4680: 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30  Index);...ID3D10
4690: 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75  EffectConstantBu
46a0: 66 66 65 72 20 47 65 74 50 61 72 65 6e 74 43 6f  ffer GetParentCo
46b0: 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29 3b 0d  nstantBuffer();.
46c0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53 63  ..ID3D10EffectSc
46d0: 61 6c 61 72 56 61 72 69 61 62 6c 65 20 41 73 53  alarVariable AsS
46e0: 63 61 6c 61 72 28 29 3b 0d 0a 09 49 44 33 44 31  calar();...ID3D1
46f0: 30 45 66 66 65 63 74 56 65 63 74 6f 72 56 61 72  0EffectVectorVar
4700: 69 61 62 6c 65 20 41 73 56 65 63 74 6f 72 28 29  iable AsVector()
4710: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
4720: 4d 61 74 72 69 78 56 61 72 69 61 62 6c 65 20 41  MatrixVariable A
4730: 73 4d 61 74 72 69 78 28 29 3b 0d 0a 09 49 44 33  sMatrix();...ID3
4740: 44 31 30 45 66 66 65 63 74 53 74 72 69 6e 67 56  D10EffectStringV
4750: 61 72 69 61 62 6c 65 20 41 73 53 74 72 69 6e 67  ariable AsString
4760: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
4770: 63 74 53 68 61 64 65 72 52 65 73 6f 75 72 63 65  ctShaderResource
4780: 56 61 72 69 61 62 6c 65 20 41 73 53 68 61 64 65  Variable AsShade
4790: 72 52 65 73 6f 75 72 63 65 28 29 3b 0d 0a 09 49  rResource();...I
47a0: 44 33 44 31 30 45 66 66 65 63 74 52 65 6e 64 65  D3D10EffectRende
47b0: 72 54 61 72 67 65 74 56 69 65 77 56 61 72 69 61  rTargetViewVaria
47c0: 62 6c 65 20 41 73 52 65 6e 64 65 72 54 61 72 67  ble AsRenderTarg
47d0: 65 74 56 69 65 77 28 29 3b 0d 0a 09 49 44 33 44  etView();...ID3D
47e0: 31 30 45 66 66 65 63 74 44 65 70 74 68 53 74 65  10EffectDepthSte
47f0: 6e 63 69 6c 56 69 65 77 56 61 72 69 61 62 6c 65  ncilViewVariable
4800: 20 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c 56   AsDepthStencilV
4810: 69 65 77 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  iew();...ID3D10E
4820: 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75 66  ffectConstantBuf
4830: 66 65 72 20 41 73 43 6f 6e 73 74 61 6e 74 42 75  fer AsConstantBu
4840: 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  ffer();...ID3D10
4850: 45 66 66 65 63 74 53 68 61 64 65 72 56 61 72 69  EffectShaderVari
4860: 61 62 6c 65 20 41 73 53 68 61 64 65 72 28 29 3b  able AsShader();
4870: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 42  ...ID3D10EffectB
4880: 6c 65 6e 64 56 61 72 69 61 62 6c 65 20 41 73 42  lendVariable AsB
4890: 6c 65 6e 64 28 29 3b 0d 0a 09 49 44 33 44 31 30  lend();...ID3D10
48a0: 45 66 66 65 63 74 44 65 70 74 68 53 74 65 6e 63  EffectDepthStenc
48b0: 69 6c 56 61 72 69 61 62 6c 65 20 41 73 44 65 70  ilVariable AsDep
48c0: 74 68 53 74 65 6e 63 69 6c 28 29 3b 0d 0a 09 49  thStencil();...I
48d0: 44 33 44 31 30 45 66 66 65 63 74 52 61 73 74 65  D3D10EffectRaste
48e0: 72 69 7a 65 72 56 61 72 69 61 62 6c 65 20 41 73  rizerVariable As
48f0: 52 61 73 74 65 72 69 7a 65 72 28 29 3b 0d 0a 09  Rasterizer();...
4900: 49 44 33 44 31 30 45 66 66 65 63 74 53 61 6d 70  ID3D10EffectSamp
4910: 6c 65 72 56 61 72 69 61 62 6c 65 20 41 73 53 61  lerVariable AsSa
4920: 6d 70 6c 65 72 28 29 3b 0d 0a 09 48 52 45 53 55  mpler();...HRESU
4930: 4c 54 20 53 65 74 52 61 77 56 61 6c 75 65 28 76  LT SetRawValue(v
4940: 6f 69 64 2a 20 70 44 61 74 61 2c 20 55 49 4e 54  oid* pData, UINT
4950: 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f   Offset, UINT Co
4960: 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  unt);...HRESULT 
4970: 47 65 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64  GetRawValue(void
4980: 2a 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66  * pData, UINT Of
4990: 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74  fset, UINT Count
49a0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74  );...HRESULT Set
49b0: 44 65 70 74 68 53 74 65 6e 63 69 6c 28 49 44 33  DepthStencil(ID3
49c0: 44 31 30 44 65 70 74 68 53 74 65 6e 63 69 6c 56  D10DepthStencilV
49d0: 69 65 77 20 70 52 65 73 6f 75 72 63 65 29 3b 0d  iew pResource);.
49e0: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44 65 70  ..HRESULT GetDep
49f0: 74 68 53 74 65 6e 63 69 6c 28 49 44 33 44 31 30  thStencil(ID3D10
4a00: 44 65 70 74 68 53 74 65 6e 63 69 6c 56 69 65 77  DepthStencilView
4a10: 2a 20 70 70 52 65 73 6f 75 72 63 65 29 3b 0d 0a  * ppResource);..
4a20: 09 48 52 45 53 55 4c 54 20 53 65 74 44 65 70 74  .HRESULT SetDept
4a30: 68 53 74 65 6e 63 69 6c 41 72 72 61 79 28 49 44  hStencilArray(ID
4a40: 33 44 31 30 44 65 70 74 68 53 74 65 6e 63 69 6c  3D10DepthStencil
4a50: 56 69 65 77 2a 20 70 70 52 65 73 6f 75 72 63 65  View* ppResource
4a60: 73 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  s, UINT Offset, 
4a70: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48  UINT Count);...H
4a80: 52 45 53 55 4c 54 20 47 65 74 44 65 70 74 68 53  RESULT GetDepthS
4a90: 74 65 6e 63 69 6c 41 72 72 61 79 28 49 44 33 44  tencilArray(ID3D
4aa0: 31 30 44 65 70 74 68 53 74 65 6e 63 69 6c 56 69  10DepthStencilVi
4ab0: 65 77 2a 20 70 70 52 65 73 6f 75 72 63 65 73 2c  ew* ppResources,
4ac0: 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20 55 49   UINT Offset, UI
4ad0: 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 2a 2f 0d  NT Count);...*/.
4ae0: 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 43 29  .}....extern (C)
4af0: 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49 44 5f   const GUID IID_
4b00: 49 44 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73  ID3D10EffectCons
4b10: 74 61 6e 74 42 75 66 66 65 72 20 3d 20 7b 30 78  tantBuffer = {0x
4b20: 35 36 36 34 38 66 34 64 2c 20 30 78 63 63 38 62  56648f4d, 0xcc8b
4b30: 2c 20 30 78 34 34 34 34 2c 20 5b 30 78 61 35 2c  , 0x4444, [0xa5,
4b40: 20 30 78 61 64 2c 20 30 78 62 35 2c 20 30 78 61   0xad, 0xb5, 0xa
4b50: 33 2c 20 30 78 64 37 2c 20 30 78 36 65 2c 20 30  3, 0xd7, 0x6e, 0
4b60: 78 39 31 2c 20 30 78 62 33 5d 7d 3b 0d 0a 0d 0a  x91, 0xb3]};....
4b70: 69 6e 74 65 72 66 61 63 65 20 49 44 33 44 31 30  interface ID3D10
4b80: 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75  EffectConstantBu
4b90: 66 66 65 72 20 3a 20 49 44 33 44 31 30 45 66 66  ffer : ID3D10Eff
4ba0: 65 63 74 56 61 72 69 61 62 6c 65 20 7b 0d 0a 2f  ectVariable {../
4bb0: 2a 20 54 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c  * TODO: fix vtbl
4bc0: 5b 30 5d 20 62 75 67 0d 0a 09 65 78 74 65 72 6e  [0] bug...extern
4bd0: 28 57 69 6e 64 6f 77 73 29 20 3a 0d 0a 09 49 44  (Windows) :...ID
4be0: 33 44 31 30 45 66 66 65 63 74 54 79 70 65 20 47  3D10EffectType G
4bf0: 65 74 54 79 70 65 28 29 3b 0d 0a 09 48 52 45 53  etType();...HRES
4c00: 55 4c 54 20 47 65 74 44 65 73 63 28 44 33 44 31  ULT GetDesc(D3D1
4c10: 30 5f 45 46 46 45 43 54 5f 56 41 52 49 41 42 4c  0_EFFECT_VARIABL
4c20: 45 5f 44 45 53 43 2a 20 70 44 65 73 63 29 3b 0d  E_DESC* pDesc);.
4c30: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
4c40: 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61  riable GetAnnota
4c50: 74 69 6f 6e 42 79 49 6e 64 65 78 28 55 49 4e 54  tionByIndex(UINT
4c60: 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31   Index);...ID3D1
4c70: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
4c80: 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 4e  GetAnnotationByN
4c90: 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65 29  ame(LPCSTR Name)
4ca0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
4cb0: 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62  Variable GetMemb
4cc0: 65 72 42 79 49 6e 64 65 78 28 55 49 4e 54 20 49  erByIndex(UINT I
4cd0: 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45  ndex);...ID3D10E
4ce0: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
4cf0: 74 4d 65 6d 62 65 72 42 79 4e 61 6d 65 28 4c 50  tMemberByName(LP
4d00: 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44  CSTR Name);...ID
4d10: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
4d20: 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 53 65  le GetMemberBySe
4d30: 6d 61 6e 74 69 63 28 4c 50 43 53 54 52 20 53 65  mantic(LPCSTR Se
4d40: 6d 61 6e 74 69 63 29 3b 0d 0a 09 49 44 33 44 31  mantic);...ID3D1
4d50: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
4d60: 47 65 74 45 6c 65 6d 65 6e 74 28 55 49 4e 54 20  GetElement(UINT 
4d70: 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30  Index);...ID3D10
4d80: 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75  EffectConstantBu
4d90: 66 66 65 72 20 47 65 74 50 61 72 65 6e 74 43 6f  ffer GetParentCo
4da0: 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29 3b 0d  nstantBuffer();.
4db0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53 63  ..ID3D10EffectSc
4dc0: 61 6c 61 72 56 61 72 69 61 62 6c 65 20 41 73 53  alarVariable AsS
4dd0: 63 61 6c 61 72 28 29 3b 0d 0a 09 49 44 33 44 31  calar();...ID3D1
4de0: 30 45 66 66 65 63 74 56 65 63 74 6f 72 56 61 72  0EffectVectorVar
4df0: 69 61 62 6c 65 20 41 73 56 65 63 74 6f 72 28 29  iable AsVector()
4e00: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
4e10: 4d 61 74 72 69 78 56 61 72 69 61 62 6c 65 20 41  MatrixVariable A
4e20: 73 4d 61 74 72 69 78 28 29 3b 0d 0a 09 49 44 33  sMatrix();...ID3
4e30: 44 31 30 45 66 66 65 63 74 53 74 72 69 6e 67 56  D10EffectStringV
4e40: 61 72 69 61 62 6c 65 20 41 73 53 74 72 69 6e 67  ariable AsString
4e50: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
4e60: 63 74 53 68 61 64 65 72 52 65 73 6f 75 72 63 65  ctShaderResource
4e70: 56 61 72 69 61 62 6c 65 20 41 73 53 68 61 64 65  Variable AsShade
4e80: 72 52 65 73 6f 75 72 63 65 28 29 3b 0d 0a 09 49  rResource();...I
4e90: 44 33 44 31 30 45 66 66 65 63 74 52 65 6e 64 65  D3D10EffectRende
4ea0: 72 54 61 72 67 65 74 56 69 65 77 56 61 72 69 61  rTargetViewVaria
4eb0: 62 6c 65 20 41 73 52 65 6e 64 65 72 54 61 72 67  ble AsRenderTarg
4ec0: 65 74 56 69 65 77 28 29 3b 0d 0a 09 49 44 33 44  etView();...ID3D
4ed0: 31 30 45 66 66 65 63 74 44 65 70 74 68 53 74 65  10EffectDepthSte
4ee0: 6e 63 69 6c 56 69 65 77 56 61 72 69 61 62 6c 65  ncilViewVariable
4ef0: 20 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c 56   AsDepthStencilV
4f00: 69 65 77 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  iew();...ID3D10E
4f10: 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75 66  ffectConstantBuf
4f20: 66 65 72 20 41 73 43 6f 6e 73 74 61 6e 74 42 75  fer AsConstantBu
4f30: 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  ffer();...ID3D10
4f40: 45 66 66 65 63 74 53 68 61 64 65 72 56 61 72 69  EffectShaderVari
4f50: 61 62 6c 65 20 41 73 53 68 61 64 65 72 28 29 3b  able AsShader();
4f60: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 42  ...ID3D10EffectB
4f70: 6c 65 6e 64 56 61 72 69 61 62 6c 65 20 41 73 42  lendVariable AsB
4f80: 6c 65 6e 64 28 29 3b 0d 0a 09 49 44 33 44 31 30  lend();...ID3D10
4f90: 45 66 66 65 63 74 44 65 70 74 68 53 74 65 6e 63  EffectDepthStenc
4fa0: 69 6c 56 61 72 69 61 62 6c 65 20 41 73 44 65 70  ilVariable AsDep
4fb0: 74 68 53 74 65 6e 63 69 6c 28 29 3b 0d 0a 09 49  thStencil();...I
4fc0: 44 33 44 31 30 45 66 66 65 63 74 52 61 73 74 65  D3D10EffectRaste
4fd0: 72 69 7a 65 72 56 61 72 69 61 62 6c 65 20 41 73  rizerVariable As
4fe0: 52 61 73 74 65 72 69 7a 65 72 28 29 3b 0d 0a 09  Rasterizer();...
4ff0: 49 44 33 44 31 30 45 66 66 65 63 74 53 61 6d 70  ID3D10EffectSamp
5000: 6c 65 72 56 61 72 69 61 62 6c 65 20 41 73 53 61  lerVariable AsSa
5010: 6d 70 6c 65 72 28 29 3b 0d 0a 09 48 52 45 53 55  mpler();...HRESU
5020: 4c 54 20 53 65 74 52 61 77 56 61 6c 75 65 28 76  LT SetRawValue(v
5030: 6f 69 64 2a 20 70 44 61 74 61 2c 20 55 49 4e 54  oid* pData, UINT
5040: 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f   Offset, UINT Co
5050: 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  unt);...HRESULT 
5060: 47 65 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64  GetRawValue(void
5070: 2a 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66  * pData, UINT Of
5080: 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74  fset, UINT Count
5090: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74  );...HRESULT Set
50a0: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 28 49  ConstantBuffer(I
50b0: 44 33 44 31 30 42 75 66 66 65 72 20 70 43 6f 6e  D3D10Buffer pCon
50c0: 73 74 61 6e 74 42 75 66 66 65 72 29 3b 0d 0a 09  stantBuffer);...
50d0: 48 52 45 53 55 4c 54 20 47 65 74 43 6f 6e 73 74  HRESULT GetConst
50e0: 61 6e 74 42 75 66 66 65 72 28 49 44 33 44 31 30  antBuffer(ID3D10
50f0: 42 75 66 66 65 72 2a 20 70 70 43 6f 6e 73 74 61  Buffer* ppConsta
5100: 6e 74 42 75 66 66 65 72 29 3b 0d 0a 09 48 52 45  ntBuffer);...HRE
5110: 53 55 4c 54 20 53 65 74 54 65 78 74 75 72 65 42  SULT SetTextureB
5120: 75 66 66 65 72 28 49 44 33 44 31 30 53 68 61 64  uffer(ID3D10Shad
5130: 65 72 52 65 73 6f 75 72 63 65 56 69 65 77 20 70  erResourceView p
5140: 54 65 78 74 75 72 65 42 75 66 66 65 72 29 3b 0d  TextureBuffer);.
5150: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 54 65 78  ..HRESULT GetTex
5160: 74 75 72 65 42 75 66 66 65 72 28 49 44 33 44 31  tureBuffer(ID3D1
5170: 30 53 68 61 64 65 72 52 65 73 6f 75 72 63 65 56  0ShaderResourceV
5180: 69 65 77 2a 20 70 70 54 65 78 74 75 72 65 42 75  iew* ppTextureBu
5190: 66 66 65 72 29 3b 0d 0a 09 2a 2f 0d 0a 7d 0d 0a  ffer);...*/..}..
51a0: 0d 0a 73 74 72 75 63 74 20 44 33 44 31 30 5f 45  ..struct D3D10_E
51b0: 46 46 45 43 54 5f 53 48 41 44 45 52 5f 44 45 53  FFECT_SHADER_DES
51c0: 43 20 7b 0d 0a 09 42 59 54 45 2a 09 70 49 6e 70  C {...BYTE*.pInp
51d0: 75 74 53 69 67 6e 61 74 75 72 65 3b 0d 0a 09 42  utSignature;...B
51e0: 4f 4f 4c 09 49 73 49 6e 6c 69 6e 65 3b 0d 0a 09  OOL.IsInline;...
51f0: 42 59 54 45 2a 09 70 42 79 74 65 63 6f 64 65 3b  BYTE*.pBytecode;
5200: 0d 0a 09 55 49 4e 54 09 42 79 74 65 63 6f 64 65  ...UINT.Bytecode
5210: 4c 65 6e 67 74 68 3b 0d 0a 09 4c 50 43 53 54 52  Length;...LPCSTR
5220: 09 53 4f 44 65 63 6c 3b 0d 0a 09 55 49 4e 54 09  .SODecl;...UINT.
5230: 4e 75 6d 49 6e 70 75 74 53 69 67 6e 61 74 75 72  NumInputSignatur
5240: 65 45 6e 74 72 69 65 73 3b 0d 0a 09 55 49 4e 54  eEntries;...UINT
5250: 09 4e 75 6d 4f 75 74 70 75 74 53 69 67 6e 61 74  .NumOutputSignat
5260: 75 72 65 45 6e 74 72 69 65 73 3b 0d 0a 7d 0d 0a  ureEntries;..}..
5270: 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f 6e  ..extern (C) con
5280: 73 74 20 47 55 49 44 20 49 49 44 5f 49 44 33 44  st GUID IID_ID3D
5290: 31 30 45 66 66 65 63 74 53 68 61 64 65 72 56 61  10EffectShaderVa
52a0: 72 69 61 62 6c 65 20 3d 20 7b 30 78 38 30 38 34  riable = {0x8084
52b0: 39 32 37 39 2c 20 30 78 63 37 39 39 2c 20 30 78  9279, 0xc799, 0x
52c0: 34 37 39 37 2c 20 5b 30 78 38 63 2c 20 30 78 33  4797, [0x8c, 0x3
52d0: 33 2c 20 30 78 34 2c 20 30 78 37 2c 20 30 78 61  3, 0x4, 0x7, 0xa
52e0: 30 2c 20 30 78 37 64 2c 20 30 78 39 65 2c 20 30  0, 0x7d, 0x9e, 0
52f0: 78 36 5d 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61  x6]};....interfa
5300: 63 65 20 49 44 33 44 31 30 45 66 66 65 63 74 53  ce ID3D10EffectS
5310: 68 61 64 65 72 56 61 72 69 61 62 6c 65 20 3a 20  haderVariable : 
5320: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
5330: 61 62 6c 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f 3a  able {../* TODO:
5340: 20 66 69 78 20 76 74 62 6c 5b 30 5d 20 62 75 67   fix vtbl[0] bug
5350: 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
5360: 73 29 20 3a 0d 0a 09 49 44 33 44 31 30 45 66 66  s) :...ID3D10Eff
5370: 65 63 74 54 79 70 65 20 47 65 74 54 79 70 65 28  ectType GetType(
5380: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
5390: 44 65 73 63 28 44 33 44 31 30 5f 45 46 46 45 43  Desc(D3D10_EFFEC
53a0: 54 5f 56 41 52 49 41 42 4c 45 5f 44 45 53 43 2a  T_VARIABLE_DESC*
53b0: 20 70 44 65 73 63 29 3b 0d 0a 09 49 44 33 44 31   pDesc);...ID3D1
53c0: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
53d0: 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 49  GetAnnotationByI
53e0: 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29  ndex(UINT Index)
53f0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
5400: 56 61 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f  Variable GetAnno
5410: 74 61 74 69 6f 6e 42 79 4e 61 6d 65 28 4c 50 43  tationByName(LPC
5420: 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33  STR Name);...ID3
5430: 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c  D10EffectVariabl
5440: 65 20 47 65 74 4d 65 6d 62 65 72 42 79 49 6e 64  e GetMemberByInd
5450: 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d  ex(UINT Index);.
5460: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
5470: 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72  riable GetMember
5480: 42 79 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e 61  ByName(LPCSTR Na
5490: 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  me);...ID3D10Eff
54a0: 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 4d  ectVariable GetM
54b0: 65 6d 62 65 72 42 79 53 65 6d 61 6e 74 69 63 28  emberBySemantic(
54c0: 4c 50 43 53 54 52 20 53 65 6d 61 6e 74 69 63 29  LPCSTR Semantic)
54d0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
54e0: 56 61 72 69 61 62 6c 65 20 47 65 74 45 6c 65 6d  Variable GetElem
54f0: 65 6e 74 28 55 49 4e 54 20 49 6e 64 65 78 29 3b  ent(UINT Index);
5500: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 43  ...ID3D10EffectC
5510: 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20 47 65  onstantBuffer Ge
5520: 74 50 61 72 65 6e 74 43 6f 6e 73 74 61 6e 74 42  tParentConstantB
5530: 75 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44 31  uffer();...ID3D1
5540: 30 45 66 66 65 63 74 53 63 61 6c 61 72 56 61 72  0EffectScalarVar
5550: 69 61 62 6c 65 20 41 73 53 63 61 6c 61 72 28 29  iable AsScalar()
5560: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
5570: 56 65 63 74 6f 72 56 61 72 69 61 62 6c 65 20 41  VectorVariable A
5580: 73 56 65 63 74 6f 72 28 29 3b 0d 0a 09 49 44 33  sVector();...ID3
5590: 44 31 30 45 66 66 65 63 74 4d 61 74 72 69 78 56  D10EffectMatrixV
55a0: 61 72 69 61 62 6c 65 20 41 73 4d 61 74 72 69 78  ariable AsMatrix
55b0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
55c0: 63 74 53 74 72 69 6e 67 56 61 72 69 61 62 6c 65  ctStringVariable
55d0: 20 41 73 53 74 72 69 6e 67 28 29 3b 0d 0a 09 49   AsString();...I
55e0: 44 33 44 31 30 45 66 66 65 63 74 53 68 61 64 65  D3D10EffectShade
55f0: 72 52 65 73 6f 75 72 63 65 56 61 72 69 61 62 6c  rResourceVariabl
5600: 65 20 41 73 53 68 61 64 65 72 52 65 73 6f 75 72  e AsShaderResour
5610: 63 65 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ce();...ID3D10Ef
5620: 66 65 63 74 52 65 6e 64 65 72 54 61 72 67 65 74  fectRenderTarget
5630: 56 69 65 77 56 61 72 69 61 62 6c 65 20 41 73 52  ViewVariable AsR
5640: 65 6e 64 65 72 54 61 72 67 65 74 56 69 65 77 28  enderTargetView(
5650: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
5660: 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56 69 65  tDepthStencilVie
5670: 77 56 61 72 69 61 62 6c 65 20 41 73 44 65 70 74  wVariable AsDept
5680: 68 53 74 65 6e 63 69 6c 56 69 65 77 28 29 3b 0d  hStencilView();.
5690: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 43 6f  ..ID3D10EffectCo
56a0: 6e 73 74 61 6e 74 42 75 66 66 65 72 20 41 73 43  nstantBuffer AsC
56b0: 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29 3b  onstantBuffer();
56c0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53  ...ID3D10EffectS
56d0: 68 61 64 65 72 56 61 72 69 61 62 6c 65 20 41 73  haderVariable As
56e0: 53 68 61 64 65 72 28 29 3b 0d 0a 09 49 44 33 44  Shader();...ID3D
56f0: 31 30 45 66 66 65 63 74 42 6c 65 6e 64 56 61 72  10EffectBlendVar
5700: 69 61 62 6c 65 20 41 73 42 6c 65 6e 64 28 29 3b  iable AsBlend();
5710: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 44  ...ID3D10EffectD
5720: 65 70 74 68 53 74 65 6e 63 69 6c 56 61 72 69 61  epthStencilVaria
5730: 62 6c 65 20 41 73 44 65 70 74 68 53 74 65 6e 63  ble AsDepthStenc
5740: 69 6c 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  il();...ID3D10Ef
5750: 66 65 63 74 52 61 73 74 65 72 69 7a 65 72 56 61  fectRasterizerVa
5760: 72 69 61 62 6c 65 20 41 73 52 61 73 74 65 72 69  riable AsRasteri
5770: 7a 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  zer();...ID3D10E
5780: 66 66 65 63 74 53 61 6d 70 6c 65 72 56 61 72 69  ffectSamplerVari
5790: 61 62 6c 65 20 41 73 53 61 6d 70 6c 65 72 28 29  able AsSampler()
57a0: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74 52  ;...HRESULT SetR
57b0: 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44  awValue(void* pD
57c0: 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74  ata, UINT Offset
57d0: 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a  , UINT Count);..
57e0: 09 48 52 45 53 55 4c 54 20 47 65 74 52 61 77 56  .HRESULT GetRawV
57f0: 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74 61  alue(void* pData
5800: 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20 55  , UINT Offset, U
5810: 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48 52  INT Count);...HR
5820: 45 53 55 4c 54 20 47 65 74 53 68 61 64 65 72 44  ESULT GetShaderD
5830: 65 73 63 28 55 49 4e 54 20 53 68 61 64 65 72 49  esc(UINT ShaderI
5840: 6e 64 65 78 2c 20 44 33 44 31 30 5f 45 46 46 45  ndex, D3D10_EFFE
5850: 43 54 5f 53 48 41 44 45 52 5f 44 45 53 43 2a 20  CT_SHADER_DESC* 
5860: 70 44 65 73 63 29 3b 0d 0a 09 48 52 45 53 55 4c  pDesc);...HRESUL
5870: 54 20 47 65 74 56 65 72 74 65 78 53 68 61 64 65  T GetVertexShade
5880: 72 28 55 49 4e 54 20 53 68 61 64 65 72 49 6e 64  r(UINT ShaderInd
5890: 65 78 2c 20 49 44 33 44 31 30 56 65 72 74 65 78  ex, ID3D10Vertex
58a0: 53 68 61 64 65 72 2a 20 70 70 56 53 29 3b 0d 0a  Shader* ppVS);..
58b0: 09 48 52 45 53 55 4c 54 20 47 65 74 47 65 6f 6d  .HRESULT GetGeom
58c0: 65 74 72 79 53 68 61 64 65 72 28 55 49 4e 54 20  etryShader(UINT 
58d0: 53 68 61 64 65 72 49 6e 64 65 78 2c 20 49 44 33  ShaderIndex, ID3
58e0: 44 31 30 47 65 6f 6d 65 74 72 79 53 68 61 64 65  D10GeometryShade
58f0: 72 2a 20 70 70 47 53 29 3b 0d 0a 09 48 52 45 53  r* ppGS);...HRES
5900: 55 4c 54 20 47 65 74 50 69 78 65 6c 53 68 61 64  ULT GetPixelShad
5910: 65 72 28 55 49 4e 54 20 53 68 61 64 65 72 49 6e  er(UINT ShaderIn
5920: 64 65 78 2c 20 49 44 33 44 31 30 50 69 78 65 6c  dex, ID3D10Pixel
5930: 53 68 61 64 65 72 2a 20 70 70 50 53 29 3b 0d 0a  Shader* ppPS);..
5940: 09 48 52 45 53 55 4c 54 20 47 65 74 49 6e 70 75  .HRESULT GetInpu
5950: 74 53 69 67 6e 61 74 75 72 65 45 6c 65 6d 65 6e  tSignatureElemen
5960: 74 44 65 73 63 28 55 49 4e 54 20 53 68 61 64 65  tDesc(UINT Shade
5970: 72 49 6e 64 65 78 2c 20 55 49 4e 54 20 45 6c 65  rIndex, UINT Ele
5980: 6d 65 6e 74 2c 20 44 33 44 31 30 5f 53 49 47 4e  ment, D3D10_SIGN
5990: 41 54 55 52 45 5f 50 41 52 41 4d 45 54 45 52 5f  ATURE_PARAMETER_
59a0: 44 45 53 43 2a 20 70 44 65 73 63 29 3b 0d 0a 09  DESC* pDesc);...
59b0: 48 52 45 53 55 4c 54 20 47 65 74 4f 75 74 70 75  HRESULT GetOutpu
59c0: 74 53 69 67 6e 61 74 75 72 65 45 6c 65 6d 65 6e  tSignatureElemen
59d0: 74 44 65 73 63 28 55 49 4e 54 20 53 68 61 64 65  tDesc(UINT Shade
59e0: 72 49 6e 64 65 78 2c 20 55 49 4e 54 20 45 6c 65  rIndex, UINT Ele
59f0: 6d 65 6e 74 2c 20 44 33 44 31 30 5f 53 49 47 4e  ment, D3D10_SIGN
5a00: 41 54 55 52 45 5f 50 41 52 41 4d 45 54 45 52 5f  ATURE_PARAMETER_
5a10: 44 45 53 43 2a 20 70 44 65 73 63 29 3b 0d 0a 09  DESC* pDesc);...
5a20: 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20  */..}....extern 
5a30: 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49  (C) const GUID I
5a40: 49 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 42  ID_ID3D10EffectB
5a50: 6c 65 6e 64 56 61 72 69 61 62 6c 65 20 3d 20 7b  lendVariable = {
5a60: 30 78 31 66 63 64 32 32 39 34 2c 20 30 78 64 66  0x1fcd2294, 0xdf
5a70: 36 64 2c 20 30 78 34 65 61 65 2c 20 5b 30 78 38  6d, 0x4eae, [0x8
5a80: 36 2c 20 30 78 62 33 2c 20 30 78 65 2c 20 30 78  6, 0xb3, 0xe, 0x
5a90: 39 31 2c 20 30 78 36 30 2c 20 30 78 63 66 2c 20  91, 0x60, 0xcf, 
5aa0: 30 78 62 30 2c 20 30 78 37 62 5d 7d 3b 0d 0a 0d  0xb0, 0x7b]};...
5ab0: 0a 69 6e 74 65 72 66 61 63 65 20 49 44 33 44 31  .interface ID3D1
5ac0: 30 45 66 66 65 63 74 42 6c 65 6e 64 56 61 72 69  0EffectBlendVari
5ad0: 61 62 6c 65 20 3a 20 49 44 33 44 31 30 45 66 66  able : ID3D10Eff
5ae0: 65 63 74 56 61 72 69 61 62 6c 65 20 7b 0d 0a 2f  ectVariable {../
5af0: 2a 20 54 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c  * TODO: fix vtbl
5b00: 5b 30 5d 20 62 75 67 0d 0a 09 65 78 74 65 72 6e  [0] bug...extern
5b10: 28 57 69 6e 64 6f 77 73 29 20 3a 0d 0a 09 49 44  (Windows) :...ID
5b20: 33 44 31 30 45 66 66 65 63 74 54 79 70 65 20 47  3D10EffectType G
5b30: 65 74 54 79 70 65 28 29 3b 0d 0a 09 48 52 45 53  etType();...HRES
5b40: 55 4c 54 20 47 65 74 44 65 73 63 28 44 33 44 31  ULT GetDesc(D3D1
5b50: 30 5f 45 46 46 45 43 54 5f 56 41 52 49 41 42 4c  0_EFFECT_VARIABL
5b60: 45 5f 44 45 53 43 2a 20 70 44 65 73 63 29 3b 0d  E_DESC* pDesc);.
5b70: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
5b80: 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61  riable GetAnnota
5b90: 74 69 6f 6e 42 79 49 6e 64 65 78 28 55 49 4e 54  tionByIndex(UINT
5ba0: 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31   Index);...ID3D1
5bb0: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
5bc0: 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 4e  GetAnnotationByN
5bd0: 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65 29  ame(LPCSTR Name)
5be0: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
5bf0: 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62  Variable GetMemb
5c00: 65 72 42 79 49 6e 64 65 78 28 55 49 4e 54 20 49  erByIndex(UINT I
5c10: 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45  ndex);...ID3D10E
5c20: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
5c30: 74 4d 65 6d 62 65 72 42 79 4e 61 6d 65 28 4c 50  tMemberByName(LP
5c40: 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44  CSTR Name);...ID
5c50: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
5c60: 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 53 65  le GetMemberBySe
5c70: 6d 61 6e 74 69 63 28 4c 50 43 53 54 52 20 53 65  mantic(LPCSTR Se
5c80: 6d 61 6e 74 69 63 29 3b 0d 0a 09 49 44 33 44 31  mantic);...ID3D1
5c90: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
5ca0: 47 65 74 45 6c 65 6d 65 6e 74 28 55 49 4e 54 20  GetElement(UINT 
5cb0: 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30  Index);...ID3D10
5cc0: 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75  EffectConstantBu
5cd0: 66 66 65 72 20 47 65 74 50 61 72 65 6e 74 43 6f  ffer GetParentCo
5ce0: 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29 3b 0d  nstantBuffer();.
5cf0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53 63  ..ID3D10EffectSc
5d00: 61 6c 61 72 56 61 72 69 61 62 6c 65 20 41 73 53  alarVariable AsS
5d10: 63 61 6c 61 72 28 29 3b 0d 0a 09 49 44 33 44 31  calar();...ID3D1
5d20: 30 45 66 66 65 63 74 56 65 63 74 6f 72 56 61 72  0EffectVectorVar
5d30: 69 61 62 6c 65 20 41 73 56 65 63 74 6f 72 28 29  iable AsVector()
5d40: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
5d50: 4d 61 74 72 69 78 56 61 72 69 61 62 6c 65 20 41  MatrixVariable A
5d60: 73 4d 61 74 72 69 78 28 29 3b 0d 0a 09 49 44 33  sMatrix();...ID3
5d70: 44 31 30 45 66 66 65 63 74 53 74 72 69 6e 67 56  D10EffectStringV
5d80: 61 72 69 61 62 6c 65 20 41 73 53 74 72 69 6e 67  ariable AsString
5d90: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
5da0: 63 74 53 68 61 64 65 72 52 65 73 6f 75 72 63 65  ctShaderResource
5db0: 56 61 72 69 61 62 6c 65 20 41 73 53 68 61 64 65  Variable AsShade
5dc0: 72 52 65 73 6f 75 72 63 65 28 29 3b 0d 0a 09 49  rResource();...I
5dd0: 44 33 44 31 30 45 66 66 65 63 74 52 65 6e 64 65  D3D10EffectRende
5de0: 72 54 61 72 67 65 74 56 69 65 77 56 61 72 69 61  rTargetViewVaria
5df0: 62 6c 65 20 41 73 52 65 6e 64 65 72 54 61 72 67  ble AsRenderTarg
5e00: 65 74 56 69 65 77 28 29 3b 0d 0a 09 49 44 33 44  etView();...ID3D
5e10: 31 30 45 66 66 65 63 74 44 65 70 74 68 53 74 65  10EffectDepthSte
5e20: 6e 63 69 6c 56 69 65 77 56 61 72 69 61 62 6c 65  ncilViewVariable
5e30: 20 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c 56   AsDepthStencilV
5e40: 69 65 77 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  iew();...ID3D10E
5e50: 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75 66  ffectConstantBuf
5e60: 66 65 72 20 41 73 43 6f 6e 73 74 61 6e 74 42 75  fer AsConstantBu
5e70: 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  ffer();...ID3D10
5e80: 45 66 66 65 63 74 53 68 61 64 65 72 56 61 72 69  EffectShaderVari
5e90: 61 62 6c 65 20 41 73 53 68 61 64 65 72 28 29 3b  able AsShader();
5ea0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 42  ...ID3D10EffectB
5eb0: 6c 65 6e 64 56 61 72 69 61 62 6c 65 20 41 73 42  lendVariable AsB
5ec0: 6c 65 6e 64 28 29 3b 0d 0a 09 49 44 33 44 31 30  lend();...ID3D10
5ed0: 45 66 66 65 63 74 44 65 70 74 68 53 74 65 6e 63  EffectDepthStenc
5ee0: 69 6c 56 61 72 69 61 62 6c 65 20 41 73 44 65 70  ilVariable AsDep
5ef0: 74 68 53 74 65 6e 63 69 6c 28 29 3b 0d 0a 09 49  thStencil();...I
5f00: 44 33 44 31 30 45 66 66 65 63 74 52 61 73 74 65  D3D10EffectRaste
5f10: 72 69 7a 65 72 56 61 72 69 61 62 6c 65 20 41 73  rizerVariable As
5f20: 52 61 73 74 65 72 69 7a 65 72 28 29 3b 0d 0a 09  Rasterizer();...
5f30: 49 44 33 44 31 30 45 66 66 65 63 74 53 61 6d 70  ID3D10EffectSamp
5f40: 6c 65 72 56 61 72 69 61 62 6c 65 20 41 73 53 61  lerVariable AsSa
5f50: 6d 70 6c 65 72 28 29 3b 0d 0a 09 48 52 45 53 55  mpler();...HRESU
5f60: 4c 54 20 53 65 74 52 61 77 56 61 6c 75 65 28 76  LT SetRawValue(v
5f70: 6f 69 64 2a 20 70 44 61 74 61 2c 20 55 49 4e 54  oid* pData, UINT
5f80: 20 4f 66 66 73 65 74 2c 20 55 49 4e 54 20 43 6f   Offset, UINT Co
5f90: 75 6e 74 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  unt);...HRESULT 
5fa0: 47 65 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64  GetRawValue(void
5fb0: 2a 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66  * pData, UINT Of
5fc0: 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74  fset, UINT Count
5fd0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
5fe0: 42 6c 65 6e 64 53 74 61 74 65 28 55 49 4e 54 20  BlendState(UINT 
5ff0: 49 6e 64 65 78 2c 20 49 44 33 44 31 30 42 6c 65  Index, ID3D10Ble
6000: 6e 64 53 74 61 74 65 2a 20 70 70 42 6c 65 6e 64  ndState* ppBlend
6010: 53 74 61 74 65 29 3b 0d 0a 09 48 52 45 53 55 4c  State);...HRESUL
6020: 54 20 47 65 74 42 61 63 6b 69 6e 67 53 74 6f 72  T GetBackingStor
6030: 65 28 55 49 4e 54 20 49 6e 64 65 78 2c 20 44 33  e(UINT Index, D3
6040: 44 31 30 5f 42 4c 45 4e 44 5f 44 45 53 43 2a 20  D10_BLEND_DESC* 
6050: 70 42 6c 65 6e 64 44 65 73 63 29 3b 0d 0a 09 2a  pBlendDesc);...*
6060: 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28  /..}....extern (
6070: 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49 49  C) const GUID II
6080: 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 44 65  D_ID3D10EffectDe
6090: 70 74 68 53 74 65 6e 63 69 6c 56 61 72 69 61 62  pthStencilVariab
60a0: 6c 65 20 3d 20 7b 30 78 61 66 34 38 32 33 36 38  le = {0xaf482368
60b0: 2c 20 30 78 33 33 30 61 2c 20 30 78 34 36 61 35  , 0x330a, 0x46a5
60c0: 2c 20 5b 30 78 39 61 2c 20 30 78 35 63 2c 20 30  , [0x9a, 0x5c, 0
60d0: 78 31 2c 20 30 78 63 37 2c 20 30 78 31 61 2c 20  x1, 0xc7, 0x1a, 
60e0: 30 78 66 32 2c 20 30 78 34 63 2c 20 30 78 38 64  0xf2, 0x4c, 0x8d
60f0: 5d 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65  ]};....interface
6100: 20 49 44 33 44 31 30 45 66 66 65 63 74 44 65 70   ID3D10EffectDep
6110: 74 68 53 74 65 6e 63 69 6c 56 61 72 69 61 62 6c  thStencilVariabl
6120: 65 20 3a 20 49 44 33 44 31 30 45 66 66 65 63 74  e : ID3D10Effect
6130: 56 61 72 69 61 62 6c 65 20 7b 0d 0a 2f 2a 20 54  Variable {../* T
6140: 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c 5b 30 5d  ODO: fix vtbl[0]
6150: 20 62 75 67 0d 0a 09 65 78 74 65 72 6e 28 57 69   bug...extern(Wi
6160: 6e 64 6f 77 73 29 20 3a 0d 0a 09 49 44 33 44 31  ndows) :...ID3D1
6170: 30 45 66 66 65 63 74 54 79 70 65 20 47 65 74 54  0EffectType GetT
6180: 79 70 65 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54  ype();...HRESULT
6190: 20 47 65 74 44 65 73 63 28 44 33 44 31 30 5f 45   GetDesc(D3D10_E
61a0: 46 46 45 43 54 5f 56 41 52 49 41 42 4c 45 5f 44  FFECT_VARIABLE_D
61b0: 45 53 43 2a 20 70 44 65 73 63 29 3b 0d 0a 09 49  ESC* pDesc);...I
61c0: 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61  D3D10EffectVaria
61d0: 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f  ble GetAnnotatio
61e0: 6e 42 79 49 6e 64 65 78 28 55 49 4e 54 20 49 6e  nByIndex(UINT In
61f0: 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  dex);...ID3D10Ef
6200: 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74  fectVariable Get
6210: 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 4e 61 6d 65  AnnotationByName
6220: 28 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a  (LPCSTR Name);..
6230: 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72  .ID3D10EffectVar
6240: 69 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72 42  iable GetMemberB
6250: 79 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65  yIndex(UINT Inde
6260: 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  x);...ID3D10Effe
6270: 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65  ctVariable GetMe
6280: 6d 62 65 72 42 79 4e 61 6d 65 28 4c 50 43 53 54  mberByName(LPCST
6290: 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31  R Name);...ID3D1
62a0: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
62b0: 47 65 74 4d 65 6d 62 65 72 42 79 53 65 6d 61 6e  GetMemberBySeman
62c0: 74 69 63 28 4c 50 43 53 54 52 20 53 65 6d 61 6e  tic(LPCSTR Seman
62d0: 74 69 63 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  tic);...ID3D10Ef
62e0: 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74  fectVariable Get
62f0: 45 6c 65 6d 65 6e 74 28 55 49 4e 54 20 49 6e 64  Element(UINT Ind
6300: 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  ex);...ID3D10Eff
6310: 65 63 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65  ectConstantBuffe
6320: 72 20 47 65 74 50 61 72 65 6e 74 43 6f 6e 73 74  r GetParentConst
6330: 61 6e 74 42 75 66 66 65 72 28 29 3b 0d 0a 09 49  antBuffer();...I
6340: 44 33 44 31 30 45 66 66 65 63 74 53 63 61 6c 61  D3D10EffectScala
6350: 72 56 61 72 69 61 62 6c 65 20 41 73 53 63 61 6c  rVariable AsScal
6360: 61 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ar();...ID3D10Ef
6370: 66 65 63 74 56 65 63 74 6f 72 56 61 72 69 61 62  fectVectorVariab
6380: 6c 65 20 41 73 56 65 63 74 6f 72 28 29 3b 0d 0a  le AsVector();..
6390: 09 49 44 33 44 31 30 45 66 66 65 63 74 4d 61 74  .ID3D10EffectMat
63a0: 72 69 78 56 61 72 69 61 62 6c 65 20 41 73 4d 61  rixVariable AsMa
63b0: 74 72 69 78 28 29 3b 0d 0a 09 49 44 33 44 31 30  trix();...ID3D10
63c0: 45 66 66 65 63 74 53 74 72 69 6e 67 56 61 72 69  EffectStringVari
63d0: 61 62 6c 65 20 41 73 53 74 72 69 6e 67 28 29 3b  able AsString();
63e0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 53  ...ID3D10EffectS
63f0: 68 61 64 65 72 52 65 73 6f 75 72 63 65 56 61 72  haderResourceVar
6400: 69 61 62 6c 65 20 41 73 53 68 61 64 65 72 52 65  iable AsShaderRe
6410: 73 6f 75 72 63 65 28 29 3b 0d 0a 09 49 44 33 44  source();...ID3D
6420: 31 30 45 66 66 65 63 74 52 65 6e 64 65 72 54 61  10EffectRenderTa
6430: 72 67 65 74 56 69 65 77 56 61 72 69 61 62 6c 65  rgetViewVariable
6440: 20 41 73 52 65 6e 64 65 72 54 61 72 67 65 74 56   AsRenderTargetV
6450: 69 65 77 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  iew();...ID3D10E
6460: 66 66 65 63 74 44 65 70 74 68 53 74 65 6e 63 69  ffectDepthStenci
6470: 6c 56 69 65 77 56 61 72 69 61 62 6c 65 20 41 73  lViewVariable As
6480: 44 65 70 74 68 53 74 65 6e 63 69 6c 56 69 65 77  DepthStencilView
6490: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
64a0: 63 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72  ctConstantBuffer
64b0: 20 41 73 43 6f 6e 73 74 61 6e 74 42 75 66 66 65   AsConstantBuffe
64c0: 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  r();...ID3D10Eff
64d0: 65 63 74 53 68 61 64 65 72 56 61 72 69 61 62 6c  ectShaderVariabl
64e0: 65 20 41 73 53 68 61 64 65 72 28 29 3b 0d 0a 09  e AsShader();...
64f0: 49 44 33 44 31 30 45 66 66 65 63 74 42 6c 65 6e  ID3D10EffectBlen
6500: 64 56 61 72 69 61 62 6c 65 20 41 73 42 6c 65 6e  dVariable AsBlen
6510: 64 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  d();...ID3D10Eff
6520: 65 63 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56  ectDepthStencilV
6530: 61 72 69 61 62 6c 65 20 41 73 44 65 70 74 68 53  ariable AsDepthS
6540: 74 65 6e 63 69 6c 28 29 3b 0d 0a 09 49 44 33 44  tencil();...ID3D
6550: 31 30 45 66 66 65 63 74 52 61 73 74 65 72 69 7a  10EffectRasteriz
6560: 65 72 56 61 72 69 61 62 6c 65 20 41 73 52 61 73  erVariable AsRas
6570: 74 65 72 69 7a 65 72 28 29 3b 0d 0a 09 49 44 33  terizer();...ID3
6580: 44 31 30 45 66 66 65 63 74 53 61 6d 70 6c 65 72  D10EffectSampler
6590: 56 61 72 69 61 62 6c 65 20 41 73 53 61 6d 70 6c  Variable AsSampl
65a0: 65 72 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  er();...HRESULT 
65b0: 53 65 74 52 61 77 56 61 6c 75 65 28 76 6f 69 64  SetRawValue(void
65c0: 2a 20 70 44 61 74 61 2c 20 55 49 4e 54 20 4f 66  * pData, UINT Of
65d0: 66 73 65 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74  fset, UINT Count
65e0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74  );...HRESULT Get
65f0: 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70  RawValue(void* p
6600: 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65  Data, UINT Offse
6610: 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d  t, UINT Count);.
6620: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44 65 70  ..HRESULT GetDep
6630: 74 68 53 74 65 6e 63 69 6c 53 74 61 74 65 28 55  thStencilState(U
6640: 49 4e 54 20 49 6e 64 65 78 2c 20 49 44 33 44 31  INT Index, ID3D1
6650: 30 44 65 70 74 68 53 74 65 6e 63 69 6c 53 74 61  0DepthStencilSta
6660: 74 65 2a 20 70 70 44 65 70 74 68 53 74 65 6e 63  te* ppDepthStenc
6670: 69 6c 53 74 61 74 65 29 3b 0d 0a 09 48 52 45 53  ilState);...HRES
6680: 55 4c 54 20 47 65 74 42 61 63 6b 69 6e 67 53 74  ULT GetBackingSt
6690: 6f 72 65 28 55 49 4e 54 20 49 6e 64 65 78 2c 20  ore(UINT Index, 
66a0: 44 33 44 31 30 5f 44 45 50 54 48 5f 53 54 45 4e  D3D10_DEPTH_STEN
66b0: 43 49 4c 5f 44 45 53 43 2a 20 70 44 65 70 74 68  CIL_DESC* pDepth
66c0: 53 74 65 6e 63 69 6c 44 65 73 63 29 3b 0d 0a 09  StencilDesc);...
66d0: 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20  */..}....extern 
66e0: 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44 20 49  (C) const GUID I
66f0: 49 44 5f 49 44 33 44 31 30 45 66 66 65 63 74 52  ID_ID3D10EffectR
6700: 61 73 74 65 72 69 7a 65 72 56 61 72 69 61 62 6c  asterizerVariabl
6710: 65 20 3d 20 7b 30 78 32 31 61 66 39 66 30 65 2c  e = {0x21af9f0e,
6720: 20 30 78 34 64 39 34 2c 20 30 78 34 65 61 39 2c   0x4d94, 0x4ea9,
6730: 20 5b 30 78 39 37 2c 20 30 78 38 35 2c 20 30 78   [0x97, 0x85, 0x
6740: 32 63 2c 20 30 78 62 37 2c 20 30 78 36 62 2c 20  2c, 0xb7, 0x6b, 
6750: 30 78 38 63 2c 20 30 78 62 2c 20 30 78 33 34 5d  0x8c, 0xb, 0x34]
6760: 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  };....interface 
6770: 49 44 33 44 31 30 45 66 66 65 63 74 52 61 73 74  ID3D10EffectRast
6780: 65 72 69 7a 65 72 56 61 72 69 61 62 6c 65 20 3a  erizerVariable :
6790: 20 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72   ID3D10EffectVar
67a0: 69 61 62 6c 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f  iable {../* TODO
67b0: 3a 20 66 69 78 20 76 74 62 6c 5b 30 5d 20 62 75  : fix vtbl[0] bu
67c0: 67 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f  g...extern(Windo
67d0: 77 73 29 20 3a 0d 0a 09 49 44 33 44 31 30 45 66  ws) :...ID3D10Ef
67e0: 66 65 63 74 54 79 70 65 20 47 65 74 54 79 70 65  fectType GetType
67f0: 28 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  ();...HRESULT Ge
6800: 74 44 65 73 63 28 44 33 44 31 30 5f 45 46 46 45  tDesc(D3D10_EFFE
6810: 43 54 5f 56 41 52 49 41 42 4c 45 5f 44 45 53 43  CT_VARIABLE_DESC
6820: 2a 20 70 44 65 73 63 29 3b 0d 0a 09 49 44 33 44  * pDesc);...ID3D
6830: 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65  10EffectVariable
6840: 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79   GetAnnotationBy
6850: 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78  Index(UINT Index
6860: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
6870: 74 56 61 72 69 61 62 6c 65 20 47 65 74 41 6e 6e  tVariable GetAnn
6880: 6f 74 61 74 69 6f 6e 42 79 4e 61 6d 65 28 4c 50  otationByName(LP
6890: 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44  CSTR Name);...ID
68a0: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
68b0: 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79 49 6e  le GetMemberByIn
68c0: 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29 3b  dex(UINT Index);
68d0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56  ...ID3D10EffectV
68e0: 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d 62 65  ariable GetMembe
68f0: 72 42 79 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e  rByName(LPCSTR N
6900: 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31 30 45 66  ame);...ID3D10Ef
6910: 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74  fectVariable Get
6920: 4d 65 6d 62 65 72 42 79 53 65 6d 61 6e 74 69 63  MemberBySemantic
6930: 28 4c 50 43 53 54 52 20 53 65 6d 61 6e 74 69 63  (LPCSTR Semantic
6940: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
6950: 74 56 61 72 69 61 62 6c 65 20 47 65 74 45 6c 65  tVariable GetEle
6960: 6d 65 6e 74 28 55 49 4e 54 20 49 6e 64 65 78 29  ment(UINT Index)
6970: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
6980: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20 47  ConstantBuffer G
6990: 65 74 50 61 72 65 6e 74 43 6f 6e 73 74 61 6e 74  etParentConstant
69a0: 42 75 66 66 65 72 28 29 3b 0d 0a 09 49 44 33 44  Buffer();...ID3D
69b0: 31 30 45 66 66 65 63 74 53 63 61 6c 61 72 56 61  10EffectScalarVa
69c0: 72 69 61 62 6c 65 20 41 73 53 63 61 6c 61 72 28  riable AsScalar(
69d0: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
69e0: 74 56 65 63 74 6f 72 56 61 72 69 61 62 6c 65 20  tVectorVariable 
69f0: 41 73 56 65 63 74 6f 72 28 29 3b 0d 0a 09 49 44  AsVector();...ID
6a00: 33 44 31 30 45 66 66 65 63 74 4d 61 74 72 69 78  3D10EffectMatrix
6a10: 56 61 72 69 61 62 6c 65 20 41 73 4d 61 74 72 69  Variable AsMatri
6a20: 78 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  x();...ID3D10Eff
6a30: 65 63 74 53 74 72 69 6e 67 56 61 72 69 61 62 6c  ectStringVariabl
6a40: 65 20 41 73 53 74 72 69 6e 67 28 29 3b 0d 0a 09  e AsString();...
6a50: 49 44 33 44 31 30 45 66 66 65 63 74 53 68 61 64  ID3D10EffectShad
6a60: 65 72 52 65 73 6f 75 72 63 65 56 61 72 69 61 62  erResourceVariab
6a70: 6c 65 20 41 73 53 68 61 64 65 72 52 65 73 6f 75  le AsShaderResou
6a80: 72 63 65 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  rce();...ID3D10E
6a90: 66 66 65 63 74 52 65 6e 64 65 72 54 61 72 67 65  ffectRenderTarge
6aa0: 74 56 69 65 77 56 61 72 69 61 62 6c 65 20 41 73  tViewVariable As
6ab0: 52 65 6e 64 65 72 54 61 72 67 65 74 56 69 65 77  RenderTargetView
6ac0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
6ad0: 63 74 44 65 70 74 68 53 74 65 6e 63 69 6c 56 69  ctDepthStencilVi
6ae0: 65 77 56 61 72 69 61 62 6c 65 20 41 73 44 65 70  ewVariable AsDep
6af0: 74 68 53 74 65 6e 63 69 6c 56 69 65 77 28 29 3b  thStencilView();
6b00: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 43  ...ID3D10EffectC
6b10: 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 20 41 73  onstantBuffer As
6b20: 43 6f 6e 73 74 61 6e 74 42 75 66 66 65 72 28 29  ConstantBuffer()
6b30: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
6b40: 53 68 61 64 65 72 56 61 72 69 61 62 6c 65 20 41  ShaderVariable A
6b50: 73 53 68 61 64 65 72 28 29 3b 0d 0a 09 49 44 33  sShader();...ID3
6b60: 44 31 30 45 66 66 65 63 74 42 6c 65 6e 64 56 61  D10EffectBlendVa
6b70: 72 69 61 62 6c 65 20 41 73 42 6c 65 6e 64 28 29  riable AsBlend()
6b80: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
6b90: 44 65 70 74 68 53 74 65 6e 63 69 6c 56 61 72 69  DepthStencilVari
6ba0: 61 62 6c 65 20 41 73 44 65 70 74 68 53 74 65 6e  able AsDepthSten
6bb0: 63 69 6c 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  cil();...ID3D10E
6bc0: 66 66 65 63 74 52 61 73 74 65 72 69 7a 65 72 56  ffectRasterizerV
6bd0: 61 72 69 61 62 6c 65 20 41 73 52 61 73 74 65 72  ariable AsRaster
6be0: 69 7a 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  izer();...ID3D10
6bf0: 45 66 66 65 63 74 53 61 6d 70 6c 65 72 56 61 72  EffectSamplerVar
6c00: 69 61 62 6c 65 20 41 73 53 61 6d 70 6c 65 72 28  iable AsSampler(
6c10: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 65 74  );...HRESULT Set
6c20: 52 61 77 56 61 6c 75 65 28 76 6f 69 64 2a 20 70  RawValue(void* p
6c30: 44 61 74 61 2c 20 55 49 4e 54 20 4f 66 66 73 65  Data, UINT Offse
6c40: 74 2c 20 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d  t, UINT Count);.
6c50: 0a 09 48 52 45 53 55 4c 54 20 47 65 74 52 61 77  ..HRESULT GetRaw
6c60: 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74  Value(void* pDat
6c70: 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  a, UINT Offset, 
6c80: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48  UINT Count);...H
6c90: 52 45 53 55 4c 54 20 47 65 74 52 61 73 74 65 72  RESULT GetRaster
6ca0: 69 7a 65 72 53 74 61 74 65 28 55 49 4e 54 20 49  izerState(UINT I
6cb0: 6e 64 65 78 2c 20 49 44 33 44 31 30 52 61 73 74  ndex, ID3D10Rast
6cc0: 65 72 69 7a 65 72 53 74 61 74 65 2a 20 70 70 52  erizerState* ppR
6cd0: 61 73 74 65 72 69 7a 65 72 53 74 61 74 65 29 3b  asterizerState);
6ce0: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 42 61  ...HRESULT GetBa
6cf0: 63 6b 69 6e 67 53 74 6f 72 65 28 55 49 4e 54 20  ckingStore(UINT 
6d00: 49 6e 64 65 78 2c 20 44 33 44 31 30 5f 52 41 53  Index, D3D10_RAS
6d10: 54 45 52 49 5a 45 52 5f 44 45 53 43 2a 20 70 52  TERIZER_DESC* pR
6d20: 61 73 74 65 72 69 7a 65 72 44 65 73 63 29 3b 0d  asterizerDesc);.
6d30: 0a 09 2a 2f 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72  ..*/..}....exter
6d40: 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49 44  n (C) const GUID
6d50: 20 49 49 44 5f 49 44 33 44 31 30 45 66 66 65 63   IID_ID3D10Effec
6d60: 74 53 61 6d 70 6c 65 72 56 61 72 69 61 62 6c 65  tSamplerVariable
6d70: 20 3d 20 7b 30 78 36 35 33 30 64 35 63 37 2c 20   = {0x6530d5c7, 
6d80: 30 78 30 37 65 39 2c 20 30 78 34 32 37 31 2c 20  0x07e9, 0x4271, 
6d90: 5b 30 78 61 34 2c 20 30 78 31 38 2c 20 30 78 65  [0xa4, 0x18, 0xe
6da0: 37 2c 20 30 78 63 65 2c 20 30 78 34 62 2c 20 30  7, 0xce, 0x4b, 0
6db0: 78 64 31 2c 20 30 78 65 34 2c 20 30 78 38 30 5d  xd1, 0xe4, 0x80]
6dc0: 7d 3b 0d 0a 0d 0a 69 6e 74 65 72 66 61 63 65 20  };....interface 
6dd0: 49 44 33 44 31 30 45 66 66 65 63 74 53 61 6d 70  ID3D10EffectSamp
6de0: 6c 65 72 56 61 72 69 61 62 6c 65 20 3a 20 49 44  lerVariable : ID
6df0: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
6e00: 6c 65 20 7b 0d 0a 2f 2a 20 54 4f 44 4f 3a 20 66  le {../* TODO: f
6e10: 69 78 20 76 74 62 6c 5b 30 5d 20 62 75 67 0d 0a  ix vtbl[0] bug..
6e20: 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
6e30: 20 3a 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63   :...ID3D10Effec
6e40: 74 54 79 70 65 20 47 65 74 54 79 70 65 28 29 3b  tType GetType();
6e50: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 44 65  ...HRESULT GetDe
6e60: 73 63 28 44 33 44 31 30 5f 45 46 46 45 43 54 5f  sc(D3D10_EFFECT_
6e70: 56 41 52 49 41 42 4c 45 5f 44 45 53 43 2a 20 70  VARIABLE_DESC* p
6e80: 44 65 73 63 29 3b 0d 0a 09 49 44 33 44 31 30 45  Desc);...ID3D10E
6e90: 66 66 65 63 74 56 61 72 69 61 62 6c 65 20 47 65  ffectVariable Ge
6ea0: 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 49 6e 64  tAnnotationByInd
6eb0: 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d  ex(UINT Index);.
6ec0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
6ed0: 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74 61  riable GetAnnota
6ee0: 74 69 6f 6e 42 79 4e 61 6d 65 28 4c 50 43 53 54  tionByName(LPCST
6ef0: 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31  R Name);...ID3D1
6f00: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
6f10: 47 65 74 4d 65 6d 62 65 72 42 79 49 6e 64 65 78  GetMemberByIndex
6f20: 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09  (UINT Index);...
6f30: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
6f40: 61 62 6c 65 20 47 65 74 4d 65 6d 62 65 72 42 79  able GetMemberBy
6f50: 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65  Name(LPCSTR Name
6f60: 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63  );...ID3D10Effec
6f70: 74 56 61 72 69 61 62 6c 65 20 47 65 74 4d 65 6d  tVariable GetMem
6f80: 62 65 72 42 79 53 65 6d 61 6e 74 69 63 28 4c 50  berBySemantic(LP
6f90: 43 53 54 52 20 53 65 6d 61 6e 74 69 63 29 3b 0d  CSTR Semantic);.
6fa0: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 61  ..ID3D10EffectVa
6fb0: 72 69 61 62 6c 65 20 47 65 74 45 6c 65 6d 65 6e  riable GetElemen
6fc0: 74 28 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a  t(UINT Index);..
6fd0: 09 49 44 33 44 31 30 45 66 66 65 63 74 43 6f 6e  .ID3D10EffectCon
6fe0: 73 74 61 6e 74 42 75 66 66 65 72 20 47 65 74 50  stantBuffer GetP
6ff0: 61 72 65 6e 74 43 6f 6e 73 74 61 6e 74 42 75 66  arentConstantBuf
7000: 66 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45  fer();...ID3D10E
7010: 66 66 65 63 74 53 63 61 6c 61 72 56 61 72 69 61  ffectScalarVaria
7020: 62 6c 65 20 41 73 53 63 61 6c 61 72 28 29 3b 0d  ble AsScalar();.
7030: 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56 65  ..ID3D10EffectVe
7040: 63 74 6f 72 56 61 72 69 61 62 6c 65 20 41 73 56  ctorVariable AsV
7050: 65 63 74 6f 72 28 29 3b 0d 0a 09 49 44 33 44 31  ector();...ID3D1
7060: 30 45 66 66 65 63 74 4d 61 74 72 69 78 56 61 72  0EffectMatrixVar
7070: 69 61 62 6c 65 20 41 73 4d 61 74 72 69 78 28 29  iable AsMatrix()
7080: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
7090: 53 74 72 69 6e 67 56 61 72 69 61 62 6c 65 20 41  StringVariable A
70a0: 73 53 74 72 69 6e 67 28 29 3b 0d 0a 09 49 44 33  sString();...ID3
70b0: 44 31 30 45 66 66 65 63 74 53 68 61 64 65 72 52  D10EffectShaderR
70c0: 65 73 6f 75 72 63 65 56 61 72 69 61 62 6c 65 20  esourceVariable 
70d0: 41 73 53 68 61 64 65 72 52 65 73 6f 75 72 63 65  AsShaderResource
70e0: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
70f0: 63 74 52 65 6e 64 65 72 54 61 72 67 65 74 56 69  ctRenderTargetVi
7100: 65 77 56 61 72 69 61 62 6c 65 20 41 73 52 65 6e  ewVariable AsRen
7110: 64 65 72 54 61 72 67 65 74 56 69 65 77 28 29 3b  derTargetView();
7120: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 44  ...ID3D10EffectD
7130: 65 70 74 68 53 74 65 6e 63 69 6c 56 69 65 77 56  epthStencilViewV
7140: 61 72 69 61 62 6c 65 20 41 73 44 65 70 74 68 53  ariable AsDepthS
7150: 74 65 6e 63 69 6c 56 69 65 77 28 29 3b 0d 0a 09  tencilView();...
7160: 49 44 33 44 31 30 45 66 66 65 63 74 43 6f 6e 73  ID3D10EffectCons
7170: 74 61 6e 74 42 75 66 66 65 72 20 41 73 43 6f 6e  tantBuffer AsCon
7180: 73 74 61 6e 74 42 75 66 66 65 72 28 29 3b 0d 0a  stantBuffer();..
7190: 09 49 44 33 44 31 30 45 66 66 65 63 74 53 68 61  .ID3D10EffectSha
71a0: 64 65 72 56 61 72 69 61 62 6c 65 20 41 73 53 68  derVariable AsSh
71b0: 61 64 65 72 28 29 3b 0d 0a 09 49 44 33 44 31 30  ader();...ID3D10
71c0: 45 66 66 65 63 74 42 6c 65 6e 64 56 61 72 69 61  EffectBlendVaria
71d0: 62 6c 65 20 41 73 42 6c 65 6e 64 28 29 3b 0d 0a  ble AsBlend();..
71e0: 09 49 44 33 44 31 30 45 66 66 65 63 74 44 65 70  .ID3D10EffectDep
71f0: 74 68 53 74 65 6e 63 69 6c 56 61 72 69 61 62 6c  thStencilVariabl
7200: 65 20 41 73 44 65 70 74 68 53 74 65 6e 63 69 6c  e AsDepthStencil
7210: 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65  ();...ID3D10Effe
7220: 63 74 52 61 73 74 65 72 69 7a 65 72 56 61 72 69  ctRasterizerVari
7230: 61 62 6c 65 20 41 73 52 61 73 74 65 72 69 7a 65  able AsRasterize
7240: 72 28 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  r();...ID3D10Eff
7250: 65 63 74 53 61 6d 70 6c 65 72 56 61 72 69 61 62  ectSamplerVariab
7260: 6c 65 20 41 73 53 61 6d 70 6c 65 72 28 29 3b 0d  le AsSampler();.
7270: 0a 09 48 52 45 53 55 4c 54 20 53 65 74 52 61 77  ..HRESULT SetRaw
7280: 56 61 6c 75 65 28 76 6f 69 64 2a 20 70 44 61 74  Value(void* pDat
7290: 61 2c 20 55 49 4e 54 20 4f 66 66 73 65 74 2c 20  a, UINT Offset, 
72a0: 55 49 4e 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48  UINT Count);...H
72b0: 52 45 53 55 4c 54 20 47 65 74 52 61 77 56 61 6c  RESULT GetRawVal
72c0: 75 65 28 76 6f 69 64 2a 20 70 44 61 74 61 2c 20  ue(void* pData, 
72d0: 55 49 4e 54 20 4f 66 66 73 65 74 2c 20 55 49 4e  UINT Offset, UIN
72e0: 54 20 43 6f 75 6e 74 29 3b 0d 0a 09 48 52 45 53  T Count);...HRES
72f0: 55 4c 54 20 47 65 74 53 61 6d 70 6c 65 72 28 55  ULT GetSampler(U
7300: 49 4e 54 20 49 6e 64 65 78 2c 20 49 44 33 44 31  INT Index, ID3D1
7310: 30 53 61 6d 70 6c 65 72 53 74 61 74 65 2a 20 70  0SamplerState* p
7320: 70 53 61 6d 70 6c 65 72 29 3b 0d 0a 09 48 52 45  pSampler);...HRE
7330: 53 55 4c 54 20 47 65 74 42 61 63 6b 69 6e 67 53  SULT GetBackingS
7340: 74 6f 72 65 28 55 49 4e 54 20 49 6e 64 65 78 2c  tore(UINT Index,
7350: 20 44 33 44 31 30 5f 53 41 4d 50 4c 45 52 5f 44   D3D10_SAMPLER_D
7360: 45 53 43 2a 20 70 53 61 6d 70 6c 65 72 44 65 73  ESC* pSamplerDes
7370: 63 29 3b 0d 0a 09 2a 2f 0d 0a 7d 0d 0a 0d 0a 73  c);...*/..}....s
7380: 74 72 75 63 74 20 44 33 44 31 30 5f 50 41 53 53  truct D3D10_PASS
7390: 5f 44 45 53 43 20 7b 0d 0a 09 4c 50 43 53 54 52  _DESC {...LPCSTR
73a0: 09 09 4e 61 6d 65 3b 0d 0a 09 55 49 4e 54 09 09  ..Name;...UINT..
73b0: 41 6e 6e 6f 74 61 74 69 6f 6e 73 3b 0d 0a 09 42  Annotations;...B
73c0: 59 54 45 2a 09 09 70 49 41 49 6e 70 75 74 53 69  YTE*..pIAInputSi
73d0: 67 6e 61 74 75 72 65 3b 0d 0a 09 53 49 5a 45 5f  gnature;...SIZE_
73e0: 54 09 09 49 41 49 6e 70 75 74 53 69 67 6e 61 74  T..IAInputSignat
73f0: 75 72 65 53 69 7a 65 3b 0d 0a 09 55 49 4e 54 09  ureSize;...UINT.
7400: 09 53 74 65 6e 63 69 6c 52 65 66 3b 0d 0a 09 55  .StencilRef;...U
7410: 49 4e 54 09 09 53 61 6d 70 6c 65 4d 61 73 6b 3b  INT..SampleMask;
7420: 0d 0a 09 46 4c 4f 41 54 5b 34 5d 09 42 6c 65 6e  ...FLOAT[4].Blen
7430: 64 46 61 63 74 6f 72 3b 0d 0a 7d 0d 0a 0d 0a 73  dFactor;..}....s
7440: 74 72 75 63 74 20 44 33 44 31 30 5f 50 41 53 53  truct D3D10_PASS
7450: 5f 53 48 41 44 45 52 5f 44 45 53 43 20 7b 0d 0a  _SHADER_DESC {..
7460: 09 49 44 33 44 31 30 45 66 66 65 63 74 53 68 61  .ID3D10EffectSha
7470: 64 65 72 56 61 72 69 61 62 6c 65 09 70 53 68 61  derVariable.pSha
7480: 64 65 72 56 61 72 69 61 62 6c 65 3b 0d 0a 09 55  derVariable;...U
7490: 49 4e 54 09 09 09 09 09 09 53 68 61 64 65 72 49  INT......ShaderI
74a0: 6e 64 65 78 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65  ndex;..}....exte
74b0: 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49  rn (C) const GUI
74c0: 44 20 49 49 44 5f 49 44 33 44 31 30 45 66 66 65  D IID_ID3D10Effe
74d0: 63 74 50 61 73 73 20 3d 20 7b 30 78 35 63 66 62  ctPass = {0x5cfb
74e0: 65 62 38 39 2c 20 30 78 31 61 30 36 2c 20 30 78  eb89, 0x1a06, 0x
74f0: 34 36 65 30 2c 20 5b 30 78 62 32 2c 20 30 78 38  46e0, [0xb2, 0x8
7500: 32 2c 20 30 78 65 33 2c 20 30 78 66 39 2c 20 30  2, 0xe3, 0xf9, 0
7510: 78 62 66 2c 20 30 78 61 33 2c 20 30 78 36 61 2c  xbf, 0xa3, 0x6a,
7520: 20 30 78 35 34 5d 7d 3b 0d 0a 0d 0a 2f 2b 69 6e   0x54]};..../+in
7530: 74 65 72 66 61 63 65 20 49 44 33 44 31 30 45 66  terface ID3D10Ef
7540: 66 65 63 74 50 61 73 73 20 7b 0d 0a 2f 2a 20 54  fectPass {../* T
7550: 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c 5b 30 5d  ODO: fix vtbl[0]
7560: 20 62 75 67 0d 0a 09 65 78 74 65 72 6e 28 57 69   bug...extern(Wi
7570: 6e 64 6f 77 73 29 20 3a 0d 0a 09 42 4f 4f 4c 20  ndows) :...BOOL 
7580: 49 73 56 61 6c 69 64 28 29 3b 0d 0a 09 48 52 45  IsValid();...HRE
7590: 53 55 4c 54 20 47 65 74 44 65 73 63 28 44 33 44  SULT GetDesc(D3D
75a0: 31 30 5f 50 41 53 53 5f 44 45 53 43 2a 20 70 44  10_PASS_DESC* pD
75b0: 65 73 63 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20  esc);...HRESULT 
75c0: 47 65 74 56 65 72 74 65 78 53 68 61 64 65 72 44  GetVertexShaderD
75d0: 65 73 63 28 44 33 44 31 30 5f 50 41 53 53 5f 53  esc(D3D10_PASS_S
75e0: 48 41 44 45 52 5f 44 45 53 43 2a 20 70 44 65 73  HADER_DESC* pDes
75f0: 63 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  c);...HRESULT Ge
7600: 74 47 65 6f 6d 65 74 72 79 53 68 61 64 65 72 44  tGeometryShaderD
7610: 65 73 63 28 44 33 44 31 30 5f 50 41 53 53 5f 53  esc(D3D10_PASS_S
7620: 48 41 44 45 52 5f 44 45 53 43 2a 20 70 44 65 73  HADER_DESC* pDes
7630: 63 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 47 65  c);...HRESULT Ge
7640: 74 50 69 78 65 6c 53 68 61 64 65 72 44 65 73 63  tPixelShaderDesc
7650: 28 44 33 44 31 30 5f 50 41 53 53 5f 53 48 41 44  (D3D10_PASS_SHAD
7660: 45 52 5f 44 45 53 43 2a 20 70 44 65 73 63 29 3b  ER_DESC* pDesc);
7670: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 56  ...ID3D10EffectV
7680: 61 72 69 61 62 6c 65 20 47 65 74 41 6e 6e 6f 74  ariable GetAnnot
7690: 61 74 69 6f 6e 42 79 49 6e 64 65 78 28 55 49 4e  ationByIndex(UIN
76a0: 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44  T Index);...ID3D
76b0: 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65  10EffectVariable
76c0: 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79   GetAnnotationBy
76d0: 4e 61 6d 65 28 4c 50 43 53 54 52 20 4e 61 6d 65  Name(LPCSTR Name
76e0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 41 70 70  );...HRESULT App
76f0: 6c 79 28 55 49 4e 54 20 46 6c 61 67 73 29 3b 0d  ly(UINT Flags);.
7700: 0a 09 48 52 45 53 55 4c 54 20 43 6f 6d 70 75 74  ..HRESULT Comput
7710: 65 53 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 28  eStateBlockMask(
7720: 44 33 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43  D3D10_STATE_BLOC
7730: 4b 5f 4d 41 53 4b 2a 20 70 53 74 61 74 65 42 6c  K_MASK* pStateBl
7740: 6f 63 6b 4d 61 73 6b 29 3b 0d 0a 09 2a 2f 0d 0a  ockMask);...*/..
7750: 7d 2b 2f 0d 0a 2f 2a 2a 0d 0a 20 2a 20 48 41 43  }+/../**.. * HAC
7760: 4b 20 74 6f 20 46 49 58 20 76 74 62 6c 5b 30 5d  K to FIX vtbl[0]
7770: 20 62 75 67 3a 0d 0a 20 2a 20 54 68 69 73 20 69   bug:.. * This i
7780: 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 48 41 43  s an example HAC
7790: 4b 20 68 6f 77 20 74 6f 20 66 69 78 20 61 6c 6c  K how to fix all
77a0: 20 69 6e 74 65 72 66 61 63 65 73 20 77 68 69 63   interfaces whic
77b0: 68 20 61 72 65 20 4e 4f 54 20 64 65 72 69 76 65  h are NOT derive
77c0: 64 20 66 72 6f 6d 0d 0a 20 2a 20 49 55 6e 6b 6e  d from.. * IUnkn
77d0: 6f 77 6e 2e 20 54 68 65 79 20 6e 65 65 64 20 74  own. They need t
77e0: 68 65 20 66 69 72 73 74 20 65 6e 74 72 79 20 69  he first entry i
77f0: 6e 20 74 68 65 69 72 20 76 74 62 6c 5b 5d 20 70  n their vtbl[] p
7800: 6f 69 6e 74 20 74 6f 20 74 68 65 20 66 69 72 73  oint to the firs
7810: 74 0d 0a 20 2a 20 76 69 72 74 75 61 6c 20 66 75  t.. * virtual fu
7820: 6e 63 74 69 6f 6e 2e 0d 0a 20 2a 20 53 65 65 3a  nction... * See:
7830: 0d 0a 20 2a 20 68 74 74 70 3a 2f 2f 77 77 77 2e  .. * http://www.
7840: 64 69 67 69 74 61 6c 6d 61 72 73 2e 63 6f 6d 2f  digitalmars.com/
7850: 64 2f 63 70 70 5f 69 6e 74 65 72 66 61 63 65 2e  d/cpp_interface.
7860: 68 74 6d 6c 0d 0a 20 2a 20 68 74 74 70 3a 2f 2f  html.. * http://
7870: 64 2e 70 75 72 65 6d 61 67 69 63 2e 63 6f 6d 2f  d.puremagic.com/
7880: 69 73 73 75 65 73 2f 73 68 6f 77 5f 62 75 67 2e  issues/show_bug.
7890: 63 67 69 3f 69 64 3d 31 36 38 37 0d 0a 20 2a 2f  cgi?id=1687.. */
78a0: 0d 0a 73 74 72 75 63 74 20 49 44 33 44 31 30 45  ..struct ID3D10E
78b0: 66 66 65 63 74 50 61 73 73 56 74 62 6c 20 7b 20  ffectPassVtbl { 
78c0: 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
78d0: 73 29 20 3a 0d 0a 09 42 4f 4f 4c 20 66 75 6e 63  s) :...BOOL func
78e0: 74 69 6f 6e 28 49 44 33 44 31 30 45 66 66 65 63  tion(ID3D10Effec
78f0: 74 50 61 73 73 29 20 49 73 56 61 6c 69 64 3b 0d  tPass) IsValid;.
7900: 0a 09 48 52 45 53 55 4c 54 20 66 75 6e 63 74 69  ..HRESULT functi
7910: 6f 6e 28 49 44 33 44 31 30 45 66 66 65 63 74 50  on(ID3D10EffectP
7920: 61 73 73 2c 20 44 33 44 31 30 5f 50 41 53 53 5f  ass, D3D10_PASS_
7930: 44 45 53 43 2a 20 70 44 65 73 63 29 20 47 65 74  DESC* pDesc) Get
7940: 44 65 73 63 3b 0d 0a 09 48 52 45 53 55 4c 54 20  Desc;...HRESULT 
7950: 66 75 6e 63 74 69 6f 6e 28 49 44 33 44 31 30 45  function(ID3D10E
7960: 66 66 65 63 74 50 61 73 73 2c 20 44 33 44 31 30  ffectPass, D3D10
7970: 5f 50 41 53 53 5f 53 48 41 44 45 52 5f 44 45 53  _PASS_SHADER_DES
7980: 43 2a 20 70 44 65 73 63 29 20 47 65 74 56 65 72  C* pDesc) GetVer
7990: 74 65 78 53 68 61 64 65 72 44 65 73 63 3b 0d 0a  texShaderDesc;..
79a0: 09 48 52 45 53 55 4c 54 20 66 75 6e 63 74 69 6f  .HRESULT functio
79b0: 6e 28 49 44 33 44 31 30 45 66 66 65 63 74 50 61  n(ID3D10EffectPa
79c0: 73 73 2c 20 44 33 44 31 30 5f 50 41 53 53 5f 53  ss, D3D10_PASS_S
79d0: 48 41 44 45 52 5f 44 45 53 43 2a 20 70 44 65 73  HADER_DESC* pDes
79e0: 63 29 20 47 65 74 47 65 6f 6d 65 74 72 79 53 68  c) GetGeometrySh
79f0: 61 64 65 72 44 65 73 63 3b 0d 0a 09 48 52 45 53  aderDesc;...HRES
7a00: 55 4c 54 20 66 75 6e 63 74 69 6f 6e 28 49 44 33  ULT function(ID3
7a10: 44 31 30 45 66 66 65 63 74 50 61 73 73 2c 20 44  D10EffectPass, D
7a20: 33 44 31 30 5f 50 41 53 53 5f 53 48 41 44 45 52  3D10_PASS_SHADER
7a30: 5f 44 45 53 43 2a 20 70 44 65 73 63 29 20 47 65  _DESC* pDesc) Ge
7a40: 74 50 69 78 65 6c 53 68 61 64 65 72 44 65 73 63  tPixelShaderDesc
7a50: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
7a60: 56 61 72 69 61 62 6c 65 20 66 75 6e 63 74 69 6f  Variable functio
7a70: 6e 28 49 44 33 44 31 30 45 66 66 65 63 74 50 61  n(ID3D10EffectPa
7a80: 73 73 2c 20 55 49 4e 54 20 49 6e 64 65 78 29 20  ss, UINT Index) 
7a90: 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42 79 49  GetAnnotationByI
7aa0: 6e 64 65 78 3b 0d 0a 09 49 44 33 44 31 30 45 66  ndex;...ID3D10Ef
7ab0: 66 65 63 74 56 61 72 69 61 62 6c 65 20 66 75 6e  fectVariable fun
7ac0: 63 74 69 6f 6e 28 49 44 33 44 31 30 45 66 66 65  ction(ID3D10Effe
7ad0: 63 74 50 61 73 73 2c 20 4c 50 43 53 54 52 20 4e  ctPass, LPCSTR N
7ae0: 61 6d 65 29 20 47 65 74 41 6e 6e 6f 74 61 74 69  ame) GetAnnotati
7af0: 6f 6e 42 79 4e 61 6d 65 3b 0d 0a 09 48 52 45 53  onByName;...HRES
7b00: 55 4c 54 20 66 75 6e 63 74 69 6f 6e 28 49 44 33  ULT function(ID3
7b10: 44 31 30 45 66 66 65 63 74 50 61 73 73 2c 20 55  D10EffectPass, U
7b20: 49 4e 54 20 46 6c 61 67 73 29 20 41 70 70 6c 79  INT Flags) Apply
7b30: 3b 0d 0a 09 48 52 45 53 55 4c 54 20 66 75 6e 63  ;...HRESULT func
7b40: 74 69 6f 6e 28 49 44 33 44 31 30 45 66 66 65 63  tion(ID3D10Effec
7b50: 74 50 61 73 73 2c 20 44 33 44 31 30 5f 53 54 41  tPass, D3D10_STA
7b60: 54 45 5f 42 4c 4f 43 4b 5f 4d 41 53 4b 2a 20 70  TE_BLOCK_MASK* p
7b70: 53 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 29 20  StateBlockMask) 
7b80: 43 6f 6d 70 75 74 65 53 74 61 74 65 42 6c 6f 63  ComputeStateBloc
7b90: 6b 4d 61 73 6b 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  kMask;..}..alias
7ba0: 20 49 44 33 44 31 30 45 66 66 65 63 74 50 61 73   ID3D10EffectPas
7bb0: 73 56 74 62 6c 2a 2a 20 49 44 33 44 31 30 45 66  sVtbl** ID3D10Ef
7bc0: 66 65 63 74 50 61 73 73 3b 0d 0a 0d 0a 73 74 72  fectPass;....str
7bd0: 75 63 74 20 44 33 44 31 30 5f 54 45 43 48 4e 49  uct D3D10_TECHNI
7be0: 51 55 45 5f 44 45 53 43 20 7b 0d 0a 09 4c 50 43  QUE_DESC {...LPC
7bf0: 53 54 52 09 4e 61 6d 65 3b 0d 0a 09 55 49 4e 54  STR.Name;...UINT
7c00: 09 50 61 73 73 65 73 3b 0d 0a 09 55 49 4e 54 09  .Passes;...UINT.
7c10: 41 6e 6e 6f 74 61 74 69 6f 6e 73 3b 0d 0a 7d 0d  Annotations;..}.
7c20: 0a 0d 0a 65 78 74 65 72 6e 20 28 43 29 20 63 6f  ...extern (C) co
7c30: 6e 73 74 20 47 55 49 44 20 49 49 44 5f 49 44 33  nst GUID IID_ID3
7c40: 44 31 30 45 66 66 65 63 74 54 65 63 68 6e 69 71  D10EffectTechniq
7c50: 75 65 20 3d 20 7b 30 78 64 62 31 32 32 63 65 38  ue = {0xdb122ce8
7c60: 2c 20 30 78 64 31 63 39 2c 20 30 78 34 32 39 32  , 0xd1c9, 0x4292
7c70: 2c 20 5b 30 78 62 32 2c 20 30 78 33 37 2c 20 30  , [0xb2, 0x37, 0
7c80: 78 32 34 2c 20 30 78 65 64 2c 20 30 78 33 64 2c  x24, 0xed, 0x3d,
7c90: 20 30 78 65 38 2c 20 30 78 62 31 2c 20 30 78 37   0xe8, 0xb1, 0x7
7ca0: 35 5d 7d 3b 0d 0a 0d 0a 2f 2b 69 6e 74 65 72 66  5]};..../+interf
7cb0: 61 63 65 20 49 44 33 44 31 30 45 66 66 65 63 74  ace ID3D10Effect
7cc0: 54 65 63 68 6e 69 71 75 65 20 7b 0d 0a 2f 2a 20  Technique {../* 
7cd0: 54 4f 44 4f 3a 20 66 69 78 20 76 74 62 6c 5b 30  TODO: fix vtbl[0
7ce0: 5d 20 62 75 67 0d 0a 09 65 78 74 65 72 6e 28 57  ] bug...extern(W
7cf0: 69 6e 64 6f 77 73 29 20 3a 0d 0a 09 42 4f 4f 4c  indows) :...BOOL
7d00: 20 49 73 56 61 6c 69 64 28 29 3b 0d 0a 09 48 52   IsValid();...HR
7d10: 45 53 55 4c 54 20 47 65 74 44 65 73 63 28 44 33  ESULT GetDesc(D3
7d20: 44 31 30 5f 54 45 43 48 4e 49 51 55 45 5f 44 45  D10_TECHNIQUE_DE
7d30: 53 43 2a 20 70 44 65 73 63 29 3b 0d 0a 09 49 44  SC* pDesc);...ID
7d40: 33 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62  3D10EffectVariab
7d50: 6c 65 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e  le GetAnnotation
7d60: 42 79 49 6e 64 65 78 28 55 49 4e 54 20 49 6e 64  ByIndex(UINT Ind
7d70: 65 78 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  ex);...ID3D10Eff
7d80: 65 63 74 56 61 72 69 61 62 6c 65 20 47 65 74 41  ectVariable GetA
7d90: 6e 6e 6f 74 61 74 69 6f 6e 42 79 4e 61 6d 65 28  nnotationByName(
7da0: 4c 50 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09  LPCSTR Name);...
7db0: 49 44 33 44 31 30 45 66 66 65 63 74 50 61 73 73  ID3D10EffectPass
7dc0: 20 47 65 74 50 61 73 73 42 79 49 6e 64 65 78 28   GetPassByIndex(
7dd0: 55 49 4e 54 20 49 6e 64 65 78 29 3b 0d 0a 09 49  UINT Index);...I
7de0: 44 33 44 31 30 45 66 66 65 63 74 50 61 73 73 20  D3D10EffectPass 
7df0: 47 65 74 50 61 73 73 42 79 4e 61 6d 65 28 4c 50  GetPassByName(LP
7e00: 43 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 48 52  CSTR Name);...HR
7e10: 45 53 55 4c 54 20 43 6f 6d 70 75 74 65 53 74 61  ESULT ComputeSta
7e20: 74 65 42 6c 6f 63 6b 4d 61 73 6b 28 44 33 44 31  teBlockMask(D3D1
7e30: 30 5f 53 54 41 54 45 5f 42 4c 4f 43 4b 5f 4d 41  0_STATE_BLOCK_MA
7e40: 53 4b 2a 20 70 53 74 61 74 65 42 6c 6f 63 6b 4d  SK* pStateBlockM
7e50: 61 73 6b 29 3b 0d 0a 09 2a 2f 0d 0a 7d 2b 2f 0d  ask);...*/..}+/.
7e60: 0a 2f 2a 2a 0d 0a 20 2a 20 48 41 43 4b 20 74 6f  ./**.. * HACK to
7e70: 20 46 49 58 20 76 74 62 6c 5b 30 5d 20 62 75 67   FIX vtbl[0] bug
7e80: 3a 0d 0a 20 2a 20 54 68 69 73 20 69 73 20 61 6e  :.. * This is an
7e90: 20 65 78 61 6d 70 6c 65 20 48 41 43 4b 20 68 6f   example HACK ho
7ea0: 77 20 74 6f 20 66 69 78 20 61 6c 6c 20 69 6e 74  w to fix all int
7eb0: 65 72 66 61 63 65 73 20 77 68 69 63 68 20 61 72  erfaces which ar
7ec0: 65 20 4e 4f 54 20 64 65 72 69 76 65 64 20 66 72  e NOT derived fr
7ed0: 6f 6d 0d 0a 20 2a 20 49 55 6e 6b 6e 6f 77 6e 2e  om.. * IUnknown.
7ee0: 20 54 68 65 79 20 6e 65 65 64 20 74 68 65 20 66   They need the f
7ef0: 69 72 73 74 20 65 6e 74 72 79 20 69 6e 20 74 68  irst entry in th
7f00: 65 69 72 20 76 74 62 6c 5b 5d 20 70 6f 69 6e 74  eir vtbl[] point
7f10: 20 74 6f 20 74 68 65 20 66 69 72 73 74 0d 0a 20   to the first.. 
7f20: 2a 20 76 69 72 74 75 61 6c 20 66 75 6e 63 74 69  * virtual functi
7f30: 6f 6e 2e 0d 0a 20 2a 20 53 65 65 3a 0d 0a 20 2a  on... * See:.. *
7f40: 20 68 74 74 70 3a 2f 2f 77 77 77 2e 64 69 67 69   http://www.digi
7f50: 74 61 6c 6d 61 72 73 2e 63 6f 6d 2f 64 2f 63 70  talmars.com/d/cp
7f60: 70 5f 69 6e 74 65 72 66 61 63 65 2e 68 74 6d 6c  p_interface.html
7f70: 0d 0a 20 2a 20 68 74 74 70 3a 2f 2f 64 2e 70 75  .. * http://d.pu
7f80: 72 65 6d 61 67 69 63 2e 63 6f 6d 2f 69 73 73 75  remagic.com/issu
7f90: 65 73 2f 73 68 6f 77 5f 62 75 67 2e 63 67 69 3f  es/show_bug.cgi?
7fa0: 69 64 3d 31 36 38 37 0d 0a 20 2a 2f 0d 0a 73 74  id=1687.. */..st
7fb0: 72 75 63 74 20 49 44 33 44 31 30 45 66 66 65 63  ruct ID3D10Effec
7fc0: 74 54 65 63 68 6e 69 71 75 65 56 74 62 6c 20 7b  tTechniqueVtbl {
7fd0: 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
7fe0: 73 29 20 3a 0d 0a 09 42 4f 4f 4c 20 66 75 6e 63  s) :...BOOL func
7ff0: 74 69 6f 6e 28 49 44 33 44 31 30 45 66 66 65 63  tion(ID3D10Effec
8000: 74 54 65 63 68 6e 69 71 75 65 29 20 49 73 56 61  tTechnique) IsVa
8010: 6c 69 64 3b 0d 0a 09 48 52 45 53 55 4c 54 20 66  lid;...HRESULT f
8020: 75 6e 63 74 69 6f 6e 28 49 44 33 44 31 30 45 66  unction(ID3D10Ef
8030: 66 65 63 74 54 65 63 68 6e 69 71 75 65 2c 20 44  fectTechnique, D
8040: 33 44 31 30 5f 54 45 43 48 4e 49 51 55 45 5f 44  3D10_TECHNIQUE_D
8050: 45 53 43 2a 20 70 44 65 73 63 29 20 47 65 74 44  ESC* pDesc) GetD
8060: 65 73 63 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  esc;...ID3D10Eff
8070: 65 63 74 56 61 72 69 61 62 6c 65 20 66 75 6e 63  ectVariable func
8080: 74 69 6f 6e 28 49 44 33 44 31 30 45 66 66 65 63  tion(ID3D10Effec
8090: 74 54 65 63 68 6e 69 71 75 65 2c 20 55 49 4e 54  tTechnique, UINT
80a0: 20 49 6e 64 65 78 29 20 47 65 74 41 6e 6e 6f 74   Index) GetAnnot
80b0: 61 74 69 6f 6e 42 79 49 6e 64 65 78 3b 0d 0a 09  ationByIndex;...
80c0: 49 44 33 44 31 30 45 66 66 65 63 74 56 61 72 69  ID3D10EffectVari
80d0: 61 62 6c 65 20 66 75 6e 63 74 69 6f 6e 28 49 44  able function(ID
80e0: 33 44 31 30 45 66 66 65 63 74 54 65 63 68 6e 69  3D10EffectTechni
80f0: 71 75 65 2c 20 4c 50 43 53 54 52 20 4e 61 6d 65  que, LPCSTR Name
8100: 29 20 47 65 74 41 6e 6e 6f 74 61 74 69 6f 6e 42  ) GetAnnotationB
8110: 79 4e 61 6d 65 3b 0d 0a 09 49 44 33 44 31 30 45  yName;...ID3D10E
8120: 66 66 65 63 74 50 61 73 73 20 66 75 6e 63 74 69  ffectPass functi
8130: 6f 6e 28 49 44 33 44 31 30 45 66 66 65 63 74 54  on(ID3D10EffectT
8140: 65 63 68 6e 69 71 75 65 2c 20 55 49 4e 54 20 49  echnique, UINT I
8150: 6e 64 65 78 29 20 47 65 74 50 61 73 73 42 79 49  ndex) GetPassByI
8160: 6e 64 65 78 3b 0d 0a 09 49 44 33 44 31 30 45 66  ndex;...ID3D10Ef
8170: 66 65 63 74 50 61 73 73 20 66 75 6e 63 74 69 6f  fectPass functio
8180: 6e 28 49 44 33 44 31 30 45 66 66 65 63 74 54 65  n(ID3D10EffectTe
8190: 63 68 6e 69 71 75 65 2c 20 4c 50 43 53 54 52 20  chnique, LPCSTR 
81a0: 4e 61 6d 65 29 20 47 65 74 50 61 73 73 42 79 4e  Name) GetPassByN
81b0: 61 6d 65 3b 0d 0a 09 48 52 45 53 55 4c 54 20 66  ame;...HRESULT f
81c0: 75 6e 63 74 69 6f 6e 28 49 44 33 44 31 30 45 66  unction(ID3D10Ef
81d0: 66 65 63 74 54 65 63 68 6e 69 71 75 65 2c 20 44  fectTechnique, D
81e0: 33 44 31 30 5f 53 54 41 54 45 5f 42 4c 4f 43 4b  3D10_STATE_BLOCK
81f0: 5f 4d 41 53 4b 2a 20 70 53 74 61 74 65 42 6c 6f  _MASK* pStateBlo
8200: 63 6b 4d 61 73 6b 29 20 43 6f 6d 70 75 74 65 53  ckMask) ComputeS
8210: 74 61 74 65 42 6c 6f 63 6b 4d 61 73 6b 3b 0d 0a  tateBlockMask;..
8220: 7d 0d 0a 61 6c 69 61 73 20 49 44 33 44 31 30 45  }..alias ID3D10E
8230: 66 66 65 63 74 54 65 63 68 6e 69 71 75 65 56 74  ffectTechniqueVt
8240: 62 6c 2a 2a 20 49 44 33 44 31 30 45 66 66 65 63  bl** ID3D10Effec
8250: 74 54 65 63 68 6e 69 71 75 65 3b 0d 0a 0d 0a 73  tTechnique;....s
8260: 74 72 75 63 74 20 44 33 44 31 30 5f 45 46 46 45  truct D3D10_EFFE
8270: 43 54 5f 44 45 53 43 20 7b 0d 0a 09 42 4f 4f 4c  CT_DESC {...BOOL
8280: 09 49 73 43 68 69 6c 64 45 66 66 65 63 74 3b 0d  .IsChildEffect;.
8290: 0a 09 55 49 4e 54 09 43 6f 6e 73 74 61 6e 74 42  ..UINT.ConstantB
82a0: 75 66 66 65 72 73 3b 0d 0a 09 55 49 4e 54 09 53  uffers;...UINT.S
82b0: 68 61 72 65 64 43 6f 6e 73 74 61 6e 74 42 75 66  haredConstantBuf
82c0: 66 65 72 73 3b 0d 0a 09 55 49 4e 54 09 47 6c 6f  fers;...UINT.Glo
82d0: 62 61 6c 56 61 72 69 61 62 6c 65 73 3b 0d 0a 09  balVariables;...
82e0: 55 49 4e 54 09 53 68 61 72 65 64 47 6c 6f 62 61  UINT.SharedGloba
82f0: 6c 56 61 72 69 61 62 6c 65 73 3b 0d 0a 09 55 49  lVariables;...UI
8300: 4e 54 09 54 65 63 68 6e 69 71 75 65 73 3b 0d 0a  NT.Techniques;..
8310: 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 43 29 20  }....extern (C) 
8320: 63 6f 6e 73 74 20 47 55 49 44 20 49 49 44 5f 49  const GUID IID_I
8330: 44 33 44 31 30 45 66 66 65 63 74 20 3d 20 7b 30  D3D10Effect = {0
8340: 78 35 31 62 30 63 61 38 62 2c 20 30 78 65 63 30  x51b0ca8b, 0xec0
8350: 62 2c 20 30 78 34 35 31 39 2c 20 5b 30 78 38 37  b, 0x4519, [0x87
8360: 2c 20 30 78 64 2c 20 30 78 38 65 2c 20 30 78 65  , 0xd, 0x8e, 0xe
8370: 31 2c 20 30 78 63 62 2c 20 30 78 35 30 2c 20 30  1, 0xcb, 0x50, 0
8380: 78 31 37 2c 20 30 78 63 37 5d 7d 3b 0d 0a 0d 0a  x17, 0xc7]};....
8390: 69 6e 74 65 72 66 61 63 65 20 49 44 33 44 31 30  interface ID3D10
83a0: 45 66 66 65 63 74 20 3a 20 49 55 6e 6b 6e 6f 77  Effect : IUnknow
83b0: 6e 20 7b 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e  n {...extern(Win
83c0: 64 6f 77 73 29 20 3a 0d 0a 09 42 4f 4f 4c 20 49  dows) :...BOOL I
83d0: 73 56 61 6c 69 64 28 29 3b 0d 0a 09 42 4f 4f 4c  sValid();...BOOL
83e0: 20 49 73 50 6f 6f 6c 28 29 3b 0d 0a 09 48 52 45   IsPool();...HRE
83f0: 53 55 4c 54 20 47 65 74 44 65 76 69 63 65 28 49  SULT GetDevice(I
8400: 44 33 44 31 30 44 65 76 69 63 65 2a 20 70 70 44  D3D10Device* ppD
8410: 65 76 69 63 65 29 3b 0d 0a 09 48 52 45 53 55 4c  evice);...HRESUL
8420: 54 20 47 65 74 44 65 73 63 28 44 33 44 31 30 5f  T GetDesc(D3D10_
8430: 45 46 46 45 43 54 5f 44 45 53 43 2a 20 70 44 65  EFFECT_DESC* pDe
8440: 73 63 29 3b 0d 0a 09 49 44 33 44 31 30 45 66 66  sc);...ID3D10Eff
8450: 65 63 74 43 6f 6e 73 74 61 6e 74 42 75 66 66 65  ectConstantBuffe
8460: 72 20 47 65 74 43 6f 6e 73 74 61 6e 74 42 75 66  r GetConstantBuf
8470: 66 65 72 42 79 49 6e 64 65 78 28 55 49 4e 54 20  ferByIndex(UINT 
8480: 49 6e 64 65 78 29 3b 0d 0a 09 49 44 33 44 31 30  Index);...ID3D10
8490: 45 66 66 65 63 74 43 6f 6e 73 74 61 6e 74 42 75  EffectConstantBu
84a0: 66 66 65 72 20 47 65 74 43 6f 6e 73 74 61 6e 74  ffer GetConstant
84b0: 42 75 66 66 65 72 42 79 4e 61 6d 65 28 4c 50 43  BufferByName(LPC
84c0: 53 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33  STR Name);...ID3
84d0: 44 31 30 45 66 66 65 63 74 56 61 72 69 61 62 6c  D10EffectVariabl
84e0: 65 20 47 65 74 56 61 72 69 61 62 6c 65 42 79 49  e GetVariableByI
84f0: 6e 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29  ndex(UINT Index)
8500: 3b 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74  ;...ID3D10Effect
8510: 56 61 72 69 61 62 6c 65 20 47 65 74 56 61 72 69  Variable GetVari
8520: 61 62 6c 65 42 79 4e 61 6d 65 28 4c 50 43 53 54  ableByName(LPCST
8530: 52 20 4e 61 6d 65 29 3b 0d 0a 09 49 44 33 44 31  R Name);...ID3D1
8540: 30 45 66 66 65 63 74 56 61 72 69 61 62 6c 65 20  0EffectVariable 
8550: 47 65 74 56 61 72 69 61 62 6c 65 42 79 53 65 6d  GetVariableBySem
8560: 61 6e 74 69 63 28 4c 50 43 53 54 52 20 53 65 6d  antic(LPCSTR Sem
8570: 61 6e 74 69 63 29 3b 0d 0a 09 49 44 33 44 31 30  antic);...ID3D10
8580: 45 66 66 65 63 74 54 65 63 68 6e 69 71 75 65 20  EffectTechnique 
8590: 47 65 74 54 65 63 68 6e 69 71 75 65 42 79 49 6e  GetTechniqueByIn
85a0: 64 65 78 28 55 49 4e 54 20 49 6e 64 65 78 29 3b  dex(UINT Index);
85b0: 0d 0a 09 49 44 33 44 31 30 45 66 66 65 63 74 54  ...ID3D10EffectT
85c0: 65 63 68 6e 69 71 75 65 20 47 65 74 54 65 63 68  echnique GetTech
85d0: 6e 69 71 75 65 42 79 4e 61 6d 65 28 4c 50 43 53  niqueByName(LPCS
85e0: 54 52 20 4e 61 6d 65 29 3b 0d 0a 09 48 52 45 53  TR Name);...HRES
85f0: 55 4c 54 20 4f 70 74 69 6d 69 7a 65 28 29 3b 0d  ULT Optimize();.
8600: 0a 09 42 4f 4f 4c 20 49 73 4f 70 74 69 6d 69 7a  ..BOOL IsOptimiz
8610: 65 64 28 29 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65  ed();..}....exte
8620: 72 6e 20 28 43 29 20 63 6f 6e 73 74 20 47 55 49  rn (C) const GUI
8630: 44 20 49 49 44 5f 49 44 33 44 31 30 45 66 66 65  D IID_ID3D10Effe
8640: 63 74 50 6f 6f 6c 20 3d 20 7b 30 78 39 35 33 37  ctPool = {0x9537
8650: 61 62 30 34 2c 20 30 78 33 32 35 30 2c 20 30 78  ab04, 0x3250, 0x
8660: 34 31 32 65 2c 20 5b 30 78 38 32 2c 20 30 78 31  412e, [0x82, 0x1
8670: 33 2c 20 30 78 66 63 2c 20 30 78 64 32 2c 20 30  3, 0xfc, 0xd2, 0
8680: 78 66 38 2c 20 30 78 36 37 2c 20 30 78 37 39 2c  xf8, 0x67, 0x79,
8690: 20 30 78 33 33 5d 7d 3b 0d 0a 0d 0a 69 6e 74 65   0x33]};....inte
86a0: 72 66 61 63 65 20 49 44 33 44 31 30 45 66 66 65  rface ID3D10Effe
86b0: 63 74 50 6f 6f 6c 20 3a 20 49 55 6e 6b 6e 6f 77  ctPool : IUnknow
86c0: 6e 20 7b 0d 0a 09 65 78 74 65 72 6e 28 57 69 6e  n {...extern(Win
86d0: 64 6f 77 73 29 20 3a 0d 0a 09 49 44 33 44 31 30  dows) :...ID3D10
86e0: 45 66 66 65 63 74 20 41 73 45 66 66 65 63 74 28  Effect AsEffect(
86f0: 29 3b 0d 0a 7d 0d 0a 0d 0a 48 52 45 53 55 4c 54  );..}....HRESULT
8700: 20 44 33 44 31 30 43 6f 6d 70 69 6c 65 45 66 66   D3D10CompileEff
8710: 65 63 74 46 72 6f 6d 4d 65 6d 6f 72 79 28 76 6f  ectFromMemory(vo
8720: 69 64 2a 20 70 44 61 74 61 2c 20 53 49 5a 45 5f  id* pData, SIZE_
8730: 54 20 44 61 74 61 4c 65 6e 67 74 68 2c 20 4c 50  T DataLength, LP
8740: 43 53 54 52 20 70 53 72 63 46 69 6c 65 4e 61 6d  CSTR pSrcFileNam
8750: 65 2c 20 44 33 44 31 30 5f 53 48 41 44 45 52 5f  e, D3D10_SHADER_
8760: 4d 41 43 52 4f 2a 20 70 44 65 66 69 6e 65 73 2c  MACRO* pDefines,
8770: 20 49 44 33 44 31 30 49 6e 63 6c 75 64 65 20 70   ID3D10Include p
8780: 49 6e 63 6c 75 64 65 2c 20 55 49 4e 54 20 48 4c  Include, UINT HL
8790: 53 4c 46 6c 61 67 73 2c 20 55 49 4e 54 20 46 58  SLFlags, UINT FX
87a0: 46 6c 61 67 73 2c 20 49 44 33 44 31 30 42 6c 6f  Flags, ID3D10Blo
87b0: 62 2a 20 70 70 43 6f 6d 70 69 6c 65 64 45 66 66  b* ppCompiledEff
87c0: 65 63 74 2c 20 49 44 33 44 31 30 42 6c 6f 62 2a  ect, ID3D10Blob*
87d0: 20 70 70 45 72 72 6f 72 73 29 3b 0d 0a 48 52 45   ppErrors);..HRE
87e0: 53 55 4c 54 20 44 33 44 31 30 43 72 65 61 74 65  SULT D3D10Create
87f0: 45 66 66 65 63 74 46 72 6f 6d 4d 65 6d 6f 72 79  EffectFromMemory
8800: 28 76 6f 69 64 2a 20 70 44 61 74 61 2c 20 53 49  (void* pData, SI
8810: 5a 45 5f 54 20 44 61 74 61 4c 65 6e 67 74 68 2c  ZE_T DataLength,
8820: 20 55 49 4e 54 20 46 58 46 6c 61 67 73 2c 20 49   UINT FXFlags, I
8830: 44 33 44 31 30 44 65 76 69 63 65 20 70 44 65 76  D3D10Device pDev
8840: 69 63 65 2c 20 49 44 33 44 31 30 45 66 66 65 63  ice, ID3D10Effec
8850: 74 50 6f 6f 6c 20 70 45 66 66 65 63 74 50 6f 6f  tPool pEffectPoo
8860: 6c 2c 20 49 44 33 44 31 30 45 66 66 65 63 74 2a  l, ID3D10Effect*
8870: 20 70 70 45 66 66 65 63 74 29 3b 0d 0a 48 52 45   ppEffect);..HRE
8880: 53 55 4c 54 20 44 33 44 31 30 43 72 65 61 74 65  SULT D3D10Create
8890: 45 66 66 65 63 74 50 6f 6f 6c 46 72 6f 6d 4d 65  EffectPoolFromMe
88a0: 6d 6f 72 79 28 76 6f 69 64 2a 20 70 44 61 74 61  mory(void* pData
88b0: 2c 20 53 49 5a 45 5f 54 20 44 61 74 61 4c 65 6e  , SIZE_T DataLen
88c0: 67 74 68 2c 20 55 49 4e 54 20 46 58 46 6c 61 67  gth, UINT FXFlag
88d0: 73 2c 20 49 44 33 44 31 30 44 65 76 69 63 65 20  s, ID3D10Device 
88e0: 70 44 65 76 69 63 65 2c 20 49 44 33 44 31 30 45  pDevice, ID3D10E
88f0: 66 66 65 63 74 50 6f 6f 6c 2a 20 70 70 45 66 66  ffectPool* ppEff
8900: 65 63 74 50 6f 6f 6c 29 3b 0d 0a 48 52 45 53 55  ectPool);..HRESU
8910: 4c 54 20 44 33 44 31 30 44 69 73 61 73 73 65 6d  LT D3D10Disassem
8920: 62 6c 65 45 66 66 65 63 74 28 49 44 33 44 31 30  bleEffect(ID3D10
8930: 45 66 66 65 63 74 20 70 45 66 66 65 63 74 2c 20  Effect pEffect, 
8940: 42 4f 4f 4c 20 45 6e 61 62 6c 65 43 6f 6c 6f 72  BOOL EnableColor
8950: 43 6f 64 65 2c 20 49 44 33 44 31 30 42 6c 6f 62  Code, ID3D10Blob
8960: 2a 20 70 70 44 69 73 61 73 73 65 6d 62 6c 79 29  * ppDisassembly)
8970: 3b 0d 0a                                         ;..