root/trunk/win32/directx/d3d10effect.d

Revision 346, 34.4 kB (checked in by CyberShadow, 2 years ago)

Committing part of SHOO's patch from ticket #3

Line 
1 /***********************************************************************\
2 *                             d3d10effect.d                             *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                       Placed into public domain                       *
7 \***********************************************************************/
8 module win32.directx.d3d10effect;
9
10 private import win32.windows;
11 private import win32.directx.d3d10;
12
13
14 enum D3D10_DEVICE_STATE_TYPES {
15     D3D10_DST_SO_BUFFERS = 1,
16     D3D10_DST_OM_RENDER_TARGETS,
17     D3D10_DST_OM_DEPTH_STENCIL_STATE,
18     D3D10_DST_OM_BLEND_STATE,
19     D3D10_DST_VS,
20     D3D10_DST_VS_SAMPLERS,
21     D3D10_DST_VS_SHADER_RESOURCES,
22     D3D10_DST_VS_CONSTANT_BUFFERS,
23     D3D10_DST_GS,
24     D3D10_DST_GS_SAMPLERS,
25     D3D10_DST_GS_SHADER_RESOURCES,
26     D3D10_DST_GS_CONSTANT_BUFFERS,
27     D3D10_DST_PS,
28     D3D10_DST_PS_SAMPLERS,
29     D3D10_DST_PS_SHADER_RESOURCES,
30     D3D10_DST_PS_CONSTANT_BUFFERS,
31     D3D10_DST_IA_VERTEX_BUFFERS,
32     D3D10_DST_IA_INDEX_BUFFER,
33     D3D10_DST_IA_INPUT_LAYOUT,
34     D3D10_DST_IA_PRIMITIVE_TOPOLOGY,
35     D3D10_DST_RS_VIEWPORTS,
36     D3D10_DST_RS_SCISSOR_RECTS,
37     D3D10_DST_RS_RASTERIZER_STATE,
38     D3D10_DST_PREDICATION
39 }
40
41 struct D3D10_STATE_BLOCK_MASK {
42     BYTE VS;
43     BYTE[2] VSSamplers;
44     BYTE[16] VSShaderResources;
45     BYTE[2] VSConstantBuffers;
46     BYTE GS;
47     BYTE[2] GSSamplers;
48     BYTE[16] GSShaderResources;
49     BYTE[2] GSConstantBuffers;
50     BYTE PS;
51     BYTE[2] PSSamplers;
52     BYTE[16] PSShaderResources;
53     BYTE[2] PSConstantBuffers;
54     BYTE[2] IAVertexBuffers;
55     BYTE IAIndexBuffer;
56     BYTE IAInputLayout;
57     BYTE IAPrimitiveTopology;
58     BYTE OMRenderTargets;
59     BYTE OMDepthStencilState;
60     BYTE OMBlendState;
61     BYTE RSViewports;
62     BYTE RSScissorRects;
63     BYTE RSRasterizerState;
64     BYTE SOBuffers;
65     BYTE Predication;
66 }
67
68 extern (C) const GUID IID_ID3D10StateBlock = {0x803425a, 0x57f5, 0x4dd6, [0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08]};
69
70 interface ID3D10StateBlock : IUnknown {
71     extern(Windows) :
72     HRESULT Capture();
73     HRESULT Apply();
74     HRESULT ReleaseAllDeviceObjects();
75     HRESULT GetDevice(ID3D10Device ppDevice);
76 }
77
78 HRESULT D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult);
79 HRESULT D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult);
80 HRESULT D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult);
81 HRESULT D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength);
82 HRESULT D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength);
83 HRESULT D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK* pMask);
84 HRESULT D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK* pMask);
85 BOOL D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry);
86 HRESULT D3D10CreateStateBlock(ID3D10Device pDevice, D3D10_STATE_BLOCK_MASK* pStateBlockMask, ID3D10StateBlock ppStateBlock);
87
88 const D3D10_EFFECT_COMPILE_CHILD_EFFECT         = 1 << 0;
89 const D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS       = 1 << 1;
90 const D3D10_EFFECT_SINGLE_THREADED              = 1 << 3;
91 const D3D10_EFFECT_VARIABLE_POOLED              = 1 << 0;
92 const D3D10_EFFECT_VARIABLE_ANNOTATION          = 1 << 1;
93 const D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 1 << 2;
94
95 struct D3D10_EFFECT_TYPE_DESC {
96     LPCSTR  TypeName;
97     D3D10_SHADER_VARIABLE_CLASS Class;
98     D3D10_SHADER_VARIABLE_TYPE  Type;
99     UINT    Elements;
100     UINT    Members;
101     UINT    Rows;
102     UINT    Columns;
103     UINT    PackedSize;
104     UINT    UnpackedSize;
105     UINT    Stride;
106 }
107
108 extern (C) const GUID IID_ID3D10EffectType = {0x4e9e1ddc, 0xcd9d, 0x4772, [0xa8, 0x37, 0x0, 0x18, 0x0b, 0x9b, 0x88, 0xfd]};
109
110 interface ID3D10EffectType {
111 /* TODO: fix vtbl[0] bug
112     extern(Windows) :
113     BOOL IsValid();
114     HRESULT GetDesc(D3D10_EFFECT_TYPE_DESC* pDesc);
115     ID3D10EffectType GetMemberTypeByIndex(UINT Index);
116     ID3D10EffectType GetMemberTypeByName(LPCSTR Name);
117     ID3D10EffectType GetMemberTypeBySemantic(LPCSTR Semantic);
118     LPCSTR GetMemberName(UINT Index);
119     LPCSTR GetMemberSemantic(UINT Index);
120     */
121 }
122
123 struct D3D10_EFFECT_VARIABLE_DESC {
124     LPCSTR  Name;
125     LPCSTR  Semantic;
126     UINT    Flags;
127     UINT    Annotations;
128     UINT    BufferOffset;
129     UINT    ExplicitBindPoint;
130 }
131
132 extern (C) const GUID IID_ID3D10EffectVariable = {0xae897105, 0x00e6, 0x45bf, [0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b]};
133
134 interface ID3D10EffectVariable {
135 /* TODO: fix vtbl[0] bug
136     extern(Windows) :
137     BOOL IsValid();
138     ID3D10EffectType GetType();
139     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
140     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
141     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
142     ID3D10EffectVariable GetMemberByIndex(UINT Index);
143     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
144     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
145     ID3D10EffectVariable GetElement(UINT Index);
146     ID3D10EffectConstantBuffer GetParentConstantBuffer();
147     ID3D10EffectScalarVariable AsScalar();
148     ID3D10EffectVectorVariable AsVector();
149     ID3D10EffectMatrixVariable AsMatrix();
150     ID3D10EffectStringVariable AsString();
151     ID3D10EffectShaderResourceVariable AsShaderResource();
152     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
153     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
154     ID3D10EffectConstantBuffer AsConstantBuffer();
155     ID3D10EffectShaderVariable AsShader();
156     ID3D10EffectBlendVariable AsBlend();
157     ID3D10EffectDepthStencilVariable AsDepthStencil();
158     ID3D10EffectRasterizerVariable AsRasterizer();
159     ID3D10EffectSamplerVariable AsSampler();
160     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
161     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
162     */
163 }
164
165 extern (C) const GUID IID_ID3D10EffectScalarVariable = {0xe48f7b, 0xd2c8, 0x49e8, [0xa8, 0x6c, 0x2, 0x2d, 0xee, 0x53, 0x43, 0x1f]};
166
167 interface ID3D10EffectScalarVariable : ID3D10EffectVariable {
168 /* TODO: fix vtbl[0] bug
169     extern(Windows) :
170     BOOL IsValid();
171     ID3D10EffectType GetType();
172     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
173     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
174     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
175     ID3D10EffectVariable GetMemberByIndex(UINT Index);
176     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
177     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
178     ID3D10EffectVariable GetElement(UINT Index);
179     ID3D10EffectConstantBuffer GetParentConstantBuffer();
180     ID3D10EffectScalarVariable AsScalar();
181     ID3D10EffectVectorVariable AsVector();
182     ID3D10EffectMatrixVariable AsMatrix();
183     ID3D10EffectStringVariable AsString();
184     ID3D10EffectShaderResourceVariable AsShaderResource();
185     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
186     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
187     ID3D10EffectConstantBuffer AsConstantBuffer();
188     ID3D10EffectShaderVariable AsShader();
189     ID3D10EffectBlendVariable AsBlend();
190     ID3D10EffectDepthStencilVariable AsDepthStencil();
191     ID3D10EffectRasterizerVariable AsRasterizer();
192     ID3D10EffectSamplerVariable AsSampler();
193     HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount);
194     HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount);
195     HRESULT SetFloat(float Value);
196     HRESULT GetFloat(float* pValue);   
197     HRESULT SetFloatArray(float* pData, UINT Offset, UINT Count);
198     HRESULT GetFloatArray(float* pData, UINT Offset, UINT Count);
199     HRESULT SetInt(int Value);
200     HRESULT GetInt(int* pValue);
201     HRESULT SetIntArray(int* pData, UINT Offset, UINT Count);
202     HRESULT GetIntArray(int* pData, UINT Offset, UINT Count);
203     HRESULT SetBool(BOOL Value);
204     HRESULT GetBool(BOOL* pValue);
205     HRESULT SetBoolArray(BOOL* pData, UINT Offset, UINT Count);
206     HRESULT GetBoolArray(BOOL* pData, UINT Offset, UINT Count);
207     */
208 }
209
210 extern (C) const GUID IID_ID3D10EffectVectorVariable = {0x62b98c44, 0x1f82, 0x4c67, [0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81]};
211
212 interface ID3D10EffectVectorVariable : ID3D10EffectVariable {
213 /* TODO: fix vtbl[0] bug
214     extern(Windows) :
215     BOOL IsValid();
216     ID3D10EffectType GetType();
217     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
218     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
219     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
220     ID3D10EffectVariable GetMemberByIndex(UINT Index);
221     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
222     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
223     ID3D10EffectVariable GetElement(UINT Index);
224     ID3D10EffectConstantBuffer GetParentConstantBuffer();
225     ID3D10EffectScalarVariable AsScalar();
226     ID3D10EffectVectorVariable AsVector();
227     ID3D10EffectMatrixVariable AsMatrix();
228     ID3D10EffectStringVariable AsString();
229     ID3D10EffectShaderResourceVariable AsShaderResource();
230     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
231     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
232     ID3D10EffectConstantBuffer AsConstantBuffer();
233     ID3D10EffectShaderVariable AsShader();
234     ID3D10EffectBlendVariable AsBlend();
235     ID3D10EffectDepthStencilVariable AsDepthStencil();
236     ID3D10EffectRasterizerVariable AsRasterizer();
237     ID3D10EffectSamplerVariable AsSampler();
238     HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount);
239     HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount);
240     HRESULT SetBoolVector (BOOL* pData);
241     HRESULT SetIntVector  (int* pData);
242     HRESULT SetFloatVector(float* pData);
243     HRESULT GetBoolVector (BOOL* pData);
244     HRESULT GetIntVector  (int* pData);
245     HRESULT GetFloatVector(float* pData);
246     HRESULT SetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count);
247     HRESULT SetIntVectorArray  (int* pData, UINT Offset, UINT Count);
248     HRESULT SetFloatVectorArray(float* pData, UINT Offset, UINT Count);
249     HRESULT GetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count);
250     HRESULT GetIntVectorArray  (int* pData, UINT Offset, UINT Count);
251     HRESULT GetFloatVectorArray(float* pData, UINT Offset, UINT Count);
252     */
253 }
254
255 extern (C) const GUID IID_ID3D10EffectMatrixVariable = {0x50666c24, 0xb82f, 0x4eed, [0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0]};
256
257 interface ID3D10EffectMatrixVariable : ID3D10EffectVariable {
258 /* TODO: fix vtbl[0] bug
259     extern(Windows) :
260     BOOL IsValid();
261     ID3D10EffectType GetType();
262     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
263     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
264     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
265     ID3D10EffectVariable GetMemberByIndex(UINT Index);
266     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
267     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
268     ID3D10EffectVariable GetElement(UINT Index);
269     ID3D10EffectConstantBuffer GetParentConstantBuffer();
270     ID3D10EffectScalarVariable AsScalar();
271     ID3D10EffectVectorVariable AsVector();
272     ID3D10EffectMatrixVariable AsMatrix();
273     ID3D10EffectStringVariable AsString();
274     ID3D10EffectShaderResourceVariable AsShaderResource();
275     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
276     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
277     ID3D10EffectConstantBuffer AsConstantBuffer();
278     ID3D10EffectShaderVariable AsShader();
279     ID3D10EffectBlendVariable AsBlend();
280     ID3D10EffectDepthStencilVariable AsDepthStencil();
281     ID3D10EffectRasterizerVariable AsRasterizer();
282     ID3D10EffectSamplerVariable AsSampler();
283     HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount);
284     HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount);
285     HRESULT SetMatrix(float* pData);
286     HRESULT GetMatrix(float* pData);
287     HRESULT SetMatrixArray(float* pData, UINT Offset, UINT Count);
288     HRESULT GetMatrixArray(float* pData, UINT Offset, UINT Count);
289     HRESULT SetMatrixTranspose(float* pData);
290     HRESULT GetMatrixTranspose(float* pData);
291     HRESULT SetMatrixTransposeArray(float* pData, UINT Offset, UINT Count);
292     HRESULT GetMatrixTransposeArray(float* pData, UINT Offset, UINT Count);
293     */
294 }
295
296 extern (C) const GUID IID_ID3D10EffectStringVariable = {0x71417501, 0x8df9, 0x4e0a, [0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff]};
297
298 interface ID3D10EffectStringVariable : ID3D10EffectVariable {
299 /* TODO: fix vtbl[0] bug
300     extern(Windows) :
301     BOOL IsValid();
302     ID3D10EffectType GetType();
303     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
304     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
305     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
306     ID3D10EffectVariable GetMemberByIndex(UINT Index);
307     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
308     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
309     ID3D10EffectVariable GetElement(UINT Index);
310     ID3D10EffectConstantBuffer GetParentConstantBuffer();
311     ID3D10EffectScalarVariable AsScalar();
312     ID3D10EffectVectorVariable AsVector();
313     ID3D10EffectMatrixVariable AsMatrix();
314     ID3D10EffectStringVariable AsString();
315     ID3D10EffectShaderResourceVariable AsShaderResource();
316     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
317     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
318     ID3D10EffectConstantBuffer AsConstantBuffer();
319     ID3D10EffectShaderVariable AsShader();
320     ID3D10EffectBlendVariable AsBlend();
321     ID3D10EffectDepthStencilVariable AsDepthStencil();
322     ID3D10EffectRasterizerVariable AsRasterizer();
323     ID3D10EffectSamplerVariable AsSampler();
324     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
325     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
326     HRESULT GetString(LPCSTR* ppString);
327     HRESULT GetStringArray(LPCSTR* ppStrings, UINT Offset, UINT Count);
328     */
329 }
330
331 extern (C) const GUID IID_ID3D10EffectShaderResourceVariable = {0xc0a7157b, 0xd872, 0x4b1d, [0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc]};
332
333 interface ID3D10EffectShaderResourceVariable : ID3D10EffectVariable {
334 /* TODO: fix vtbl[0] bug
335     extern(Windows) :
336     BOOL IsValid();
337     ID3D10EffectType GetType();
338     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
339     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
340     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
341     ID3D10EffectVariable GetMemberByIndex(UINT Index);
342     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
343     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
344     ID3D10EffectVariable GetElement(UINT Index);
345     ID3D10EffectConstantBuffer GetParentConstantBuffer();
346     ID3D10EffectScalarVariable AsScalar();
347     ID3D10EffectVectorVariable AsVector();
348     ID3D10EffectMatrixVariable AsMatrix();
349     ID3D10EffectStringVariable AsString();
350     ID3D10EffectShaderResourceVariable AsShaderResource();
351     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
352     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
353     ID3D10EffectConstantBuffer AsConstantBuffer();
354     ID3D10EffectShaderVariable AsShader();
355     ID3D10EffectBlendVariable AsBlend();
356     ID3D10EffectDepthStencilVariable AsDepthStencil();
357     ID3D10EffectRasterizerVariable AsRasterizer();
358     ID3D10EffectSamplerVariable AsSampler();
359     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
360     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
361     HRESULT SetResource(ID3D10ShaderResourceView pResource);
362     HRESULT GetResource(ID3D10ShaderResourceView* ppResource);
363     HRESULT SetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count);
364     HRESULT GetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count);
365     */
366 }
367
368 extern (C) const GUID IID_ID3D10EffectRenderTargetViewVariable = {0x28ca0cc3, 0xc2c9, 0x40bb, [0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17]};
369
370 interface ID3D10EffectRenderTargetViewVariable : ID3D10EffectVariable {
371 /* TODO: fix vtbl[0] bug
372     extern(Windows) :
373     BOOL IsValid();
374     ID3D10EffectType GetType();
375     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
376     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
377     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
378     ID3D10EffectVariable GetMemberByIndex(UINT Index);
379     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
380     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
381     ID3D10EffectVariable GetElement(UINT Index);
382     ID3D10EffectConstantBuffer GetParentConstantBuffer();
383     ID3D10EffectScalarVariable AsScalar();
384     ID3D10EffectVectorVariable AsVector();
385     ID3D10EffectMatrixVariable AsMatrix();
386     ID3D10EffectStringVariable AsString();
387     ID3D10EffectShaderResourceVariable AsShaderResource();
388     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
389     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
390     ID3D10EffectConstantBuffer AsConstantBuffer();
391     ID3D10EffectShaderVariable AsShader();
392     ID3D10EffectBlendVariable AsBlend();
393     ID3D10EffectDepthStencilVariable AsDepthStencil();
394     ID3D10EffectRasterizerVariable AsRasterizer();
395     ID3D10EffectSamplerVariable AsSampler();
396     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
397     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
398     HRESULT SetRenderTarget(ID3D10RenderTargetView pResource);
399     HRESULT GetRenderTarget(ID3D10RenderTargetView* ppResource);
400     HRESULT SetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count);
401     HRESULT GetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count);
402     */
403 }
404
405 extern (C) const GUID IID_ID3D10EffectDepthStencilViewVariable = {0x3e02c918, 0xcc79, 0x4985, [0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23]};
406
407 interface ID3D10EffectDepthStencilViewVariable : ID3D10EffectVariable {
408 /* TODO: fix vtbl[0] bug
409     extern(Windows) :
410     BOOL IsValid();
411     ID3D10EffectType GetType();
412     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
413     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
414     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
415     ID3D10EffectVariable GetMemberByIndex(UINT Index);
416     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
417     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
418     ID3D10EffectVariable GetElement(UINT Index);
419     ID3D10EffectConstantBuffer GetParentConstantBuffer();
420     ID3D10EffectScalarVariable AsScalar();
421     ID3D10EffectVectorVariable AsVector();
422     ID3D10EffectMatrixVariable AsMatrix();
423     ID3D10EffectStringVariable AsString();
424     ID3D10EffectShaderResourceVariable AsShaderResource();
425     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
426     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
427     ID3D10EffectConstantBuffer AsConstantBuffer();
428     ID3D10EffectShaderVariable AsShader();
429     ID3D10EffectBlendVariable AsBlend();
430     ID3D10EffectDepthStencilVariable AsDepthStencil();
431     ID3D10EffectRasterizerVariable AsRasterizer();
432     ID3D10EffectSamplerVariable AsSampler();
433     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
434     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
435     HRESULT SetDepthStencil(ID3D10DepthStencilView pResource);
436     HRESULT GetDepthStencil(ID3D10DepthStencilView* ppResource);
437     HRESULT SetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count);
438     HRESULT GetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count);
439     */
440 }
441
442 extern (C) const GUID IID_ID3D10EffectConstantBuffer = {0x56648f4d, 0xcc8b, 0x4444, [0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3]};
443
444 interface ID3D10EffectConstantBuffer : ID3D10EffectVariable {
445 /* TODO: fix vtbl[0] bug
446     extern(Windows) :
447     ID3D10EffectType GetType();
448     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
449     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
450     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
451     ID3D10EffectVariable GetMemberByIndex(UINT Index);
452     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
453     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
454     ID3D10EffectVariable GetElement(UINT Index);
455     ID3D10EffectConstantBuffer GetParentConstantBuffer();
456     ID3D10EffectScalarVariable AsScalar();
457     ID3D10EffectVectorVariable AsVector();
458     ID3D10EffectMatrixVariable AsMatrix();
459     ID3D10EffectStringVariable AsString();
460     ID3D10EffectShaderResourceVariable AsShaderResource();
461     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
462     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
463     ID3D10EffectConstantBuffer AsConstantBuffer();
464     ID3D10EffectShaderVariable AsShader();
465     ID3D10EffectBlendVariable AsBlend();
466     ID3D10EffectDepthStencilVariable AsDepthStencil();
467     ID3D10EffectRasterizerVariable AsRasterizer();
468     ID3D10EffectSamplerVariable AsSampler();
469     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
470     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
471     HRESULT SetConstantBuffer(ID3D10Buffer pConstantBuffer);
472     HRESULT GetConstantBuffer(ID3D10Buffer* ppConstantBuffer);
473     HRESULT SetTextureBuffer(ID3D10ShaderResourceView pTextureBuffer);
474     HRESULT GetTextureBuffer(ID3D10ShaderResourceView* ppTextureBuffer);
475     */
476 }
477
478 struct D3D10_EFFECT_SHADER_DESC {
479     BYTE*   pInputSignature;
480     BOOL    IsInline;
481     BYTE*   pBytecode;
482     UINT    BytecodeLength;
483     LPCSTR  SODecl;
484     UINT    NumInputSignatureEntries;
485     UINT    NumOutputSignatureEntries;
486 }
487
488 extern (C) const GUID IID_ID3D10EffectShaderVariable = {0x80849279, 0xc799, 0x4797, [0x8c, 0x33, 0x4, 0x7, 0xa0, 0x7d, 0x9e, 0x6]};
489
490 interface ID3D10EffectShaderVariable : ID3D10EffectVariable {
491 /* TODO: fix vtbl[0] bug
492     extern(Windows) :
493     ID3D10EffectType GetType();
494     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
495     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
496     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
497     ID3D10EffectVariable GetMemberByIndex(UINT Index);
498     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
499     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
500     ID3D10EffectVariable GetElement(UINT Index);
501     ID3D10EffectConstantBuffer GetParentConstantBuffer();
502     ID3D10EffectScalarVariable AsScalar();
503     ID3D10EffectVectorVariable AsVector();
504     ID3D10EffectMatrixVariable AsMatrix();
505     ID3D10EffectStringVariable AsString();
506     ID3D10EffectShaderResourceVariable AsShaderResource();
507     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
508     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
509     ID3D10EffectConstantBuffer AsConstantBuffer();
510     ID3D10EffectShaderVariable AsShader();
511     ID3D10EffectBlendVariable AsBlend();
512     ID3D10EffectDepthStencilVariable AsDepthStencil();
513     ID3D10EffectRasterizerVariable AsRasterizer();
514     ID3D10EffectSamplerVariable AsSampler();
515     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
516     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
517     HRESULT GetShaderDesc(UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC* pDesc);
518     HRESULT GetVertexShader(UINT ShaderIndex, ID3D10VertexShader* ppVS);
519     HRESULT GetGeometryShader(UINT ShaderIndex, ID3D10GeometryShader* ppGS);
520     HRESULT GetPixelShader(UINT ShaderIndex, ID3D10PixelShader* ppPS);
521     HRESULT GetInputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc);
522     HRESULT GetOutputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc);
523     */
524 }
525
526 extern (C) const GUID IID_ID3D10EffectBlendVariable = {0x1fcd2294, 0xdf6d, 0x4eae, [0x86, 0xb3, 0xe, 0x91, 0x60, 0xcf, 0xb0, 0x7b]};
527
528 interface ID3D10EffectBlendVariable : ID3D10EffectVariable {
529 /* TODO: fix vtbl[0] bug
530     extern(Windows) :
531     ID3D10EffectType GetType();
532     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
533     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
534     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
535     ID3D10EffectVariable GetMemberByIndex(UINT Index);
536     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
537     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
538     ID3D10EffectVariable GetElement(UINT Index);
539     ID3D10EffectConstantBuffer GetParentConstantBuffer();
540     ID3D10EffectScalarVariable AsScalar();
541     ID3D10EffectVectorVariable AsVector();
542     ID3D10EffectMatrixVariable AsMatrix();
543     ID3D10EffectStringVariable AsString();
544     ID3D10EffectShaderResourceVariable AsShaderResource();
545     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
546     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
547     ID3D10EffectConstantBuffer AsConstantBuffer();
548     ID3D10EffectShaderVariable AsShader();
549     ID3D10EffectBlendVariable AsBlend();
550     ID3D10EffectDepthStencilVariable AsDepthStencil();
551     ID3D10EffectRasterizerVariable AsRasterizer();
552     ID3D10EffectSamplerVariable AsSampler();
553     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
554     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
555     HRESULT GetBlendState(UINT Index, ID3D10BlendState* ppBlendState);
556     HRESULT GetBackingStore(UINT Index, D3D10_BLEND_DESC* pBlendDesc);
557     */
558 }
559
560 extern (C) const GUID IID_ID3D10EffectDepthStencilVariable = {0xaf482368, 0x330a, 0x46a5, [0x9a, 0x5c, 0x1, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d]};
561
562 interface ID3D10EffectDepthStencilVariable : ID3D10EffectVariable {
563 /* TODO: fix vtbl[0] bug
564     extern(Windows) :
565     ID3D10EffectType GetType();
566     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
567     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
568     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
569     ID3D10EffectVariable GetMemberByIndex(UINT Index);
570     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
571     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
572     ID3D10EffectVariable GetElement(UINT Index);
573     ID3D10EffectConstantBuffer GetParentConstantBuffer();
574     ID3D10EffectScalarVariable AsScalar();
575     ID3D10EffectVectorVariable AsVector();
576     ID3D10EffectMatrixVariable AsMatrix();
577     ID3D10EffectStringVariable AsString();
578     ID3D10EffectShaderResourceVariable AsShaderResource();
579     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
580     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
581     ID3D10EffectConstantBuffer AsConstantBuffer();
582     ID3D10EffectShaderVariable AsShader();
583     ID3D10EffectBlendVariable AsBlend();
584     ID3D10EffectDepthStencilVariable AsDepthStencil();
585     ID3D10EffectRasterizerVariable AsRasterizer();
586     ID3D10EffectSamplerVariable AsSampler();
587     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
588     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
589     HRESULT GetDepthStencilState(UINT Index, ID3D10DepthStencilState* ppDepthStencilState);
590     HRESULT GetBackingStore(UINT Index, D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc);
591     */
592 }
593
594 extern (C) const GUID IID_ID3D10EffectRasterizerVariable = {0x21af9f0e, 0x4d94, 0x4ea9, [0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0xb, 0x34]};
595
596 interface ID3D10EffectRasterizerVariable : ID3D10EffectVariable {
597 /* TODO: fix vtbl[0] bug
598     extern(Windows) :
599     ID3D10EffectType GetType();
600     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
601     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
602     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
603     ID3D10EffectVariable GetMemberByIndex(UINT Index);
604     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
605     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
606     ID3D10EffectVariable GetElement(UINT Index);
607     ID3D10EffectConstantBuffer GetParentConstantBuffer();
608     ID3D10EffectScalarVariable AsScalar();
609     ID3D10EffectVectorVariable AsVector();
610     ID3D10EffectMatrixVariable AsMatrix();
611     ID3D10EffectStringVariable AsString();
612     ID3D10EffectShaderResourceVariable AsShaderResource();
613     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
614     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
615     ID3D10EffectConstantBuffer AsConstantBuffer();
616     ID3D10EffectShaderVariable AsShader();
617     ID3D10EffectBlendVariable AsBlend();
618     ID3D10EffectDepthStencilVariable AsDepthStencil();
619     ID3D10EffectRasterizerVariable AsRasterizer();
620     ID3D10EffectSamplerVariable AsSampler();
621     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
622     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
623     HRESULT GetRasterizerState(UINT Index, ID3D10RasterizerState* ppRasterizerState);
624     HRESULT GetBackingStore(UINT Index, D3D10_RASTERIZER_DESC* pRasterizerDesc);
625     */
626 }
627
628 extern (C) const GUID IID_ID3D10EffectSamplerVariable = {0x6530d5c7, 0x07e9, 0x4271, [0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80]};
629
630 interface ID3D10EffectSamplerVariable : ID3D10EffectVariable {
631 /* TODO: fix vtbl[0] bug
632     extern(Windows) :
633     ID3D10EffectType GetType();
634     HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc);
635     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
636     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
637     ID3D10EffectVariable GetMemberByIndex(UINT Index);
638     ID3D10EffectVariable GetMemberByName(LPCSTR Name);
639     ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic);
640     ID3D10EffectVariable GetElement(UINT Index);
641     ID3D10EffectConstantBuffer GetParentConstantBuffer();
642     ID3D10EffectScalarVariable AsScalar();
643     ID3D10EffectVectorVariable AsVector();
644     ID3D10EffectMatrixVariable AsMatrix();
645     ID3D10EffectStringVariable AsString();
646     ID3D10EffectShaderResourceVariable AsShaderResource();
647     ID3D10EffectRenderTargetViewVariable AsRenderTargetView();
648     ID3D10EffectDepthStencilViewVariable AsDepthStencilView();
649     ID3D10EffectConstantBuffer AsConstantBuffer();
650     ID3D10EffectShaderVariable AsShader();
651     ID3D10EffectBlendVariable AsBlend();
652     ID3D10EffectDepthStencilVariable AsDepthStencil();
653     ID3D10EffectRasterizerVariable AsRasterizer();
654     ID3D10EffectSamplerVariable AsSampler();
655     HRESULT SetRawValue(void* pData, UINT Offset, UINT Count);
656     HRESULT GetRawValue(void* pData, UINT Offset, UINT Count);
657     HRESULT GetSampler(UINT Index, ID3D10SamplerState* ppSampler);
658     HRESULT GetBackingStore(UINT Index, D3D10_SAMPLER_DESC* pSamplerDesc);
659     */
660 }
661
662 struct D3D10_PASS_DESC {
663     LPCSTR      Name;
664     UINT        Annotations;
665     BYTE*       pIAInputSignature;
666     SIZE_T      IAInputSignatureSize;
667     UINT        StencilRef;
668     UINT        SampleMask;
669     FLOAT[4]    BlendFactor;
670 }
671
672 struct D3D10_PASS_SHADER_DESC {
673     ID3D10EffectShaderVariable  pShaderVariable;
674     UINT                        ShaderIndex;
675 }
676
677 extern (C) const GUID IID_ID3D10EffectPass = {0x5cfbeb89, 0x1a06, 0x46e0, [0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54]};
678
679 /+interface ID3D10EffectPass {
680 /* TODO: fix vtbl[0] bug
681     extern(Windows) :
682     BOOL IsValid();
683     HRESULT GetDesc(D3D10_PASS_DESC* pDesc);
684     HRESULT GetVertexShaderDesc(D3D10_PASS_SHADER_DESC* pDesc);
685     HRESULT GetGeometryShaderDesc(D3D10_PASS_SHADER_DESC* pDesc);
686     HRESULT GetPixelShaderDesc(D3D10_PASS_SHADER_DESC* pDesc);
687     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
688     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
689     HRESULT Apply(UINT Flags);
690     HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask);
691     */
692 }+/
693 /**
694  * HACK to FIX vtbl[0] bug:
695  * This is an example HACK how to fix all interfaces which are NOT derived from
696  * IUnknown. They need the first entry in their vtbl[] point to the first
697  * virtual function.
698  * See:
699  * http://www.digitalmars.com/d/cpp_interface.html
700  * http://d.puremagic.com/issues/show_bug.cgi?id=1687
701  */
702 struct ID3D10EffectPassVtbl {
703     extern(Windows) :
704     BOOL function(ID3D10EffectPass) IsValid;
705     HRESULT function(ID3D10EffectPass, D3D10_PASS_DESC* pDesc) GetDesc;
706     HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetVertexShaderDesc;
707     HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetGeometryShaderDesc;
708     HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetPixelShaderDesc;
709     ID3D10EffectVariable function(ID3D10EffectPass, UINT Index) GetAnnotationByIndex;
710     ID3D10EffectVariable function(ID3D10EffectPass, LPCSTR Name) GetAnnotationByName;
711     HRESULT function(ID3D10EffectPass, UINT Flags) Apply;
712     HRESULT function(ID3D10EffectPass, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask;
713 }
714 alias ID3D10EffectPassVtbl** ID3D10EffectPass;
715
716 struct D3D10_TECHNIQUE_DESC {
717     LPCSTR  Name;
718     UINT    Passes;
719     UINT    Annotations;
720 }
721
722 extern (C) const GUID IID_ID3D10EffectTechnique = {0xdb122ce8, 0xd1c9, 0x4292, [0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75]};
723
724 /+interface ID3D10EffectTechnique {
725 /* TODO: fix vtbl[0] bug
726     extern(Windows) :
727     BOOL IsValid();
728     HRESULT GetDesc(D3D10_TECHNIQUE_DESC* pDesc);
729     ID3D10EffectVariable GetAnnotationByIndex(UINT Index);
730     ID3D10EffectVariable GetAnnotationByName(LPCSTR Name);
731     ID3D10EffectPass GetPassByIndex(UINT Index);
732     ID3D10EffectPass GetPassByName(LPCSTR Name);
733     HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask);
734     */
735 }+/
736 /**
737  * HACK to FIX vtbl[0] bug:
738  * This is an example HACK how to fix all interfaces which are NOT derived from
739  * IUnknown. They need the first entry in their vtbl[] point to the first
740  * virtual function.
741  * See:
742  * http://www.digitalmars.com/d/cpp_interface.html
743  * http://d.puremagic.com/issues/show_bug.cgi?id=1687
744  */
745 struct ID3D10EffectTechniqueVtbl {
746     extern(Windows) :
747     BOOL function(ID3D10EffectTechnique) IsValid;
748     HRESULT function(ID3D10EffectTechnique, D3D10_TECHNIQUE_DESC* pDesc) GetDesc;
749     ID3D10EffectVariable function(ID3D10EffectTechnique, UINT Index) GetAnnotationByIndex;
750     ID3D10EffectVariable function(ID3D10EffectTechnique, LPCSTR Name) GetAnnotationByName;
751     ID3D10EffectPass function(ID3D10EffectTechnique, UINT Index) GetPassByIndex;
752     ID3D10EffectPass function(ID3D10EffectTechnique, LPCSTR Name) GetPassByName;
753     HRESULT function(ID3D10EffectTechnique, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask;
754 }
755 alias ID3D10EffectTechniqueVtbl** ID3D10EffectTechnique;
756
757 struct D3D10_EFFECT_DESC {
758     BOOL    IsChildEffect;
759     UINT    ConstantBuffers;
760     UINT    SharedConstantBuffers;
761     UINT    GlobalVariables;
762     UINT    SharedGlobalVariables;
763     UINT    Techniques;
764 }
765
766 extern (C) const GUID IID_ID3D10Effect = {0x51b0ca8b, 0xec0b, 0x4519, [0x87, 0xd, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7]};
767
768 interface ID3D10Effect : IUnknown {
769     extern(Windows) :
770     BOOL IsValid();
771     BOOL IsPool();
772     HRESULT GetDevice(ID3D10Device* ppDevice);
773     HRESULT GetDesc(D3D10_EFFECT_DESC* pDesc);
774     ID3D10EffectConstantBuffer GetConstantBufferByIndex(UINT Index);
775     ID3D10EffectConstantBuffer GetConstantBufferByName(LPCSTR Name);
776     ID3D10EffectVariable GetVariableByIndex(UINT Index);
777     ID3D10EffectVariable GetVariableByName(LPCSTR Name);
778     ID3D10EffectVariable GetVariableBySemantic(LPCSTR Semantic);
779     ID3D10EffectTechnique GetTechniqueByIndex(UINT Index);
780     ID3D10EffectTechnique GetTechniqueByName(LPCSTR Name);
781     HRESULT Optimize();
782     BOOL IsOptimized();
783 }
784
785 extern (C) const GUID IID_ID3D10EffectPool = {0x9537ab04, 0x3250, 0x412e, [0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33]};
786
787 interface ID3D10EffectPool : IUnknown {
788     extern(Windows) :
789     ID3D10Effect AsEffect();
790 }
791
792 HRESULT D3D10CompileEffectFromMemory(void* pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Blob* ppCompiledEffect, ID3D10Blob* ppErrors);
793 HRESULT D3D10CreateEffectFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3D10Effect* ppEffect);
794 HRESULT D3D10CreateEffectPoolFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool* ppEffectPool);
795 HRESULT D3D10DisassembleEffect(ID3D10Effect pEffect, BOOL EnableColorCode, ID3D10Blob* ppDisassembly);
Note: See TracBrowser for help on using the browser.