1 //////////////////////////////////////////////////////////////////////////////
\r
3 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
5 // File: D3DX11Effect.h
\r
6 // Content: D3DX11 Effect Types & APIs Header
\r
8 //////////////////////////////////////////////////////////////////////////////
\r
10 #ifndef __D3DX11EFFECT_H__
\r
11 #define __D3DX11EFFECT_H__
\r
14 #include "d3d11shader.h"
\r
16 //////////////////////////////////////////////////////////////////////////////
\r
19 // 1) Stateblock enums, structs, interfaces, flat APIs
\r
20 // 2) Effect enums, structs, interfaces, flat APIs
\r
21 //////////////////////////////////////////////////////////////////////////////
\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
27 typedef struct _D3DX11_STATE_BLOCK_MASK
\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
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
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
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
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
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
67 BYTE IAVertexBuffers[D3DX11_BYTES_FROM_BITS(D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
\r
70 BYTE IAPrimitiveTopology;
\r
72 BYTE OMRenderTargets;
\r
73 BYTE OMDepthStencilState;
\r
77 BYTE RSScissorRects;
\r
78 BYTE RSRasterizerState;
\r
83 } D3DX11_STATE_BLOCK_MASK;
\r
85 //----------------------------------------------------------------------------
\r
86 // D3DX11_EFFECT flags:
\r
87 // -------------------------------------
\r
89 // These flags are passed in when creating an effect, and affect
\r
90 // the runtime effect behavior:
\r
95 // These flags are set by the effect runtime:
\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
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
108 //----------------------------------------------------------------------------
\r
110 #define D3DX11_EFFECT_OPTIMIZED (1 << 21)
\r
111 #define D3DX11_EFFECT_CLONE (1 << 22)
\r
113 // These are the only valid parameter flags to D3DX11CreateEffect*
\r
114 #define D3DX11_EFFECT_RUNTIME_VALID_FLAGS (0)
\r
116 //----------------------------------------------------------------------------
\r
117 // D3DX11_EFFECT_VARIABLE flags:
\r
118 // ----------------------------
\r
120 // These flags describe an effect variable (global or annotation),
\r
121 // and are returned in D3DX11_EFFECT_VARIABLE_DESC::Flags.
\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
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
133 #define D3DX11_EFFECT_VARIABLE_ANNOTATION (1 << 1)
\r
134 #define D3DX11_EFFECT_VARIABLE_EXPLICIT_BIND_POINT (1 << 2)
\r
136 //----------------------------------------------------------------------------
\r
137 // D3DX11_EFFECT_CLONE flags:
\r
138 // ----------------------------
\r
140 // These flags modify the effect cloning process and are passed into Clone.
\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
147 #define D3DX11_EFFECT_CLONE_FORCE_NONSINGLE (1 << 0)
\r
149 //----------------------------------------------------------------------------
\r
150 // D3DX11_EFFECT_PASS flags:
\r
151 // ----------------------------
\r
153 // These flags modify the effect cloning process and are passed into Clone.
\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
160 // D3DX11_EFFECT_PASS_OMIT_*
\r
161 // When applying a pass, do not set the state indicated in the flag name.
\r
162 //----------------------------------------------------------------------------
\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
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
179 //////////////////////////////////////////////////////////////////////////////
\r
180 // ID3DX11EffectType //////////////////////////////////////////////////////////
\r
181 //////////////////////////////////////////////////////////////////////////////
\r
183 //----------------------------------------------------------------------------
\r
184 // D3DX11_EFFECT_TYPE_DESC:
\r
186 // Retrieved by ID3DX11EffectType::GetDesc()
\r
187 //----------------------------------------------------------------------------
\r
189 typedef struct _D3DX11_EFFECT_TYPE_DESC
\r
191 LPCSTR TypeName; // Name of the type
\r
192 // (e.g. "float4" or "MyStruct")
\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
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
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
214 typedef interface ID3DX11EffectType ID3DX11EffectType;
\r
215 typedef interface ID3DX11EffectType *LPD3D11EFFECTTYPE;
\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
222 #define INTERFACE ID3DX11EffectType
\r
224 DECLARE_INTERFACE(ID3DX11EffectType)
\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
235 //////////////////////////////////////////////////////////////////////////////
\r
236 // ID3DX11EffectVariable //////////////////////////////////////////////////////
\r
237 //////////////////////////////////////////////////////////////////////////////
\r
239 //----------------------------------------------------------------------------
\r
240 // D3DX11_EFFECT_VARIABLE_DESC:
\r
242 // Retrieved by ID3DX11EffectVariable::GetDesc()
\r
243 //----------------------------------------------------------------------------
\r
245 typedef struct _D3DX11_EFFECT_VARIABLE_DESC
\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
253 UINT Flags; // D3DX11_EFFECT_VARIABLE_* flags
\r
254 UINT Annotations; // Number of annotations on this variable
\r
255 // (always 0 for annotations)
\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
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
266 typedef interface ID3DX11EffectVariable ID3DX11EffectVariable;
\r
267 typedef interface ID3DX11EffectVariable *LPD3D11EFFECTVARIABLE;
\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
274 #define INTERFACE ID3DX11EffectVariable
\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
294 DECLARE_INTERFACE(ID3DX11EffectVariable)
\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
300 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
301 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
307 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
309 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
332 //////////////////////////////////////////////////////////////////////////////
\r
333 // ID3DX11EffectScalarVariable ////////////////////////////////////////////////
\r
334 //////////////////////////////////////////////////////////////////////////////
\r
336 typedef interface ID3DX11EffectScalarVariable ID3DX11EffectScalarVariable;
\r
337 typedef interface ID3DX11EffectScalarVariable *LPD3D11EFFECTSCALARVARIABLE;
\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
344 #define INTERFACE ID3DX11EffectScalarVariable
\r
346 DECLARE_INTERFACE_(ID3DX11EffectScalarVariable, ID3DX11EffectVariable)
\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
352 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
353 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
359 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
361 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
383 STDMETHOD(SetFloat)(THIS_ CONST float Value) PURE;
\r
384 STDMETHOD(GetFloat)(THIS_ float *pValue) PURE;
\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
389 STDMETHOD(SetInt)(THIS_ CONST int Value) PURE;
\r
390 STDMETHOD(GetInt)(THIS_ int *pValue) PURE;
\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
395 STDMETHOD(SetBool)(THIS_ CONST BOOL Value) PURE;
\r
396 STDMETHOD(GetBool)(THIS_ BOOL *pValue) PURE;
\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
402 //////////////////////////////////////////////////////////////////////////////
\r
403 // ID3DX11EffectVectorVariable ////////////////////////////////////////////////
\r
404 //////////////////////////////////////////////////////////////////////////////
\r
406 typedef interface ID3DX11EffectVectorVariable ID3DX11EffectVectorVariable;
\r
407 typedef interface ID3DX11EffectVectorVariable *LPD3D11EFFECTVECTORVARIABLE;
\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
414 #define INTERFACE ID3DX11EffectVectorVariable
\r
416 DECLARE_INTERFACE_(ID3DX11EffectVectorVariable, ID3DX11EffectVariable)
\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
422 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
423 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
429 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
431 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
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
457 STDMETHOD(GetBoolVector) (THIS_ BOOL *pData) PURE;
\r
458 STDMETHOD(GetIntVector) (THIS_ int *pData) PURE;
\r
459 STDMETHOD(GetFloatVector)(THIS_ float *pData) PURE;
\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
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
470 //////////////////////////////////////////////////////////////////////////////
\r
471 // ID3DX11EffectMatrixVariable ////////////////////////////////////////////////
\r
472 //////////////////////////////////////////////////////////////////////////////
\r
474 typedef interface ID3DX11EffectMatrixVariable ID3DX11EffectMatrixVariable;
\r
475 typedef interface ID3DX11EffectMatrixVariable *LPD3D11EFFECTMATRIXVARIABLE;
\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
482 #define INTERFACE ID3DX11EffectMatrixVariable
\r
484 DECLARE_INTERFACE_(ID3DX11EffectMatrixVariable, ID3DX11EffectVariable)
\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
490 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
491 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
497 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
499 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
521 STDMETHOD(SetMatrix)(THIS_ CONST float *pData) PURE;
\r
522 STDMETHOD(GetMatrix)(THIS_ float *pData) PURE;
\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
527 STDMETHOD(SetMatrixTranspose)(THIS_ CONST float *pData) PURE;
\r
528 STDMETHOD(GetMatrixTranspose)(THIS_ float *pData) PURE;
\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
534 //////////////////////////////////////////////////////////////////////////////
\r
535 // ID3DX11EffectStringVariable ////////////////////////////////////////////////
\r
536 //////////////////////////////////////////////////////////////////////////////
\r
538 typedef interface ID3DX11EffectStringVariable ID3DX11EffectStringVariable;
\r
539 typedef interface ID3DX11EffectStringVariable *LPD3D11EFFECTSTRINGVARIABLE;
\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
546 #define INTERFACE ID3DX11EffectStringVariable
\r
548 DECLARE_INTERFACE_(ID3DX11EffectStringVariable, ID3DX11EffectVariable)
\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
554 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
555 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
561 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
563 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
585 STDMETHOD(GetString)(THIS_ LPCSTR *ppString) PURE;
\r
586 STDMETHOD(GetStringArray)(THIS_ LPCSTR *ppStrings, UINT Offset, UINT Count) PURE;
\r
589 //////////////////////////////////////////////////////////////////////////////
\r
590 // ID3DX11EffectClassInstanceVariable ////////////////////////////////////////
\r
591 //////////////////////////////////////////////////////////////////////////////
\r
593 typedef interface ID3DX11EffectClassInstanceVariable ID3DX11EffectClassInstanceVariable;
\r
594 typedef interface ID3DX11EffectClassInstanceVariable *LPD3D11EFFECTCLASSINSTANCEVARIABLE;
\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
601 #define INTERFACE ID3DX11EffectClassInstanceVariable
\r
603 DECLARE_INTERFACE_(ID3DX11EffectClassInstanceVariable, ID3DX11EffectVariable)
\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
609 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
610 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
616 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
618 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
639 STDMETHOD(GetClassInstance)(ID3D11ClassInstance** ppClassInstance) PURE;
\r
642 //////////////////////////////////////////////////////////////////////////////
\r
643 // ID3DX11EffectInterfaceVariable ////////////////////////////////////////
\r
644 //////////////////////////////////////////////////////////////////////////////
\r
646 typedef interface ID3DX11EffectInterfaceVariable ID3DX11EffectInterfaceVariable;
\r
647 typedef interface ID3DX11EffectInterfaceVariable *LPD3D11EFFECTINTERFACEVARIABLE;
\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
654 #define INTERFACE ID3DX11EffectInterfaceVariable
\r
656 DECLARE_INTERFACE_(ID3DX11EffectInterfaceVariable, ID3DX11EffectVariable)
\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
662 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
663 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
669 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
671 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
692 STDMETHOD(SetClassInstance)(ID3DX11EffectClassInstanceVariable *pEffectClassInstance) PURE;
\r
693 STDMETHOD(GetClassInstance)(ID3DX11EffectClassInstanceVariable **ppEffectClassInstance) PURE;
\r
696 //////////////////////////////////////////////////////////////////////////////
\r
697 // ID3DX11EffectShaderResourceVariable ////////////////////////////////////////
\r
698 //////////////////////////////////////////////////////////////////////////////
\r
700 typedef interface ID3DX11EffectShaderResourceVariable ID3DX11EffectShaderResourceVariable;
\r
701 typedef interface ID3DX11EffectShaderResourceVariable *LPD3D11EFFECTSHADERRESOURCEVARIABLE;
\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
708 #define INTERFACE ID3DX11EffectShaderResourceVariable
\r
710 DECLARE_INTERFACE_(ID3DX11EffectShaderResourceVariable, ID3DX11EffectVariable)
\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
716 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
717 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
723 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
725 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
747 STDMETHOD(SetResource)(THIS_ ID3D11ShaderResourceView *pResource) PURE;
\r
748 STDMETHOD(GetResource)(THIS_ ID3D11ShaderResourceView **ppResource) PURE;
\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
754 //////////////////////////////////////////////////////////////////////////////
\r
755 // ID3DX11EffectUnorderedAccessViewVariable ////////////////////////////////////////
\r
756 //////////////////////////////////////////////////////////////////////////////
\r
758 typedef interface ID3DX11EffectUnorderedAccessViewVariable ID3DX11EffectUnorderedAccessViewVariable;
\r
759 typedef interface ID3DX11EffectUnorderedAccessViewVariable *LPD3D11EFFECTUNORDEREDACCESSVIEWVARIABLE;
\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
766 #define INTERFACE ID3DX11EffectUnorderedAccessViewVariable
\r
768 DECLARE_INTERFACE_(ID3DX11EffectUnorderedAccessViewVariable, ID3DX11EffectVariable)
\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
774 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
775 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
781 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
783 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
805 STDMETHOD(SetUnorderedAccessView)(THIS_ ID3D11UnorderedAccessView *pResource) PURE;
\r
806 STDMETHOD(GetUnorderedAccessView)(THIS_ ID3D11UnorderedAccessView **ppResource) PURE;
\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
812 //////////////////////////////////////////////////////////////////////////////
\r
813 // ID3DX11EffectRenderTargetViewVariable //////////////////////////////////////
\r
814 //////////////////////////////////////////////////////////////////////////////
\r
816 typedef interface ID3DX11EffectRenderTargetViewVariable ID3DX11EffectRenderTargetViewVariable;
\r
817 typedef interface ID3DX11EffectRenderTargetViewVariable *LPD3D11EFFECTRENDERTARGETVIEWVARIABLE;
\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
824 #define INTERFACE ID3DX11EffectRenderTargetViewVariable
\r
826 DECLARE_INTERFACE_(ID3DX11EffectRenderTargetViewVariable, ID3DX11EffectVariable)
\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
832 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
833 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
839 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
841 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
863 STDMETHOD(SetRenderTarget)(THIS_ ID3D11RenderTargetView *pResource) PURE;
\r
864 STDMETHOD(GetRenderTarget)(THIS_ ID3D11RenderTargetView **ppResource) PURE;
\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
870 //////////////////////////////////////////////////////////////////////////////
\r
871 // ID3DX11EffectDepthStencilViewVariable //////////////////////////////////////
\r
872 //////////////////////////////////////////////////////////////////////////////
\r
874 typedef interface ID3DX11EffectDepthStencilViewVariable ID3DX11EffectDepthStencilViewVariable;
\r
875 typedef interface ID3DX11EffectDepthStencilViewVariable *LPD3D11EFFECTDEPTHSTENCILVIEWVARIABLE;
\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
882 #define INTERFACE ID3DX11EffectDepthStencilViewVariable
\r
884 DECLARE_INTERFACE_(ID3DX11EffectDepthStencilViewVariable, ID3DX11EffectVariable)
\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
890 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
891 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
897 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
899 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
921 STDMETHOD(SetDepthStencil)(THIS_ ID3D11DepthStencilView *pResource) PURE;
\r
922 STDMETHOD(GetDepthStencil)(THIS_ ID3D11DepthStencilView **ppResource) PURE;
\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
928 //////////////////////////////////////////////////////////////////////////////
\r
929 // ID3DX11EffectConstantBuffer ////////////////////////////////////////////////
\r
930 //////////////////////////////////////////////////////////////////////////////
\r
932 typedef interface ID3DX11EffectConstantBuffer ID3DX11EffectConstantBuffer;
\r
933 typedef interface ID3DX11EffectConstantBuffer *LPD3D11EFFECTCONSTANTBUFFER;
\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
940 #define INTERFACE ID3DX11EffectConstantBuffer
\r
942 DECLARE_INTERFACE_(ID3DX11EffectConstantBuffer, ID3DX11EffectVariable)
\r
944 STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
\r
945 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
\r
947 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
948 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
954 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
956 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
978 STDMETHOD(SetConstantBuffer)(THIS_ ID3D11Buffer *pConstantBuffer) PURE;
\r
979 STDMETHOD(UndoSetConstantBuffer)(THIS) PURE;
\r
980 STDMETHOD(GetConstantBuffer)(THIS_ ID3D11Buffer **ppConstantBuffer) PURE;
\r
982 STDMETHOD(SetTextureBuffer)(THIS_ ID3D11ShaderResourceView *pTextureBuffer) PURE;
\r
983 STDMETHOD(UndoSetTextureBuffer)(THIS) PURE;
\r
984 STDMETHOD(GetTextureBuffer)(THIS_ ID3D11ShaderResourceView **ppTextureBuffer) PURE;
\r
987 //////////////////////////////////////////////////////////////////////////////
\r
988 // ID3DX11EffectShaderVariable ////////////////////////////////////////////////
\r
989 //////////////////////////////////////////////////////////////////////////////
\r
991 //----------------------------------------------------------------------------
\r
992 // D3DX11_EFFECT_SHADER_DESC:
\r
994 // Retrieved by ID3DX11EffectShaderVariable::GetShaderDesc()
\r
995 //----------------------------------------------------------------------------
\r
997 typedef struct _D3DX11_EFFECT_SHADER_DESC
\r
999 CONST BYTE *pInputSignature; // Passed into CreateInputLayout,
\r
1000 // valid on VS and GS only
\r
1002 BOOL IsInline; // Is this an anonymous shader variable
\r
1003 // resulting from an inline shader assignment?
\r
1006 // -- The following fields are not valid after Optimize() --
\r
1007 CONST BYTE *pBytecode; // Shader bytecode
\r
1008 UINT BytecodeLength;
\r
1010 LPCSTR SODecls[D3D11_SO_STREAM_COUNT]; // Stream out declaration string (for GS with SO)
\r
1011 UINT RasterizedStream;
\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
1019 typedef interface ID3DX11EffectShaderVariable ID3DX11EffectShaderVariable;
\r
1020 typedef interface ID3DX11EffectShaderVariable *LPD3D11EFFECTSHADERVARIABLE;
\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
1027 #define INTERFACE ID3DX11EffectShaderVariable
\r
1029 DECLARE_INTERFACE_(ID3DX11EffectShaderVariable, ID3DX11EffectVariable)
\r
1031 STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
\r
1032 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
\r
1034 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1035 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
1041 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
1043 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
1065 STDMETHOD(GetShaderDesc)(THIS_ UINT ShaderIndex, D3DX11_EFFECT_SHADER_DESC *pDesc) PURE;
\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
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
1079 //////////////////////////////////////////////////////////////////////////////
\r
1080 // ID3DX11EffectBlendVariable /////////////////////////////////////////////////
\r
1081 //////////////////////////////////////////////////////////////////////////////
\r
1083 typedef interface ID3DX11EffectBlendVariable ID3DX11EffectBlendVariable;
\r
1084 typedef interface ID3DX11EffectBlendVariable *LPD3D11EFFECTBLENDVARIABLE;
\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
1091 #define INTERFACE ID3DX11EffectBlendVariable
\r
1093 DECLARE_INTERFACE_(ID3DX11EffectBlendVariable, ID3DX11EffectVariable)
\r
1095 STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
\r
1096 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
\r
1098 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1099 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
1105 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
1107 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
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
1135 //////////////////////////////////////////////////////////////////////////////
\r
1136 // ID3DX11EffectDepthStencilVariable //////////////////////////////////////////
\r
1137 //////////////////////////////////////////////////////////////////////////////
\r
1139 typedef interface ID3DX11EffectDepthStencilVariable ID3DX11EffectDepthStencilVariable;
\r
1140 typedef interface ID3DX11EffectDepthStencilVariable *LPD3D11EFFECTDEPTHSTENCILVARIABLE;
\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
1147 #define INTERFACE ID3DX11EffectDepthStencilVariable
\r
1149 DECLARE_INTERFACE_(ID3DX11EffectDepthStencilVariable, ID3DX11EffectVariable)
\r
1151 STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
\r
1152 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
\r
1154 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1155 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
1161 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
1163 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
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
1191 //////////////////////////////////////////////////////////////////////////////
\r
1192 // ID3DX11EffectRasterizerVariable ////////////////////////////////////////////
\r
1193 //////////////////////////////////////////////////////////////////////////////
\r
1195 typedef interface ID3DX11EffectRasterizerVariable ID3DX11EffectRasterizerVariable;
\r
1196 typedef interface ID3DX11EffectRasterizerVariable *LPD3D11EFFECTRASTERIZERVARIABLE;
\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
1203 #define INTERFACE ID3DX11EffectRasterizerVariable
\r
1205 DECLARE_INTERFACE_(ID3DX11EffectRasterizerVariable, ID3DX11EffectVariable)
\r
1207 STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
\r
1208 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
\r
1210 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1211 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
1217 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
1219 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
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
1247 //////////////////////////////////////////////////////////////////////////////
\r
1248 // ID3DX11EffectSamplerVariable ///////////////////////////////////////////////
\r
1249 //////////////////////////////////////////////////////////////////////////////
\r
1251 typedef interface ID3DX11EffectSamplerVariable ID3DX11EffectSamplerVariable;
\r
1252 typedef interface ID3DX11EffectSamplerVariable *LPD3D11EFFECTSAMPLERVARIABLE;
\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
1259 #define INTERFACE ID3DX11EffectSamplerVariable
\r
1261 DECLARE_INTERFACE_(ID3DX11EffectSamplerVariable, ID3DX11EffectVariable)
\r
1263 STDMETHOD_(ID3DX11EffectType*, GetType)(THIS) PURE;
\r
1264 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_VARIABLE_DESC *pDesc) PURE;
\r
1266 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1267 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\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
1273 STDMETHOD_(ID3DX11EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
\r
1275 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
\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
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
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
1303 //////////////////////////////////////////////////////////////////////////////
\r
1304 // ID3DX11EffectPass //////////////////////////////////////////////////////////
\r
1305 //////////////////////////////////////////////////////////////////////////////
\r
1307 //----------------------------------------------------------------------------
\r
1308 // D3DX11_PASS_DESC:
\r
1310 // Retrieved by ID3DX11EffectPass::GetDesc()
\r
1311 //----------------------------------------------------------------------------
\r
1313 typedef struct _D3DX11_PASS_DESC
\r
1315 LPCSTR Name; // Name of this pass (NULL if not anonymous)
\r
1316 UINT Annotations; // Number of annotations on this pass
\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
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
1327 //----------------------------------------------------------------------------
\r
1328 // D3DX11_PASS_SHADER_DESC:
\r
1330 // Retrieved by ID3DX11EffectPass::Get**ShaderDesc()
\r
1331 //----------------------------------------------------------------------------
\r
1333 typedef struct _D3DX11_PASS_SHADER_DESC
\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
1346 UINT ShaderIndex; // The element of pShaderVariable (if an array)
\r
1347 // or 0 if not applicable
\r
1348 } D3DX11_PASS_SHADER_DESC;
\r
1350 typedef interface ID3DX11EffectPass ID3DX11EffectPass;
\r
1351 typedef interface ID3DX11EffectPass *LPD3D11EFFECTPASS;
\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
1358 #define INTERFACE ID3DX11EffectPass
\r
1360 DECLARE_INTERFACE(ID3DX11EffectPass)
\r
1362 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
\r
1363 STDMETHOD(GetDesc)(THIS_ D3DX11_PASS_DESC *pDesc) PURE;
\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
1372 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1373 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\r
1375 STDMETHOD(Apply)(THIS_ UINT Flags, ID3D11DeviceContext* pContext) PURE;
\r
1377 STDMETHOD(ComputeStateBlockMask)(THIS_ D3DX11_STATE_BLOCK_MASK *pStateBlockMask) PURE;
\r
1380 //////////////////////////////////////////////////////////////////////////////
\r
1381 // ID3DX11EffectTechnique /////////////////////////////////////////////////////
\r
1382 //////////////////////////////////////////////////////////////////////////////
\r
1384 //----------------------------------------------------------------------------
\r
1385 // D3DX11_TECHNIQUE_DESC:
\r
1387 // Retrieved by ID3DX11EffectTechnique::GetDesc()
\r
1388 //----------------------------------------------------------------------------
\r
1390 typedef struct _D3DX11_TECHNIQUE_DESC
\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
1397 typedef interface ID3DX11EffectTechnique ID3DX11EffectTechnique;
\r
1398 typedef interface ID3DX11EffectTechnique *LPD3D11EFFECTTECHNIQUE;
\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
1405 #define INTERFACE ID3DX11EffectTechnique
\r
1407 DECLARE_INTERFACE(ID3DX11EffectTechnique)
\r
1409 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
\r
1410 STDMETHOD(GetDesc)(THIS_ D3DX11_TECHNIQUE_DESC *pDesc) PURE;
\r
1412 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1413 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\r
1415 STDMETHOD_(ID3DX11EffectPass*, GetPassByIndex)(THIS_ UINT Index) PURE;
\r
1416 STDMETHOD_(ID3DX11EffectPass*, GetPassByName)(THIS_ LPCSTR Name) PURE;
\r
1418 STDMETHOD(ComputeStateBlockMask)(THIS_ D3DX11_STATE_BLOCK_MASK *pStateBlockMask) PURE;
\r
1421 //////////////////////////////////////////////////////////////////////////////
\r
1422 // ID3DX11EffectTechnique /////////////////////////////////////////////////////
\r
1423 //////////////////////////////////////////////////////////////////////////////
\r
1425 //----------------------------------------------------------------------------
\r
1426 // D3DX11_GROUP_DESC:
\r
1428 // Retrieved by ID3DX11EffectTechnique::GetDesc()
\r
1429 //----------------------------------------------------------------------------
\r
1431 typedef struct _D3DX11_GROUP_DESC
\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
1438 typedef interface ID3DX11EffectGroup ID3DX11EffectGroup;
\r
1439 typedef interface ID3DX11EffectGroup *LPD3D11EFFECTGROUP;
\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
1446 #define INTERFACE ID3DX11EffectGroup
\r
1448 DECLARE_INTERFACE(ID3DX11EffectGroup)
\r
1450 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
\r
1451 STDMETHOD(GetDesc)(THIS_ D3DX11_GROUP_DESC *pDesc) PURE;
\r
1453 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
\r
1454 STDMETHOD_(ID3DX11EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
\r
1456 STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByIndex)(THIS_ UINT Index) PURE;
\r
1457 STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByName)(THIS_ LPCSTR Name) PURE;
\r
1460 //////////////////////////////////////////////////////////////////////////////
\r
1461 // ID3DX11Effect //////////////////////////////////////////////////////////////
\r
1462 //////////////////////////////////////////////////////////////////////////////
\r
1464 //----------------------------------------------------------------------------
\r
1465 // D3DX11_EFFECT_DESC:
\r
1467 // Retrieved by ID3DX11Effect::GetDesc()
\r
1468 //----------------------------------------------------------------------------
\r
1470 typedef struct _D3DX11_EFFECT_DESC
\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
1479 typedef interface ID3DX11Effect ID3DX11Effect;
\r
1480 typedef interface ID3DX11Effect *LPD3D11EFFECT;
\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
1487 #define INTERFACE ID3DX11Effect
\r
1489 DECLARE_INTERFACE_(ID3DX11Effect, 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
1496 STDMETHOD_(BOOL, IsValid)(THIS) PURE;
\r
1498 // Managing D3D Device
\r
1499 STDMETHOD(GetDevice)(THIS_ ID3D11Device** ppDevice) PURE;
\r
1501 // New Reflection APIs
\r
1502 STDMETHOD(GetDesc)(THIS_ D3DX11_EFFECT_DESC *pDesc) PURE;
\r
1504 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
\r
1505 STDMETHOD_(ID3DX11EffectConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
\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
1511 STDMETHOD_(ID3DX11EffectGroup*, GetGroupByIndex)(THIS_ UINT Index) PURE;
\r
1512 STDMETHOD_(ID3DX11EffectGroup*, GetGroupByName)(THIS_ LPCSTR Name) PURE;
\r
1514 STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByIndex)(THIS_ UINT Index) PURE;
\r
1515 STDMETHOD_(ID3DX11EffectTechnique*, GetTechniqueByName)(THIS_ LPCSTR Name) PURE;
\r
1517 STDMETHOD_(ID3D11ClassLinkage*, GetClassLinkage)(THIS) PURE;
\r
1519 STDMETHOD(CloneEffect)(THIS_ UINT Flags, ID3DX11Effect** ppClonedEffect ) PURE;
\r
1520 STDMETHOD(Optimize)(THIS) PURE;
\r
1521 STDMETHOD_(BOOL, IsOptimized)(THIS) PURE;
\r
1524 //////////////////////////////////////////////////////////////////////////////
\r
1525 // APIs //////////////////////////////////////////////////////////////////////
\r
1526 //////////////////////////////////////////////////////////////////////////////
\r
1528 #ifdef __cplusplus
\r
1530 #endif //__cplusplus
\r
1532 //----------------------------------------------------------------------------
\r
1533 // D3DX11CreateEffectFromMemory:
\r
1534 // --------------------------
\r
1535 // Creates an effect from a binary effect or file
\r
1543 // Blob of compiled effect data
\r
1545 // Length of the data blob
\r
1547 // Compilation flags pertaining to Effect compilation, honored
\r
1548 // by the Effect compiler
\r
1550 // Pointer to the D3D11 device on which to create Effect resources
\r
1555 // Address of the newly created Effect interface
\r
1557 //----------------------------------------------------------------------------
\r
1559 HRESULT WINAPI D3DX11CreateEffectFromMemory(CONST void *pData, SIZE_T DataLength, UINT FXFlags, ID3D11Device *pDevice, ID3DX11Effect **ppEffect);
\r
1561 #ifdef __cplusplus
\r
1563 #endif //__cplusplus
\r
1565 #endif //__D3DX11EFFECT_H__
\r