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