OSDN Git Service

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