raSystem  1.0 bata
d3dx11effect.h
Go to the documentation of this file.
1 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // File: D3DX11Effect.h
6 // Content: D3DX11 Effect Types & APIs Header
7 //
9 
10 #ifndef __D3DX11EFFECT_H__
11 #define __D3DX11EFFECT_H__
12 
13 #include "d3d11.h"
14 #include "d3d11shader.h"
15 
17 // File contents:
18 //
19 // 1) Stateblock enums, structs, interfaces, flat APIs
20 // 2) Effect enums, structs, interfaces, flat APIs
22 
23 #ifndef D3DX11_BYTES_FROM_BITS
24 #define D3DX11_BYTES_FROM_BITS(x) (((x) + 7) / 8)
25 #endif // D3DX11_BYTES_FROM_BITS
26 
28 {
29  BYTE VS;
30  BYTE VSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)];
31  BYTE VSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
32  BYTE VSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
33  BYTE VSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)];
34 
35  BYTE HS;
36  BYTE HSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)];
37  BYTE HSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
38  BYTE HSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
39  BYTE HSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)];
40 
41  BYTE DS;
42  BYTE DSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)];
43  BYTE DSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
44  BYTE DSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
45  BYTE DSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)];
46 
47  BYTE GS;
48  BYTE GSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)];
49  BYTE GSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
50  BYTE GSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
51  BYTE GSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)];
52 
53  BYTE PS;
54  BYTE PSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)];
55  BYTE PSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
56  BYTE PSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
57  BYTE PSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)];
59 
60  BYTE CS;
61  BYTE CSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)];
62  BYTE CSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
63  BYTE CSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
64  BYTE CSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)];
66 
67  BYTE IAVertexBuffers[D3DX11_BYTES_FROM_BITS(D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
71 
75 
79 
80  BYTE SOBuffers;
81 
84 
85 //----------------------------------------------------------------------------
86 // D3DX11_EFFECT flags:
87 // -------------------------------------
88 //
89 // These flags are passed in when creating an effect, and affect
90 // the runtime effect behavior:
91 //
92 // (Currently none)
93 //
94 //
95 // These flags are set by the effect runtime:
96 //
97 // D3DX11_EFFECT_OPTIMIZED
98 // This effect has been optimized. Reflection functions that rely on
99 // names/semantics/strings should fail. This is set when Optimize() is
100 // called, but CEffect::IsOptimized() should be used to test for this.
101 //
102 // D3DX11_EFFECT_CLONE
103 // This effect is a clone of another effect. Single CBs will never be
104 // updated when internal variable values are changed.
105 // This flag is not set when the D3DX11_EFFECT_CLONE_FORCE_NONSINGLE flag
106 // is used in cloning.
107 //
108 //----------------------------------------------------------------------------
109 
110 #define D3DX11_EFFECT_OPTIMIZED (1 << 21)
111 #define D3DX11_EFFECT_CLONE (1 << 22)
112 
113 // These are the only valid parameter flags to D3DX11CreateEffect*
114 #define D3DX11_EFFECT_RUNTIME_VALID_FLAGS (0)
115 
116 //----------------------------------------------------------------------------
117 // D3DX11_EFFECT_VARIABLE flags:
118 // ----------------------------
119 //
120 // These flags describe an effect variable (global or annotation),
121 // and are returned in D3DX11_EFFECT_VARIABLE_DESC::Flags.
122 //
123 // D3DX11_EFFECT_VARIABLE_ANNOTATION
124 // Indicates that this is an annotation on a technique, pass, or global
125 // variable. Otherwise, this is a global variable. Annotations cannot
126 // be shared.
127 //
128 // D3DX11_EFFECT_VARIABLE_EXPLICIT_BIND_POINT
129 // Indicates that the variable has been explicitly bound using the
130 // register keyword.
131 //----------------------------------------------------------------------------
132 
133 #define D3DX11_EFFECT_VARIABLE_ANNOTATION (1 << 1)
134 #define D3DX11_EFFECT_VARIABLE_EXPLICIT_BIND_POINT (1 << 2)
135 
136 //----------------------------------------------------------------------------
137 // D3DX11_EFFECT_CLONE flags:
138 // ----------------------------
139 //
140 // These flags modify the effect cloning process and are passed into Clone.
141 //
142 // D3DX11_EFFECT_CLONE_FORCE_NONSINGLE
143 // Ignore all "single" qualifiers on cbuffers. All cbuffers will have their
144 // own ID3D11Buffer's created in the cloned effect.
145 //----------------------------------------------------------------------------
146 
147 #define D3DX11_EFFECT_CLONE_FORCE_NONSINGLE (1 << 0)
148 
149 //----------------------------------------------------------------------------
150 // D3DX11_EFFECT_PASS flags:
151 // ----------------------------
152 //
153 // These flags modify the effect cloning process and are passed into Clone.
154 //
155 // D3DX11_EFFECT_PASS_COMMIT_CHANGES
156 // This flag tells the effect runtime to assume that the device state was
157 // not modified outside of effects, so that only updated state needs to
158 // be set.
159 //
160 // D3DX11_EFFECT_PASS_OMIT_*
161 // When applying a pass, do not set the state indicated in the flag name.
162 //----------------------------------------------------------------------------
163 
164 #define D3DX11_EFFECT_PASS_COMMIT_CHANGES (1 << 0) // TODO: not yet implemented
165 #define D3DX11_EFFECT_PASS_OMIT_SHADERS_AND_INTERFACES (1 << 1) // TODO: not yet implemented
166 #define D3DX11_EFFECT_PASS_OMIT_STATE_OBJECTS (1 << 2) // TODO: not yet implemented
167 #define D3DX11_EFFECT_PASS_OMIT_RTVS_AND_DSVS (1 << 3) // TODO: not yet implemented
168 #define D3DX11_EFFECT_PASS_OMIT_SAMPLERS (1 << 4) // TODO: not yet implemented
169 #define D3DX11_EFFECT_PASS_OMIT_CBS (1 << 5) // TODO: not yet implemented
170 #define D3DX11_EFFECT_PASS_OMIT_SRVS (1 << 6) // TODO: not yet implemented
171 #define D3DX11_EFFECT_PASS_OMIT_UAVS (1 << 7) // TODO: not yet implemented
172 
173 #define D3DX11_EFFECT_PASS_ONLY_SET_SHADERS_AND_CBS ( D3DX11_EFFECT_PASS_OMIT_STATE_OBJECTS | \
174  D3DX11_EFFECT_PASS_OMIT_RTVS_AND_DSVS | \
175  D3DX11_EFFECT_PASS_OMIT_SAMPLERS | \
176  D3DX11_EFFECT_PASS_OMIT_SRVS | \
177  D3DX11_EFFECT_PASS_OMIT_UAVS );
178 
180 // ID3DX11EffectType //////////////////////////////////////////////////////////
182 
183 //----------------------------------------------------------------------------
184 // D3DX11_EFFECT_TYPE_DESC:
185 //
186 // Retrieved by ID3DX11EffectType::GetDesc()
187 //----------------------------------------------------------------------------
188 
190 {
191  LPCSTR TypeName; // Name of the type
192  // (e.g. "float4" or "MyStruct")
193 
194  D3D10_SHADER_VARIABLE_CLASS Class; // (e.g. scalar, vector, object, etc.)
195  D3D10_SHADER_VARIABLE_TYPE Type; // (e.g. float, texture, vertexshader, etc.)
196 
197  UINT Elements; // Number of elements in this type
198  // (0 if not an array)
199  UINT Members; // Number of members
200  // (0 if not a structure)
201  UINT Rows; // Number of rows in this type
202  // (0 if not a numeric primitive)
203  UINT Columns; // Number of columns in this type
204  // (0 if not a numeric primitive)
205 
206  UINT PackedSize; // Number of bytes required to represent
207  // this data type, when tightly packed
208  UINT UnpackedSize; // Number of bytes occupied by this data
209  // type, when laid out in a constant buffer
210  UINT Stride; // Number of bytes to seek between elements,
211  // when laid out in a constant buffer
213 
216 
217 // {4250D721-D5E5-491F-B62B-587C43186285}
218 DEFINE_GUID(IID_ID3DX11EffectType,
219  0x4250d721, 0xd5e5, 0x491f, 0xb6, 0x2b, 0x58, 0x7c, 0x43, 0x18, 0x62, 0x85);
220 
221 #undef INTERFACE
222 #define INTERFACE ID3DX11EffectType
223 
225 {
226  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
227  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_TYPE_DESC *pDesc) PURE;
228  STDMETHOD_(ID3DX11EffectType*, GetMemberTypeByIndex)(THIS_ UINT Index) PURE;
229  STDMETHOD_(ID3DX11EffectType*, GetMemberTypeByName)(THIS_ LPCSTR Name) PURE;
230  STDMETHOD_(ID3DX11EffectType*, GetMemberTypeBySemantic)(THIS_ LPCSTR Semantic) PURE;
231  STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT Index) PURE;
232  STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT Index) PURE;
233 };
234 
236 // ID3DX11EffectVariable //////////////////////////////////////////////////////
238 
239 //----------------------------------------------------------------------------
240 // D3DX11_EFFECT_VARIABLE_DESC:
241 //
242 // Retrieved by ID3DX11EffectVariable::GetDesc()
243 //----------------------------------------------------------------------------
244 
246 {
247  LPCSTR Name; // Name of this variable, annotation,
248  // or structure member
249  LPCSTR Semantic; // Semantic string of this variable
250  // or structure member (NULL for
251  // annotations or if not present)
252 
253  UINT Flags; // D3DX11_EFFECT_VARIABLE_* flags
254  UINT Annotations; // Number of annotations on this variable
255  // (always 0 for annotations)
256 
257  UINT BufferOffset; // Offset into containing cbuffer or tbuffer
258  // (always 0 for annotations or variables
259  // not in constant buffers)
260 
261  UINT ExplicitBindPoint; // Used if the variable has been explicitly bound
262  // using the register keyword. Check Flags for
263  // D3DX11_EFFECT_VARIABLE_EXPLICIT_BIND_POINT;
265 
268 
269 // {036A777D-B56E-4B25-B313-CC3DDAB71873}
270 DEFINE_GUID(IID_ID3DX11EffectVariable,
271  0x036a777d, 0xb56e, 0x4b25, 0xb3, 0x13, 0xcc, 0x3d, 0xda, 0xb7, 0x18, 0x73);
272 
273 #undef INTERFACE
274 #define INTERFACE ID3DX11EffectVariable
275 
276 // Forward defines
293 
295 {
296  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
297  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
298  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
299 
300  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
301  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
302 
303  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
304  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
305  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
306 
307  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
308 
309  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
310 
311  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
312  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
313  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
314  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
315  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
316  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
317  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
318  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
319  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
320  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
321  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
322  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
323  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
324  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
325  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
326  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
327 
328  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
329  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
330 };
331 
333 // ID3DX11EffectScalarVariable ////////////////////////////////////////////////
335 
338 
339 // {921EF2E5-A65D-4E92-9FC6-4E9CC09A4ADE}
340 DEFINE_GUID(IID_ID3DX11EffectScalarVariable,
341  0x921ef2e5, 0xa65d, 0x4e92, 0x9f, 0xc6, 0x4e, 0x9c, 0xc0, 0x9a, 0x4a, 0xde);
342 
343 #undef INTERFACE
344 #define INTERFACE ID3DX11EffectScalarVariable
345 
347 {
348  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
349  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
350  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
351 
352  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
353  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
354 
355  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
356  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
357  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
358 
359  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
360 
361  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
362 
363  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
364  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
365  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
366  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
367  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
368  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
369  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
370  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
371  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
372  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
373  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
374  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
375  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
376  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
377  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
378  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
379 
380  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT ByteOffset, UINT ByteCount) PURE;
381  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
382 
383  STDMETHOD(SetFloat)(THIS_ CONST float Value) PURE;
384  STDMETHOD(GetFloat)(THIS_ float *pValue) PURE;
385 
386  STDMETHOD(SetFloatArray)(THIS_ CONST float *pData, UINT Offset, UINT Count) PURE;
387  STDMETHOD(GetFloatArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
388 
389  STDMETHOD(SetInt)(THIS_ CONST int Value) PURE;
390  STDMETHOD(GetInt)(THIS_ int *pValue) PURE;
391 
392  STDMETHOD(SetIntArray)(THIS_ CONST int *pData, UINT Offset, UINT Count) PURE;
393  STDMETHOD(GetIntArray)(THIS_ int *pData, UINT Offset, UINT Count) PURE;
394 
395  STDMETHOD(SetBool)(THIS_ CONST BOOL Value) PURE;
396  STDMETHOD(GetBool)(THIS_ BOOL *pValue) PURE;
397 
398  STDMETHOD(SetBoolArray)(THIS_ CONST BOOL *pData, UINT Offset, UINT Count) PURE;
399  STDMETHOD(GetBoolArray)(THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
400 };
401 
403 // ID3DX11EffectVectorVariable ////////////////////////////////////////////////
405 
408 
409 // {5E785D4A-D87B-48D8-B6E6-0F8CA7E7467A}
410 DEFINE_GUID(IID_ID3DX11EffectVectorVariable,
411  0x5e785d4a, 0xd87b, 0x48d8, 0xb6, 0xe6, 0x0f, 0x8c, 0xa7, 0xe7, 0x46, 0x7a);
412 
413 #undef INTERFACE
414 #define INTERFACE ID3DX11EffectVectorVariable
415 
417 {
418  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
419  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
420  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
421 
422  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
423  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
424 
425  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
426  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
427  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
428 
429  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
430 
431  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
432 
433  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
434  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
435  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
436  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
437  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
438  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
439  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
440  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
441  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
442  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
443  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
444  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
445  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
446  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
447  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
448  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
449 
450  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT ByteOffset, UINT ByteCount) PURE;
451  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
452 
453  STDMETHOD(SetBoolVector) (THIS_ CONST BOOL *pData) PURE;
454  STDMETHOD(SetIntVector) (THIS_ CONST int *pData) PURE;
455  STDMETHOD(SetFloatVector)(THIS_ CONST float *pData) PURE;
456 
457  STDMETHOD(GetBoolVector) (THIS_ BOOL *pData) PURE;
458  STDMETHOD(GetIntVector) (THIS_ int *pData) PURE;
459  STDMETHOD(GetFloatVector)(THIS_ float *pData) PURE;
460 
461  STDMETHOD(SetBoolVectorArray) (THIS_ CONST BOOL *pData, UINT Offset, UINT Count) PURE;
462  STDMETHOD(SetIntVectorArray) (THIS_ CONST int *pData, UINT Offset, UINT Count) PURE;
463  STDMETHOD(SetFloatVectorArray)(THIS_ CONST float *pData, UINT Offset, UINT Count) PURE;
464 
465  STDMETHOD(GetBoolVectorArray) (THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
466  STDMETHOD(GetIntVectorArray) (THIS_ int *pData, UINT Offset, UINT Count) PURE;
467  STDMETHOD(GetFloatVectorArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
468 };
469 
471 // ID3DX11EffectMatrixVariable ////////////////////////////////////////////////
473 
476 
477 // {E1096CF4-C027-419A-8D86-D29173DC803E}
478 DEFINE_GUID(IID_ID3DX11EffectMatrixVariable,
479  0xe1096cf4, 0xc027, 0x419a, 0x8d, 0x86, 0xd2, 0x91, 0x73, 0xdc, 0x80, 0x3e);
480 
481 #undef INTERFACE
482 #define INTERFACE ID3DX11EffectMatrixVariable
483 
485 {
486  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
487  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
488  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
489 
490  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
491  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
492 
493  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
494  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
495  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
496 
497  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
498 
499  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
500 
501  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
502  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
503  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
504  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
505  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
506  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
507  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
508  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
509  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
510  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
511  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
512  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
513  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
514  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
515  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
516  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
517 
518  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT ByteOffset, UINT ByteCount) PURE;
519  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
520 
521  STDMETHOD(SetMatrix)(THIS_ CONST float *pData) PURE;
522  STDMETHOD(GetMatrix)(THIS_ float *pData) PURE;
523 
524  STDMETHOD(SetMatrixArray)(THIS_ CONST float *pData, UINT Offset, UINT Count) PURE;
525  STDMETHOD(GetMatrixArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
526 
527  STDMETHOD(SetMatrixTranspose)(THIS_ CONST float *pData) PURE;
528  STDMETHOD(GetMatrixTranspose)(THIS_ float *pData) PURE;
529 
530  STDMETHOD(SetMatrixTransposeArray)(THIS_ CONST float *pData, UINT Offset, UINT Count) PURE;
531  STDMETHOD(GetMatrixTransposeArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
532 };
533 
535 // ID3DX11EffectStringVariable ////////////////////////////////////////////////
537 
540 
541 // {F355C818-01BE-4653-A7CC-60FFFEDDC76D}
542 DEFINE_GUID(IID_ID3DX11EffectStringVariable,
543  0xf355c818, 0x01be, 0x4653, 0xa7, 0xcc, 0x60, 0xff, 0xfe, 0xdd, 0xc7, 0x6d);
544 
545 #undef INTERFACE
546 #define INTERFACE ID3DX11EffectStringVariable
547 
549 {
550  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
551  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
552  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
553 
554  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
555  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
556 
557  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
558  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
559  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
560 
561  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
562 
563  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
564 
565  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
566  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
567  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
568  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
569  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
570  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
571  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
572  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
573  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
574  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
575  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
576  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
577  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
578  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
579  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
580  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
581 
582  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
583  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
584 
585  STDMETHOD(GetString)(THIS_ LPCSTR *ppString) PURE;
586  STDMETHOD(GetStringArray)(THIS_ LPCSTR *ppStrings, UINT Offset, UINT Count) PURE;
587 };
588 
590 // ID3DX11EffectClassInstanceVariable ////////////////////////////////////////
592 
595 
596 // {926A8053-2A39-4DB4-9BDE-CF649ADEBDC1}
597 DEFINE_GUID(IID_ID3DX11EffectClassInstanceVariable,
598  0x926a8053, 0x2a39, 0x4db4, 0x9b, 0xde, 0xcf, 0x64, 0x9a, 0xde, 0xbd, 0xc1);
599 
600 #undef INTERFACE
601 #define INTERFACE ID3DX11EffectClassInstanceVariable
602 
604 {
605  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
606  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
607  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
608 
609  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
610  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
611 
612  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
613  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
614  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
615 
616  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
617 
618  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
619 
620  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
621  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
622  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
623  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
624  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
625  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
626  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
627  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
628  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
629  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
630  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
631  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
632  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
633  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
634  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
635 
636  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
637  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
638 
639  STDMETHOD(GetClassInstance)(ID3D11ClassInstance** ppClassInstance) PURE;
640 };
641 
643 // ID3DX11EffectInterfaceVariable ////////////////////////////////////////
645 
648 
649 // {516C8CD8-1C80-40A4-B19B-0688792F11A5}
650 DEFINE_GUID(IID_ID3DX11EffectInterfaceVariable,
651  0x516c8cd8, 0x1c80, 0x40a4, 0xb1, 0x9b, 0x06, 0x88, 0x79, 0x2f, 0x11, 0xa5);
652 
653 #undef INTERFACE
654 #define INTERFACE ID3DX11EffectInterfaceVariable
655 
657 {
658  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
659  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
660  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
661 
662  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
663  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
664 
665  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
666  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
667  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
668 
669  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
670 
671  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
672 
673  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
674  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
675  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
676  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
677  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
678  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
679  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
680  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
681  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
682  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
683  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
684  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
685  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
686  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
687  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
688 
689  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
690  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
691 
692  STDMETHOD(SetClassInstance)(ID3DX11EffectClassInstanceVariable *pEffectClassInstance) PURE;
693  STDMETHOD(GetClassInstance)(ID3DX11EffectClassInstanceVariable **ppEffectClassInstance) PURE;
694 };
695 
697 // ID3DX11EffectShaderResourceVariable ////////////////////////////////////////
699 
702 
703 // {350DB233-BBE0-485C-9BFE-C0026B844F89}
704 DEFINE_GUID(IID_ID3DX11EffectShaderResourceVariable,
705  0x350db233, 0xbbe0, 0x485c, 0x9b, 0xfe, 0xc0, 0x02, 0x6b, 0x84, 0x4f, 0x89);
706 
707 #undef INTERFACE
708 #define INTERFACE ID3DX11EffectShaderResourceVariable
709 
711 {
712  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
713  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
714  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
715 
716  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
717  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
718 
719  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
720  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
721  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
722 
723  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
724 
725  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
726 
727  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
728  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
729  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
730  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
731  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
732  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
733  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
734  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
735  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
736  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
737  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
738  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
739  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
740  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
741  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
742  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
743 
744  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
745  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
746 
747  STDMETHOD(SetResource)(THIS_ ID3D11ShaderResourceView *pResource) PURE;
748  STDMETHOD(GetResource)(THIS_ ID3D11ShaderResourceView **ppResource) PURE;
749 
750  STDMETHOD(SetResourceArray)(THIS_ ID3D11ShaderResourceView **ppResources, UINT Offset, UINT Count) PURE;
751  STDMETHOD(GetResourceArray)(THIS_ ID3D11ShaderResourceView **ppResources, UINT Offset, UINT Count) PURE;
752 };
753 
755 // ID3DX11EffectUnorderedAccessViewVariable ////////////////////////////////////////
757 
760 
761 // {79B4AC8C-870A-47D2-B05A-8BD5CC3EE6C9}
762 DEFINE_GUID(IID_ID3DX11EffectUnorderedAccessViewVariable,
763  0x79b4ac8c, 0x870a, 0x47d2, 0xb0, 0x5a, 0x8b, 0xd5, 0xcc, 0x3e, 0xe6, 0xc9);
764 
765 #undef INTERFACE
766 #define INTERFACE ID3DX11EffectUnorderedAccessViewVariable
767 
769 {
770  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
771  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
772  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
773 
774  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
775  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
776 
777  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
778  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
779  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
780 
781  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
782 
783  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
784 
785  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
786  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
787  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
788  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
789  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
790  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
791  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
792  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
793  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
794  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
795  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
796  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
797  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
798  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
799  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
800  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
801 
802  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
803  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
804 
805  STDMETHOD(SetUnorderedAccessView)(THIS_ ID3D11UnorderedAccessView *pResource) PURE;
806  STDMETHOD(GetUnorderedAccessView)(THIS_ ID3D11UnorderedAccessView **ppResource) PURE;
807 
808  STDMETHOD(SetUnorderedAccessViewArray)(THIS_ ID3D11UnorderedAccessView **ppResources, UINT Offset, UINT Count) PURE;
809  STDMETHOD(GetUnorderedAccessViewArray)(THIS_ ID3D11UnorderedAccessView **ppResources, UINT Offset, UINT Count) PURE;
810 };
811 
813 // ID3DX11EffectRenderTargetViewVariable //////////////////////////////////////
815 
818 
819 // {D5066909-F40C-43F8-9DB5-057C2A208552}
820 DEFINE_GUID(IID_ID3DX11EffectRenderTargetViewVariable,
821  0xd5066909, 0xf40c, 0x43f8, 0x9d, 0xb5, 0x05, 0x7c, 0x2a, 0x20, 0x85, 0x52);
822 
823 #undef INTERFACE
824 #define INTERFACE ID3DX11EffectRenderTargetViewVariable
825 
827 {
828  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
829  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
830  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
831 
832  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
833  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
834 
835  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
836  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
837  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
838 
839  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
840 
841  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
842 
843  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
844  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
845  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
846  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
847  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
848  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
849  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
850  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
851  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
852  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
853  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
854  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
855  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
856  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
857  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
858  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
859 
860  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
861  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
862 
863  STDMETHOD(SetRenderTarget)(THIS_ ID3D11RenderTargetView *pResource) PURE;
864  STDMETHOD(GetRenderTarget)(THIS_ ID3D11RenderTargetView **ppResource) PURE;
865 
866  STDMETHOD(SetRenderTargetArray)(THIS_ ID3D11RenderTargetView **ppResources, UINT Offset, UINT Count) PURE;
867  STDMETHOD(GetRenderTargetArray)(THIS_ ID3D11RenderTargetView **ppResources, UINT Offset, UINT Count) PURE;
868 };
869 
871 // ID3DX11EffectDepthStencilViewVariable //////////////////////////////////////
873 
876 
877 // {33C648AC-2E9E-4A2E-9CD6-DE31ACC5B347}
878 DEFINE_GUID(IID_ID3DX11EffectDepthStencilViewVariable,
879  0x33c648ac, 0x2e9e, 0x4a2e, 0x9c, 0xd6, 0xde, 0x31, 0xac, 0xc5, 0xb3, 0x47);
880 
881 #undef INTERFACE
882 #define INTERFACE ID3DX11EffectDepthStencilViewVariable
883 
885 {
886  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
887  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
888  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
889 
890  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
891  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
892 
893  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
894  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
895  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
896 
897  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
898 
899  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
900 
901  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
902  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
903  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
904  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
905  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
906  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
907  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
908  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
909  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
910  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
911  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
912  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
913  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
914  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
915  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
916  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
917 
918  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
919  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
920 
921  STDMETHOD(SetDepthStencil)(THIS_ ID3D11DepthStencilView *pResource) PURE;
922  STDMETHOD(GetDepthStencil)(THIS_ ID3D11DepthStencilView **ppResource) PURE;
923 
924  STDMETHOD(SetDepthStencilArray)(THIS_ ID3D11DepthStencilView **ppResources, UINT Offset, UINT Count) PURE;
925  STDMETHOD(GetDepthStencilArray)(THIS_ ID3D11DepthStencilView **ppResources, UINT Offset, UINT Count) PURE;
926 };
927 
929 // ID3DX11EffectConstantBuffer ////////////////////////////////////////////////
931 
934 
935 // {2CB6C733-82D2-4000-B3DA-6219D9A99BF2}
936 DEFINE_GUID(IID_ID3DX11EffectConstantBuffer,
937  0x2cb6c733, 0x82d2, 0x4000, 0xb3, 0xda, 0x62, 0x19, 0xd9, 0xa9, 0x9b, 0xf2);
938 
939 #undef INTERFACE
940 #define INTERFACE ID3DX11EffectConstantBuffer
941 
943 {
944  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
945  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
946 
947  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
948  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
949 
950  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
951  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
952  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
953 
954  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
955 
956  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
957 
958  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
959  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
960  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
961  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
962  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
963  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
964  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
965  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
966  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
967  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
968  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
969  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
970  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
971  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
972  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
973  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
974 
975  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
976  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
977 
978  STDMETHOD(SetConstantBuffer)(THIS_ ID3D11Buffer *pConstantBuffer) PURE;
979  STDMETHOD(UndoSetConstantBuffer)(THIS) PURE;
980  STDMETHOD(GetConstantBuffer)(THIS_ ID3D11Buffer **ppConstantBuffer) PURE;
981 
982  STDMETHOD(SetTextureBuffer)(THIS_ ID3D11ShaderResourceView *pTextureBuffer) PURE;
983  STDMETHOD(UndoSetTextureBuffer)(THIS) PURE;
984  STDMETHOD(GetTextureBuffer)(THIS_ ID3D11ShaderResourceView **ppTextureBuffer) PURE;
985 };
986 
988 // ID3DX11EffectShaderVariable ////////////////////////////////////////////////
990 
991 //----------------------------------------------------------------------------
992 // D3DX11_EFFECT_SHADER_DESC:
993 //
994 // Retrieved by ID3DX11EffectShaderVariable::GetShaderDesc()
995 //----------------------------------------------------------------------------
996 
998 {
999  CONST BYTE *pInputSignature; // Passed into CreateInputLayout,
1000  // valid on VS and GS only
1001 
1002  BOOL IsInline; // Is this an anonymous shader variable
1003  // resulting from an inline shader assignment?
1004 
1005 
1006  // -- The following fields are not valid after Optimize() --
1007  CONST BYTE *pBytecode; // Shader bytecode
1009 
1010  LPCSTR SODecls[D3D11_SO_STREAM_COUNT]; // Stream out declaration string (for GS with SO)
1012 
1013  UINT NumInputSignatureEntries; // Number of entries in the input signature
1014  UINT NumOutputSignatureEntries; // Number of entries in the output signature
1015  UINT NumPatchConstantSignatureEntries; // Number of entries in the patch constant signature
1017 
1018 
1021 
1022 // {7508B344-020A-4EC7-9118-62CDD36C88D7}
1023 DEFINE_GUID(IID_ID3DX11EffectShaderVariable,
1024  0x7508b344, 0x020a, 0x4ec7, 0x91, 0x18, 0x62, 0xcd, 0xd3, 0x6c, 0x88, 0xd7);
1025 
1026 #undef INTERFACE
1027 #define INTERFACE ID3DX11EffectShaderVariable
1028 
1030 {
1031  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
1032  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
1033 
1034  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1035  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1036 
1037  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1038  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1039  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1040 
1041  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1042 
1043  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1044 
1045  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
1046  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
1047  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1048  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
1049  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
1050  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
1051  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1052  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
1053  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1054  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1055  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1056  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
1057  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
1058  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1059  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1060  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
1061 
1062  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
1063  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1064 
1065  STDMETHOD(GetShaderDesc)(THIS_ UINT ShaderIndex, D3DX11_EFFECT_SHADER_DESC *pDesc) PURE;
1066 
1067  STDMETHOD(GetVertexShader)(THIS_ UINT ShaderIndex, ID3D11VertexShader **ppVS) PURE;
1068  STDMETHOD(GetGeometryShader)(THIS_ UINT ShaderIndex, ID3D11GeometryShader **ppGS) PURE;
1069  STDMETHOD(GetPixelShader)(THIS_ UINT ShaderIndex, ID3D11PixelShader **ppPS) PURE;
1070  STDMETHOD(GetHullShader)(THIS_ UINT ShaderIndex, ID3D11HullShader **ppPS) PURE;
1071  STDMETHOD(GetDomainShader)(THIS_ UINT ShaderIndex, ID3D11DomainShader **ppPS) PURE;
1072  STDMETHOD(GetComputeShader)(THIS_ UINT ShaderIndex, ID3D11ComputeShader **ppPS) PURE;
1073 
1074  STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
1075  STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
1076  STDMETHOD(GetPatchConstantSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
1077 };
1078 
1080 // ID3DX11EffectBlendVariable /////////////////////////////////////////////////
1082 
1085 
1086 // {D664F4D7-3B81-4805-B277-C1DF58C39F53}
1087 DEFINE_GUID(IID_ID3DX11EffectBlendVariable,
1088  0xd664f4d7, 0x3b81, 0x4805, 0xb2, 0x77, 0xc1, 0xdf, 0x58, 0xc3, 0x9f, 0x53);
1089 
1090 #undef INTERFACE
1091 #define INTERFACE ID3DX11EffectBlendVariable
1092 
1094 {
1095  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
1096  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
1097 
1098  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1099  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1100 
1101  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1102  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1103  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1104 
1105  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1106 
1107  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1108 
1109  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
1110  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
1111  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1112  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
1113  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
1114  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
1115  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1116  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
1117  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1118  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1119  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1120  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
1121  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
1122  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1123  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1124  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
1125 
1126  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
1127  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1128 
1129  STDMETHOD(GetBlendState)(THIS_ UINT Index, ID3D11BlendState **ppBlendState) PURE;
1130  STDMETHOD(SetBlendState)(THIS_ UINT Index, ID3D11BlendState *pBlendState) PURE;
1131  STDMETHOD(UndoSetBlendState)(THIS_ UINT Index) PURE;
1132  STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D11_BLEND_DESC *pBlendDesc) PURE;
1133 };
1134 
1136 // ID3DX11EffectDepthStencilVariable //////////////////////////////////////////
1138 
1141 
1142 // {69B5751B-61A5-48E5-BD41-D93988111563}
1143 DEFINE_GUID(IID_ID3DX11EffectDepthStencilVariable,
1144  0x69b5751b, 0x61a5, 0x48e5, 0xbd, 0x41, 0xd9, 0x39, 0x88, 0x11, 0x15, 0x63);
1145 
1146 #undef INTERFACE
1147 #define INTERFACE ID3DX11EffectDepthStencilVariable
1148 
1150 {
1151  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
1152  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
1153 
1154  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1155  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1156 
1157  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1158  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1159  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1160 
1161  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1162 
1163  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1164 
1165  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
1166  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
1167  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1168  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
1169  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
1170  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
1171  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1172  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
1173  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1174  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1175  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1176  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
1177  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
1178  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1179  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1180  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
1181 
1182  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
1183  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1184 
1185  STDMETHOD(GetDepthStencilState)(THIS_ UINT Index, ID3D11DepthStencilState **ppDepthStencilState) PURE;
1186  STDMETHOD(SetDepthStencilState)(THIS_ UINT Index, ID3D11DepthStencilState *pDepthStencilState) PURE;
1187  STDMETHOD(UndoSetDepthStencilState)(THIS_ UINT Index) PURE;
1188  STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc) PURE;
1189 };
1190 
1192 // ID3DX11EffectRasterizerVariable ////////////////////////////////////////////
1194 
1197 
1198 // {53A262F6-5F74-4151-A132-E3DD19A62C9D}
1199 DEFINE_GUID(IID_ID3DX11EffectRasterizerVariable,
1200  0x53a262f6, 0x5f74, 0x4151, 0xa1, 0x32, 0xe3, 0xdd, 0x19, 0xa6, 0x2c, 0x9d);
1201 
1202 #undef INTERFACE
1203 #define INTERFACE ID3DX11EffectRasterizerVariable
1204 
1206 {
1207  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
1208  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
1209 
1210  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1211  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1212 
1213  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1214  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1215  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1216 
1217  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1218 
1219  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1220 
1221  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
1222  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
1223  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1224  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
1225  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
1226  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
1227  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1228  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
1229  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1230  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1231  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1232  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
1233  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
1234  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1235  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1236  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
1237 
1238  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
1239  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1240 
1241  STDMETHOD(GetRasterizerState)(THIS_ UINT Index, ID3D11RasterizerState **ppRasterizerState) PURE;
1242  STDMETHOD(SetRasterizerState)(THIS_ UINT Index, ID3D11RasterizerState *pRasterizerState) PURE;
1243  STDMETHOD(UndoSetRasterizerState)(THIS_ UINT Index) PURE;
1244  STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D11_RASTERIZER_DESC *pRasterizerDesc) PURE;
1245 };
1246 
1248 // ID3DX11EffectSamplerVariable ///////////////////////////////////////////////
1250 
1253 
1254 // {C6402E55-1095-4D95-8931-F92660513DD9}
1255 DEFINE_GUID(IID_ID3DX11EffectSamplerVariable,
1256  0xc6402e55, 0x1095, 0x4d95, 0x89, 0x31, 0xf9, 0x26, 0x60, 0x51, 0x3d, 0xd9);
1257 
1258 #undef INTERFACE
1259 #define INTERFACE ID3DX11EffectSamplerVariable
1260 
1262 {
1263  STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
1264  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
1265 
1266  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1267  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1268 
1269  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1270  STDMETHOD_(ID3DX11EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1271  STDMETHOD_(ID3DX11EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1272 
1273  STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1274 
1275  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1276 
1277  STDMETHOD_(ID3DX11EffectScalarVariable*, AsScalar)(THIS) PURE;
1278  STDMETHOD_(ID3DX11EffectVectorVariable*, AsVector)(THIS) PURE;
1279  STDMETHOD_(ID3DX11EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1280  STDMETHOD_(ID3DX11EffectStringVariable*, AsString)(THIS) PURE;
1281  STDMETHOD_(ID3DX11EffectClassInstanceVariable*, AsClassInstance)(THIS) PURE;
1282  STDMETHOD_(ID3DX11EffectInterfaceVariable*, AsInterface)(THIS) PURE;
1283  STDMETHOD_(ID3DX11EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1284  STDMETHOD_(ID3DX11EffectUnorderedAccessViewVariable*, AsUnorderedAccessView)(THIS) PURE;
1285  STDMETHOD_(ID3DX11EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1286  STDMETHOD_(ID3DX11EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1287  STDMETHOD_(ID3DX11EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1288  STDMETHOD_(ID3DX11EffectShaderVariable*, AsShader)(THIS) PURE;
1289  STDMETHOD_(ID3DX11EffectBlendVariable*, AsBlend)(THIS) PURE;
1290  STDMETHOD_(ID3DX11EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1291  STDMETHOD_(ID3DX11EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1292  STDMETHOD_(ID3DX11EffectSamplerVariable*, AsSampler)(THIS) PURE;
1293 
1294  STDMETHOD(SetRawValue)(THIS_ CONST void *pData, UINT Offset, UINT Count) PURE;
1295  STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1296 
1297  STDMETHOD(GetSampler)(THIS_ UINT Index, ID3D11SamplerState **ppSampler) PURE;
1298  STDMETHOD(SetSampler)(THIS_ UINT Index, ID3D11SamplerState *pSampler) PURE;
1299  STDMETHOD(UndoSetSampler)(THIS_ UINT Index) PURE;
1300  STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D11_SAMPLER_DESC *pSamplerDesc) PURE;
1301 };
1302 
1304 // ID3DX11EffectPass //////////////////////////////////////////////////////////
1306 
1307 //----------------------------------------------------------------------------
1308 // D3DX11_PASS_DESC:
1309 //
1310 // Retrieved by ID3DX11EffectPass::GetDesc()
1311 //----------------------------------------------------------------------------
1312 
1313 typedef struct _D3DX11_PASS_DESC
1314 {
1315  LPCSTR Name; // Name of this pass (NULL if not anonymous)
1316  UINT Annotations; // Number of annotations on this pass
1317 
1318  BYTE *pIAInputSignature; // Signature from VS or GS (if there is no VS)
1319  // or NULL if neither exists
1320  SIZE_T IAInputSignatureSize; // Singature size in bytes
1321 
1322  UINT StencilRef; // Specified in SetDepthStencilState()
1323  UINT SampleMask; // Specified in SetBlendState()
1324  FLOAT BlendFactor[4]; // Specified in SetBlendState()
1326 
1327 //----------------------------------------------------------------------------
1328 // D3DX11_PASS_SHADER_DESC:
1329 //
1330 // Retrieved by ID3DX11EffectPass::Get**ShaderDesc()
1331 //----------------------------------------------------------------------------
1332 
1334 {
1335  ID3DX11EffectShaderVariable *pShaderVariable; // The variable that this shader came from.
1336  // If this is an inline shader assignment,
1337  // the returned interface will be an
1338  // anonymous shader variable, which is
1339  // not retrievable any other way. It's
1340  // name in the variable description will
1341  // be "$Anonymous".
1342  // If there is no assignment of this type in
1343  // the pass block, pShaderVariable != NULL,
1344  // but pShaderVariable->IsValid() == FALSE.
1345 
1346  UINT ShaderIndex; // The element of pShaderVariable (if an array)
1347  // or 0 if not applicable
1349 
1352 
1353 // {3437CEC4-4AC1-4D87-8916-F4BD5A41380C}
1354 DEFINE_GUID(IID_ID3DX11EffectPass,
1355  0x3437cec4, 0x4ac1, 0x4d87, 0x89, 0x16, 0xf4, 0xbd, 0x5a, 0x41, 0x38, 0x0c);
1356 
1357 #undef INTERFACE
1358 #define INTERFACE ID3DX11EffectPass
1359 
1361 {
1362  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1363  STDMETHOD(GetDesc)(THIS_ D3DX11_PASS_DESC *pDesc) PURE;
1364 
1365  STDMETHOD(GetVertexShaderDesc)(THIS_ D3DX11_PASS_SHADER_DESC *pDesc) PURE;
1366  STDMETHOD(GetGeometryShaderDesc)(THIS_ D3DX11_PASS_SHADER_DESC *pDesc) PURE;
1367  STDMETHOD(GetPixelShaderDesc)(THIS_ D3DX11_PASS_SHADER_DESC *pDesc) PURE;
1368  STDMETHOD(GetHullShaderDesc)(THIS_ D3DX11_PASS_SHADER_DESC *pDesc) PURE;
1369  STDMETHOD(GetDomainShaderDesc)(THIS_ D3DX11_PASS_SHADER_DESC *pDesc) PURE;
1370  STDMETHOD(GetComputeShaderDesc)(THIS_ D3DX11_PASS_SHADER_DESC *pDesc) PURE;
1371 
1372  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1373  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1374 
1375  STDMETHOD(Apply)(THIS_ UINT Flags, ID3D11DeviceContext* pContext) PURE;
1376 
1377  STDMETHOD(ComputeStateBlockMask)(THIS_ D3DX11_STATE_BLOCK_MASK *pStateBlockMask) PURE;
1378 };
1379 
1381 // ID3DX11EffectTechnique /////////////////////////////////////////////////////
1383 
1384 //----------------------------------------------------------------------------
1385 // D3DX11_TECHNIQUE_DESC:
1386 //
1387 // Retrieved by ID3DX11EffectTechnique::GetDesc()
1388 //----------------------------------------------------------------------------
1389 
1391 {
1392  LPCSTR Name; // Name of this technique (NULL if not anonymous)
1393  UINT Passes; // Number of passes contained within
1394  UINT Annotations; // Number of annotations on this technique
1396 
1399 
1400 // {51198831-1F1D-4F47-BD76-41CB0835B1DE}
1401 DEFINE_GUID(IID_ID3DX11EffectTechnique,
1402  0x51198831, 0x1f1d, 0x4f47, 0xbd, 0x76, 0x41, 0xcb, 0x08, 0x35, 0xb1, 0xde);
1403 
1404 #undef INTERFACE
1405 #define INTERFACE ID3DX11EffectTechnique
1406 
1408 {
1409  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1410  STDMETHOD(GetDesc)(THIS_ D3DX11_TECHNIQUE_DESC *pDesc) PURE;
1411 
1412  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1413  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1414 
1415  STDMETHOD_(ID3DX11EffectPass*, GetPassByIndex)(THIS_ UINT Index) PURE;
1416  STDMETHOD_(ID3DX11EffectPass*, GetPassByName)(THIS_ LPCSTR Name) PURE;
1417 
1418  STDMETHOD(ComputeStateBlockMask)(THIS_ D3DX11_STATE_BLOCK_MASK *pStateBlockMask) PURE;
1419 };
1420 
1422 // ID3DX11EffectTechnique /////////////////////////////////////////////////////
1424 
1425 //----------------------------------------------------------------------------
1426 // D3DX11_GROUP_DESC:
1427 //
1428 // Retrieved by ID3DX11EffectTechnique::GetDesc()
1429 //----------------------------------------------------------------------------
1430 
1431 typedef struct _D3DX11_GROUP_DESC
1432 {
1433  LPCSTR Name; // Name of this group (only NULL if global)
1434  UINT Techniques; // Number of techniques contained within
1435  UINT Annotations; // Number of annotations on this group
1437 
1440 
1441 // {03074acf-97de-485f-b201-cb775264afd6}
1442 DEFINE_GUID(IID_ID3DX11EffectGroup,
1443  0x03074acf, 0x97de, 0x485f, 0xb2, 0x01, 0xcb, 0x77, 0x52, 0x64, 0xaf, 0xd6);
1444 
1445 #undef INTERFACE
1446 #define INTERFACE ID3DX11EffectGroup
1447 
1449 {
1450  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1451  STDMETHOD(GetDesc)(THIS_ D3DX11_GROUP_DESC *pDesc) PURE;
1452 
1453  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1454  STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1455 
1456  STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByIndex)(THIS_ UINT Index) PURE;
1457  STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByName)(THIS_ LPCSTR Name) PURE;
1458 };
1459 
1461 // ID3DX11Effect //////////////////////////////////////////////////////////////
1463 
1464 //----------------------------------------------------------------------------
1465 // D3DX11_EFFECT_DESC:
1466 //
1467 // Retrieved by ID3DX11Effect::GetDesc()
1468 //----------------------------------------------------------------------------
1469 
1470 typedef struct _D3DX11_EFFECT_DESC
1471 {
1472  UINT ConstantBuffers; // Number of constant buffers in this effect
1473  UINT GlobalVariables; // Number of global variables in this effect
1474  UINT InterfaceVariables; // Number of global interfaces in this effect
1475  UINT Techniques; // Number of techniques in this effect
1476  UINT Groups; // Number of groups in this effect
1478 
1479 typedef interface ID3DX11Effect ID3DX11Effect;
1480 typedef interface ID3DX11Effect *LPD3D11EFFECT;
1481 
1482 // {FA61CA24-E4BA-4262-9DB8-B132E8CAE319}
1483 DEFINE_GUID(IID_ID3DX11Effect,
1484  0xfa61ca24, 0xe4ba, 0x4262, 0x9d, 0xb8, 0xb1, 0x32, 0xe8, 0xca, 0xe3, 0x19);
1485 
1486 #undef INTERFACE
1487 #define INTERFACE ID3DX11Effect
1488 
1490 {
1491  // IUnknown
1492  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
1493  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1494  STDMETHOD_(ULONG, Release)(THIS) PURE;
1495 
1496  STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1497 
1498  // Managing D3D Device
1499  STDMETHOD(GetDevice)(THIS_ ID3D11Device** ppDevice) PURE;
1500 
1501  // New Reflection APIs
1502  STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_DESC *pDesc) PURE;
1503 
1504  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
1505  STDMETHOD_(ID3DX11EffectConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
1506 
1507  STDMETHOD_(ID3DX11EffectVariable*, GetVariableByIndex)(THIS_ UINT Index) PURE;
1508  STDMETHOD_(ID3DX11EffectVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
1509  STDMETHOD_(ID3DX11EffectVariable*, GetVariableBySemantic)(THIS_ LPCSTR Semantic) PURE;
1510 
1511  STDMETHOD_(ID3DX11EffectGroup*, GetGroupByIndex)(THIS_ UINT Index) PURE;
1512  STDMETHOD_(ID3DX11EffectGroup*, GetGroupByName)(THIS_ LPCSTR Name) PURE;
1513 
1514  STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByIndex)(THIS_ UINT Index) PURE;
1515  STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByName)(THIS_ LPCSTR Name) PURE;
1516 
1517  STDMETHOD_(ID3D11ClassLinkage*, GetClassLinkage)(THIS) PURE;
1518 
1519  STDMETHOD(CloneEffect)(THIS_ UINT Flags, ID3DX11Effect** ppClonedEffect ) PURE;
1520  STDMETHOD(Optimize)(THIS) PURE;
1521  STDMETHOD_(BOOL, IsOptimized)(THIS) PURE;
1522 };
1523 
1525 // APIs //////////////////////////////////////////////////////////////////////
1527 
1528 #ifdef __cplusplus
1529 extern "C" {
1530 #endif //__cplusplus
1531 
1532 //----------------------------------------------------------------------------
1533 // D3DX11CreateEffectFromMemory:
1534 // --------------------------
1535 // Creates an effect from a binary effect or file
1536 //
1537 // Parameters:
1538 //
1539 // [in]
1540 //
1541 //
1542 // pData
1543 // Blob of compiled effect data
1544 // DataLength
1545 // Length of the data blob
1546 // FXFlags
1547 // Compilation flags pertaining to Effect compilation, honored
1548 // by the Effect compiler
1549 // pDevice
1550 // Pointer to the D3D11 device on which to create Effect resources
1551 //
1552 // [out]
1553 //
1554 // ppEffect
1555 // Address of the newly created Effect interface
1556 //
1557 //----------------------------------------------------------------------------
1558 
1559 HRESULT WINAPI D3DX11CreateEffectFromMemory(CONST void *pData, SIZE_T DataLength, UINT FXFlags, ID3D11Device *pDevice, ID3DX11Effect **ppEffect);
1560 
1561 #ifdef __cplusplus
1562 }
1563 #endif //__cplusplus
1564 
1565 #endif //__D3DX11EFFECT_H__
1566 
BYTE CSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)]
Definition: d3dx11effect.h:64
BYTE DSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:43
BYTE VSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)]
Definition: d3dx11effect.h:30
BYTE CSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:62
interface ID3DX11EffectConstantBuffer ID3DX11EffectConstantBuffer
Definition: d3dx11effect.h:287
interface ID3DX11EffectInterfaceVariable * LPD3D11EFFECTINTERFACEVARIABLE
Definition: d3dx11effect.h:647
BYTE CSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)]
Definition: d3dx11effect.h:61
interface ID3DX11EffectDepthStencilVariable ID3DX11EffectDepthStencilVariable
Definition: d3dx11effect.h:290
D3D10_SHADER_VARIABLE_CLASS Class
Definition: d3dx11effect.h:194
interface ID3DX11EffectDepthStencilVariable * LPD3D11EFFECTDEPTHSTENCILVARIABLE
raString ID3D11ShaderResourceView void * pContext
Definition: raSDKmesh.h:236
interface ID3DX11EffectScalarVariable * LPD3D11EFFECTSCALARVARIABLE
Definition: d3dx11effect.h:337
interface ID3DX11EffectClassInstanceVariable * LPD3D11EFFECTCLASSINSTANCEVARIABLE
Definition: d3dx11effect.h:594
interface ID3DX11EffectShaderVariable ID3DX11EffectShaderVariable
Definition: d3dx11effect.h:288
interface ID3DX11EffectUnorderedAccessViewVariable * LPD3D11EFFECTUNORDEREDACCESSVIEWVARIABLE
Definition: d3dx11effect.h:759
BYTE VSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)]
Definition: d3dx11effect.h:33
struct _D3DX11_STATE_BLOCK_MASK D3DX11_STATE_BLOCK_MASK
BYTE GSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)]
Definition: d3dx11effect.h:50
interface ID3DX11EffectDepthStencilViewVariable * LPD3D11EFFECTDEPTHSTENCILVIEWVARIABLE
Definition: d3dx11effect.h:875
interface ID3DX11EffectInterfaceVariable ID3DX11EffectInterfaceVariable
Definition: d3dx11effect.h:282
D3D10_SHADER_VARIABLE_TYPE Type
Definition: d3dx11effect.h:195
struct _D3DX11_TECHNIQUE_DESC D3DX11_TECHNIQUE_DESC
BYTE PSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)]
Definition: d3dx11effect.h:54
interface ID3DX11EffectStringVariable * LPD3D11EFFECTSTRINGVARIABLE
Definition: d3dx11effect.h:539
interface ID3DX11EffectBlendVariable ID3DX11EffectBlendVariable
Definition: d3dx11effect.h:289
BYTE GSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)]
Definition: d3dx11effect.h:51
struct _D3DX11_EFFECT_DESC D3DX11_EFFECT_DESC
BYTE CSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)]
Definition: d3dx11effect.h:63
interface ID3DX11EffectShaderResourceVariable * LPD3D11EFFECTSHADERRESOURCEVARIABLE
Definition: d3dx11effect.h:701
interface ID3DX11EffectTechnique ID3DX11EffectTechnique
interface ID3DX11EffectShaderVariable * LPD3D11EFFECTSHADERVARIABLE
BYTE VSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:31
struct _D3DX11_PASS_SHADER_DESC D3DX11_PASS_SHADER_DESC
HRESULT WINAPI D3DX11CreateEffectFromMemory(CONST void *pData, SIZE_T DataLength, UINT FXFlags, ID3D11Device *pDevice, ID3DX11Effect **ppEffect)
interface ID3DX11EffectVariable * LPD3D11EFFECTVARIABLE
Definition: d3dx11effect.h:267
interface ID3DX11EffectMatrixVariable * LPD3D11EFFECTMATRIXVARIABLE
Definition: d3dx11effect.h:475
struct _D3DX11_GROUP_DESC D3DX11_GROUP_DESC
BYTE HSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:37
SIZE_T IAInputSignatureSize
interface ID3DX11EffectVectorVariable ID3DX11EffectVectorVariable
Definition: d3dx11effect.h:278
interface ID3DX11EffectSamplerVariable * LPD3D11EFFECTSAMPLERVARIABLE
BYTE HSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)]
Definition: d3dx11effect.h:36
interface ID3DX11EffectTechnique * LPD3D11EFFECTTECHNIQUE
interface ID3DX11EffectUnorderedAccessViewVariable ID3DX11EffectUnorderedAccessViewVariable
Definition: d3dx11effect.h:284
interface ID3DX11Effect * LPD3D11EFFECT
interface ID3DX11EffectDepthStencilViewVariable ID3DX11EffectDepthStencilViewVariable
Definition: d3dx11effect.h:286
interface ID3DX11EffectType * LPD3D11EFFECTTYPE
Definition: d3dx11effect.h:215
BYTE GSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:49
BYTE IAVertexBuffers[D3DX11_BYTES_FROM_BITS(D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:67
BYTE GSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)]
Definition: d3dx11effect.h:48
interface ID3DX11Effect ID3DX11Effect
interface ID3DX11EffectPass ID3DX11EffectPass
interface ID3DX11EffectScalarVariable ID3DX11EffectScalarVariable
Definition: d3dx11effect.h:277
BYTE PSShaderResources[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)]
Definition: d3dx11effect.h:55
struct _D3DX11_EFFECT_TYPE_DESC D3DX11_EFFECT_TYPE_DESC
interface ID3DX11EffectVariable ID3DX11EffectVariable
Definition: d3dx11effect.h:266
interface ID3DX11EffectGroup ID3DX11EffectGroup
BYTE HSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)]
Definition: d3dx11effect.h:38
BYTE HSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)]
Definition: d3dx11effect.h:39
BYTE DSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)]
Definition: d3dx11effect.h:44
BYTE VSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)]
Definition: d3dx11effect.h:32
BYTE PSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)]
Definition: d3dx11effect.h:57
DECLARE_INTERFACE_(ID3DX11EffectScalarVariable, ID3DX11EffectVariable)
Definition: d3dx11effect.h:346
BYTE PSConstantBuffers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)]
Definition: d3dx11effect.h:56
interface ID3DX11EffectSamplerVariable ID3DX11EffectSamplerVariable
Definition: d3dx11effect.h:292
BYTE DSSamplers[D3DX11_BYTES_FROM_BITS(D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT)]
Definition: d3dx11effect.h:42
interface ID3DX11EffectRenderTargetViewVariable ID3DX11EffectRenderTargetViewVariable
Definition: d3dx11effect.h:285
interface ID3DX11EffectType ID3DX11EffectType
Definition: d3dx11effect.h:214
ID3D11Buffer D3D11_BUFFER_DESC void * pData
Definition: raSDKmesh.h:238
interface ID3DX11EffectShaderResourceVariable ID3DX11EffectShaderResourceVariable
Definition: d3dx11effect.h:283
BYTE DSInterfaces[D3DX11_BYTES_FROM_BITS(D3D11_SHADER_MAX_INTERFACES)]
Definition: d3dx11effect.h:45
ID3DX11EffectShaderVariable * pShaderVariable
struct _D3DX11_PASS_DESC D3DX11_PASS_DESC
#define D3DX11_BYTES_FROM_BITS(x)
Definition: d3dx11effect.h:24
interface ID3DX11EffectMatrixVariable ID3DX11EffectMatrixVariable
Definition: d3dx11effect.h:279
interface ID3DX11EffectGroup * LPD3D11EFFECTGROUP
struct _D3DX11_EFFECT_SHADER_DESC D3DX11_EFFECT_SHADER_DESC
interface ID3DX11EffectRasterizerVariable * LPD3D11EFFECTRASTERIZERVARIABLE
interface ID3DX11EffectRasterizerVariable ID3DX11EffectRasterizerVariable
Definition: d3dx11effect.h:291
interface ID3DX11EffectRenderTargetViewVariable * LPD3D11EFFECTRENDERTARGETVIEWVARIABLE
Definition: d3dx11effect.h:817
DECLARE_INTERFACE(ID3DX11EffectType)
Definition: d3dx11effect.h:224
DEFINE_GUID(IID_ID3DX11EffectType, 0x4250d721, 0xd5e5, 0x491f, 0xb6, 0x2b, 0x58, 0x7c, 0x43, 0x18, 0x62, 0x85)
interface ID3DX11EffectConstantBuffer * LPD3D11EFFECTCONSTANTBUFFER
Definition: d3dx11effect.h:933
interface ID3DX11EffectBlendVariable * LPD3D11EFFECTBLENDVARIABLE
struct _D3DX11_EFFECT_VARIABLE_DESC D3DX11_EFFECT_VARIABLE_DESC
interface ID3DX11EffectStringVariable ID3DX11EffectStringVariable
Definition: d3dx11effect.h:280
interface ID3DX11EffectVectorVariable * LPD3D11EFFECTVECTORVARIABLE
Definition: d3dx11effect.h:407
interface ID3DX11EffectPass * LPD3D11EFFECTPASS
interface ID3DX11EffectClassInstanceVariable ID3DX11EffectClassInstanceVariable
Definition: d3dx11effect.h:281