• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #undef INTERFACE
2 /*
3  * Copyright 2009 Henri Verbeet for CodeWeavers
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  *
19  */
20 
21 #ifndef __WINE_D3D10EFFECT_H
22 #define __WINE_D3D10EFFECT_H
23 
24 #include "d3d10.h"
25 
26 #define D3D10_EFFECT_VARIABLE_POOLED                0x1
27 #define D3D10_EFFECT_VARIABLE_ANNOTATION            0x2
28 #define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT   0x4
29 
30 #ifndef D3D10_BYTES_FROM_BITS
31 #define D3D10_BYTES_FROM_BITS(x) (((x) + 7) >> 3)
32 #endif
33 
34 typedef enum _D3D10_DEVICE_STATE_TYPES
35 {
36     D3D10_DST_SO_BUFFERS = 1,
37     D3D10_DST_OM_RENDER_TARGETS,
38     D3D10_DST_DEPTH_STENCIL_STATE,
39     D3D10_DST_BLEND_STATE,
40     D3D10_DST_VS,
41     D3D10_DST_VS_SAMPLERS,
42     D3D10_DST_VS_SHADER_RESOURCES,
43     D3D10_DST_VS_CONSTANT_BUFFERS,
44     D3D10_DST_GS,
45     D3D10_DST_GS_SAMPLERS,
46     D3D10_DST_GS_SHADER_RESOURCES,
47     D3D10_DST_GS_CONSTANT_BUFFERS,
48     D3D10_DST_PS,
49     D3D10_DST_PS_SAMPLERS,
50     D3D10_DST_PS_SHADER_RESOURCES,
51     D3D10_DST_PS_CONSTANT_BUFFERS,
52     D3D10_DST_IA_VERTEX_BUFFERS,
53     D3D10_DST_IA_INDEX_BUFFER,
54     D3D10_DST_IA_INPUT_LAYOUT,
55     D3D10_DST_IA_PRIMITIVE_TOPOLOGY,
56     D3D10_DST_RS_VIEWPORTS,
57     D3D10_DST_RS_SCISSOR_RECTS,
58     D3D10_DST_RS_RASTERIZER_STATE,
59     D3D10_DST_PREDICATION,
60 } D3D10_DEVICE_STATE_TYPES;
61 
62 typedef struct _D3D10_EFFECT_TYPE_DESC
63 {
64     const char *TypeName;
65     D3D10_SHADER_VARIABLE_CLASS Class;
66     D3D10_SHADER_VARIABLE_TYPE Type;
67     UINT Elements;
68     UINT Members;
69     UINT Rows;
70     UINT Columns;
71     UINT PackedSize;
72     UINT UnpackedSize;
73     UINT Stride;
74 } D3D10_EFFECT_TYPE_DESC;
75 
76 typedef struct _D3D10_EFFECT_VARIABLE_DESC
77 {
78     const char *Name;
79     const char *Semantic;
80     UINT Flags;
81     UINT Annotations;
82     UINT BufferOffset;
83     UINT ExplicitBindPoint;
84 } D3D10_EFFECT_VARIABLE_DESC;
85 
86 typedef struct _D3D10_TECHNIQUE_DESC
87 {
88     const char *Name;
89     UINT Passes;
90     UINT Annotations;
91 } D3D10_TECHNIQUE_DESC;
92 
93 typedef struct _D3D10_STATE_BLOCK_MASK
94 {
95     BYTE VS;
96     BYTE VSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
97     BYTE VSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
98     BYTE VSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
99     BYTE GS;
100     BYTE GSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
101     BYTE GSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
102     BYTE GSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
103     BYTE PS;
104     BYTE PSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
105     BYTE PSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
106     BYTE PSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
107     BYTE IAVertexBuffers[D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
108     BYTE IAIndexBuffer;
109     BYTE IAInputLayout;
110     BYTE IAPrimitiveTopology;
111     BYTE OMRenderTargets;
112     BYTE OMDepthStencilState;
113     BYTE OMBlendState;
114     BYTE RSViewports;
115     BYTE RSScissorRects;
116     BYTE RSRasterizerState;
117     BYTE SOBuffers;
118     BYTE Predication;
119 } D3D10_STATE_BLOCK_MASK;
120 
121 typedef struct _D3D10_EFFECT_DESC
122 {
123     WINBOOL IsChildEffect;
124     UINT ConstantBuffers;
125     UINT SharedConstantBuffers;
126     UINT GlobalVariables;
127     UINT SharedGlobalVariables;
128     UINT Techniques;
129 } D3D10_EFFECT_DESC;
130 
131 typedef struct _D3D10_EFFECT_SHADER_DESC
132 {
133     const BYTE *pInputSignature;
134     WINBOOL IsInline;
135     const BYTE *pBytecode;
136     UINT BytecodeLength;
137     const char *SODecl;
138     UINT NumInputSignatureEntries;
139     UINT NumOutputSignatureEntries;
140 } D3D10_EFFECT_SHADER_DESC;
141 
142 typedef struct _D3D10_PASS_DESC
143 {
144     const char *Name;
145     UINT Annotations;
146     BYTE *pIAInputSignature;
147     SIZE_T IAInputSignatureSize;
148     UINT StencilRef;
149     UINT SampleMask;
150     FLOAT BlendFactor[4];
151 } D3D10_PASS_DESC;
152 
153 typedef struct _D3D10_PASS_SHADER_DESC
154 {
155     struct ID3D10EffectShaderVariable *pShaderVariable;
156     UINT ShaderIndex;
157 } D3D10_PASS_SHADER_DESC;
158 
159 #define D3D10_EFFECT_COMPILE_CHILD_EFFECT    0x0001
160 #define D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS  0x0002
161 #define D3D10_EFFECT_SINGLE_THREADED         0x0008
162 
163 DEFINE_GUID(IID_ID3D10EffectType, 0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd);
164 
165 #define INTERFACE ID3D10EffectType
DECLARE_INTERFACE(ID3D10EffectType)166 DECLARE_INTERFACE(ID3D10EffectType)
167 {
168     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
169     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE;
170     STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
171     STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
172     STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ const char *semantic) PURE;
173     STDMETHOD_(const char *, GetMemberName)(THIS_ UINT index) PURE;
174     STDMETHOD_(const char *, GetMemberSemantic)(THIS_ UINT index) PURE;
175 };
176 #undef INTERFACE
177 
178 DEFINE_GUID(IID_ID3D10EffectVariable, 0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
179 
180 #define INTERFACE ID3D10EffectVariable
DECLARE_INTERFACE(ID3D10EffectVariable)181 DECLARE_INTERFACE(ID3D10EffectVariable)
182 {
183     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
184     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
185     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
186     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
187     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
188     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
189     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
190     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
191     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
192     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
193     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
194     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
195     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
196     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
197     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
198     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
199     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
200     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
201     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
202     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
203     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
204     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
205     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
206     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
207     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
208 };
209 #undef INTERFACE
210 
211 DEFINE_GUID(IID_ID3D10EffectConstantBuffer, 0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
212 
213 #define INTERFACE ID3D10EffectConstantBuffer
DECLARE_INTERFACE_(ID3D10EffectConstantBuffer,ID3D10EffectVariable)214 DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
215 {
216     /* ID3D10EffectVariable methods */
217     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
218     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
219     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
220     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
221     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
222     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
223     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
224     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
225     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
226     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
227     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
228     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
229     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
230     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
231     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
232     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
233     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
234     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
235     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
236     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
237     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
238     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
239     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
240     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
241     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
242     /* ID3D10EffectConstantBuffer methods */
243     STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *buffer) PURE;
244     STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **buffer) PURE;
245     STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *view) PURE;
246     STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **view) PURE;
247 };
248 #undef INTERFACE
249 
250 DEFINE_GUID(IID_ID3D10EffectScalarVariable, 0x00e48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x02, 0x2d, 0xee, 0x53, 0x43, 0x1f);
251 
252 #define INTERFACE ID3D10EffectScalarVariable
DECLARE_INTERFACE_(ID3D10EffectScalarVariable,ID3D10EffectVariable)253 DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
254 {
255     /* ID3D10EffectVariable methods */
256     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
257     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
258     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
259     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
260     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
261     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
262     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
263     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
264     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
265     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
266     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
267     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
268     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
269     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
270     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
271     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
272     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
273     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
274     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
275     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
276     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
277     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
278     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
279     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
280     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
281     /* ID3D10EffectScalarVariable methods */
282     STDMETHOD(SetFloat)(THIS_ float value) PURE;
283     STDMETHOD(GetFloat)(THIS_ float *value) PURE;
284     STDMETHOD(SetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
285     STDMETHOD(GetFloatArray)(THIS_ float *values, UINT offset, UINT count) PURE;
286     STDMETHOD(SetInt)(THIS_ int value) PURE;
287     STDMETHOD(GetInt)(THIS_ int *value) PURE;
288     STDMETHOD(SetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
289     STDMETHOD(GetIntArray)(THIS_ int *values, UINT offset, UINT count) PURE;
290     STDMETHOD(SetBool)(THIS_ WINBOOL value) PURE;
291     STDMETHOD(GetBool)(THIS_ WINBOOL *value) PURE;
292     STDMETHOD(SetBoolArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
293     STDMETHOD(GetBoolArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
294 };
295 #undef INTERFACE
296 
297 DEFINE_GUID(IID_ID3D10EffectVectorVariable, 0x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
298 
299 #define INTERFACE ID3D10EffectVectorVariable
DECLARE_INTERFACE_(ID3D10EffectVectorVariable,ID3D10EffectVariable)300 DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
301 {
302     /* ID3D10EffectVariable methods */
303     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
304     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
305     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
306     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
307     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
308     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
309     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
310     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
311     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
312     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
313     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
314     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
315     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
316     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
317     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
318     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
319     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
320     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
321     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
322     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
323     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
324     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
325     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
326     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
327     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
328     /* ID3D10EffectVectorVariable methods */
329     STDMETHOD(SetBoolVector)(THIS_ WINBOOL *value) PURE;
330     STDMETHOD(SetIntVector)(THIS_ int *value) PURE;
331     STDMETHOD(SetFloatVector)(THIS_ float *value) PURE;
332     STDMETHOD(GetBoolVector)(THIS_ WINBOOL *value) PURE;
333     STDMETHOD(GetIntVector)(THIS_ int *value) PURE;
334     STDMETHOD(GetFloatVector)(THIS_ float *value) PURE;
335     STDMETHOD(SetBoolVectorArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
336     STDMETHOD(SetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
337     STDMETHOD(SetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
338     STDMETHOD(GetBoolVectorArray)(THIS_ WINBOOL *values, UINT offset, UINT count) PURE;
339     STDMETHOD(GetIntVectorArray)(THIS_ int *values, UINT offset, UINT count) PURE;
340     STDMETHOD(GetFloatVectorArray)(THIS_ float *values, UINT offset, UINT count) PURE;
341 };
342 #undef INTERFACE
343 
344 DEFINE_GUID(IID_ID3D10EffectMatrixVariable, 0x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
345 
346 #define INTERFACE ID3D10EffectMatrixVariable
DECLARE_INTERFACE_(ID3D10EffectMatrixVariable,ID3D10EffectVariable)347 DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
348 {
349     /* ID3D10EffectVariable methods */
350     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
351     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
352     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
353     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
354     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
355     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
356     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
357     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
358     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
359     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
360     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
361     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
362     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
363     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
364     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
365     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
366     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
367     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
368     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
369     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
370     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
371     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
372     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
373     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
374     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
375     /* ID3D10EffectMatrixVariable methods */
376     STDMETHOD(SetMatrix)(THIS_ float *data) PURE;
377     STDMETHOD(GetMatrix)(THIS_ float *data) PURE;
378     STDMETHOD(SetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
379     STDMETHOD(GetMatrixArray)(THIS_ float *data, UINT offset, UINT count) PURE;
380     STDMETHOD(SetMatrixTranspose)(THIS_ float *data) PURE;
381     STDMETHOD(GetMatrixTranspose)(THIS_ float *data) PURE;
382     STDMETHOD(SetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
383     STDMETHOD(GetMatrixTransposeArray)(THIS_ float *data, UINT offset, UINT count) PURE;
384 };
385 #undef INTERFACE
386 
387 DEFINE_GUID(IID_ID3D10EffectStringVariable, 0x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
388 
389 #define INTERFACE ID3D10EffectStringVariable
DECLARE_INTERFACE_(ID3D10EffectStringVariable,ID3D10EffectVariable)390 DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
391 {
392     /* ID3D10EffectVariable methods */
393     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
394     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
395     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
396     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
397     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
398     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
399     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
400     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
401     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
402     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
403     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
404     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
405     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
406     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
407     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
408     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
409     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
410     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
411     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
412     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
413     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
414     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
415     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
416     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
417     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
418     /* ID3D10EffectStringVariable methods */
419     STDMETHOD(GetString)(THIS_ const char **str) PURE;
420     STDMETHOD(GetStringArray)(THIS_ const char **strs, UINT offset, UINT count) PURE;
421 };
422 #undef INTERFACE
423 
424 DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable,
425         0xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
426 
427 #define INTERFACE ID3D10EffectShaderResourceVariable
DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable,ID3D10EffectVariable)428 DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
429 {
430     /* ID3D10EffectVariable methods */
431     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
432     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
433     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
434     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
435     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
436     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
437     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
438     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
439     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
440     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
441     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
442     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
443     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
444     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
445     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
446     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
447     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
448     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
449     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
450     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
451     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
452     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
453     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
454     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
455     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
456     /* ID3D10EffectShaderResourceVariable methods */
457     STDMETHOD(SetResource)(THIS_ ID3D10ShaderResourceView *resource) PURE;
458     STDMETHOD(GetResource)(THIS_ ID3D10ShaderResourceView **resource) PURE;
459     STDMETHOD(SetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
460     STDMETHOD(GetResourceArray)(THIS_ ID3D10ShaderResourceView **resources, UINT offset, UINT count) PURE;
461 };
462 #undef INTERFACE
463 
464 DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable,
465         0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
466 
467 #define INTERFACE ID3D10EffectRenderTargetViewVariable
DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable,ID3D10EffectVariable)468 DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
469 {
470     /* ID3D10EffectVariable methods */
471     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
472     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
473     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
474     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
475     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
476     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
477     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
478     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
479     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
480     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
481     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
482     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
483     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
484     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
485     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
486     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
487     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
488     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
489     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
490     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
491     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
492     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
493     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
494     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
495     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
496     /* ID3D10EffectRenderTargetViewVariable methods */
497     STDMETHOD(SetRenderTarget)(THIS_ ID3D10RenderTargetView *view) PURE;
498     STDMETHOD(GetRenderTarget)(THIS_ ID3D10RenderTargetView **view) PURE;
499     STDMETHOD(SetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
500     STDMETHOD(GetRenderTargetArray)(THIS_ ID3D10RenderTargetView **views, UINT offset, UINT count) PURE;
501 };
502 #undef INTERFACE
503 
504 DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable,
505         0x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
506 
507 #define INTERFACE ID3D10EffectDepthStencilViewVariable
DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable,ID3D10EffectVariable)508 DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
509 {
510     /* ID3D10EffectVariable methods */
511     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
512     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
513     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
514     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
515     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
516     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
517     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
518     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
519     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
520     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
521     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
522     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
523     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
524     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
525     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
526     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
527     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
528     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
529     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
530     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
531     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
532     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
533     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
534     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
535     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
536     /* ID3D10EffectDepthStencilViewVariable methods */
537     STDMETHOD(SetDepthStencil)(THIS_ ID3D10DepthStencilView *view) PURE;
538     STDMETHOD(GetDepthStencil)(THIS_ ID3D10DepthStencilView **view) PURE;
539     STDMETHOD(SetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
540     STDMETHOD(GetDepthStencilArray)(THIS_ ID3D10DepthStencilView **views, UINT offset, UINT count) PURE;
541 };
542 #undef INTERFACE
543 
544 DEFINE_GUID(IID_ID3D10EffectShaderVariable, 0x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x04, 0x07, 0xa0, 0x7d, 0x9e, 0x06);
545 
546 #define INTERFACE ID3D10EffectShaderVariable
DECLARE_INTERFACE_(ID3D10EffectShaderVariable,ID3D10EffectVariable)547 DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
548 {
549     /* ID3D10EffectVariable methods */
550     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
551     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
552     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
553     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
554     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
555     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
556     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
557     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
558     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
559     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
560     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
561     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
562     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
563     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
564     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
565     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
566     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
567     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
568     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
569     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
570     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
571     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
572     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
573     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
574     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
575     /* ID3D10EffectShaderVariable methods */
576     STDMETHOD(GetShaderDesc)(THIS_ UINT index, D3D10_EFFECT_SHADER_DESC *desc) PURE;
577     STDMETHOD(GetVertexShader)(THIS_ UINT index, ID3D10VertexShader **shader) PURE;
578     STDMETHOD(GetGeometryShader)(THIS_ UINT index, ID3D10GeometryShader **shader) PURE;
579     STDMETHOD(GetPixelShader)(THIS_ UINT index, ID3D10PixelShader **shader) PURE;
580     STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
581             D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
582     STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT shader_index, UINT element_index,
583             D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
584 };
585 #undef INTERFACE
586 
587 DEFINE_GUID(IID_ID3D10EffectBlendVariable, 0x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0x0e, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
588 
589 #define INTERFACE ID3D10EffectBlendVariable
DECLARE_INTERFACE_(ID3D10EffectBlendVariable,ID3D10EffectVariable)590 DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
591 {
592     /* ID3D10EffectVariable methods */
593     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
594     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
595     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
596     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
597     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
598     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
599     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
600     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
601     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
602     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
603     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
604     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
605     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
606     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
607     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
608     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
609     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
610     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
611     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
612     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
613     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
614     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
615     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
616     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
617     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
618     /* ID3D10EffectBlendVariable methods */
619     STDMETHOD(GetBlendState)(THIS_ UINT index, ID3D10BlendState **blend_state) PURE;
620     STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_BLEND_DESC *desc) PURE;
621 };
622 #undef INTERFACE
623 
624 DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable,
625         0xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x01, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
626 
627 #define INTERFACE ID3D10EffectDepthStencilVariable
DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable,ID3D10EffectVariable)628 DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
629 {
630     /* ID3D10EffectVariable methods */
631     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
632     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
633     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
634     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
635     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
636     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
637     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
638     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
639     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
640     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
641     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
642     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
643     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
644     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
645     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
646     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
647     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
648     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
649     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
650     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
651     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
652     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
653     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
654     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
655     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
656     /* ID3D10EffectDepthStencilVariable methods */
657     STDMETHOD(GetDepthStencilState)(THIS_ UINT index, ID3D10DepthStencilState **depth_stencil_state) PURE;
658     STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_DEPTH_STENCIL_DESC *desc) PURE;
659 };
660 #undef INTERFACE
661 
662 DEFINE_GUID(IID_ID3D10EffectRasterizerVariable,
663         0x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0x0b, 0x34);
664 
665 #define INTERFACE ID3D10EffectRasterizerVariable
DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable,ID3D10EffectVariable)666 DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
667 {
668     /* ID3D10EffectVariable methods */
669     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
670     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
671     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
672     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
673     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
674     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
675     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
676     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
677     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
678     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
679     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
680     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
681     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
682     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
683     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
684     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
685     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
686     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
687     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
688     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
689     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
690     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
691     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
692     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
693     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
694     /* ID3D10EffectRasterizerVariable methods */
695     STDMETHOD(GetRasterizerState)(THIS_ UINT index, ID3D10RasterizerState **rasterizer_state) PURE;
696     STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_RASTERIZER_DESC *desc) PURE;
697 };
698 #undef INTERFACE
699 
700 DEFINE_GUID(IID_ID3D10EffectSamplerVariable,
701         0x6530d5c7, 0x07e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
702 
703 #define INTERFACE ID3D10EffectSamplerVariable
DECLARE_INTERFACE_(ID3D10EffectSamplerVariable,ID3D10EffectVariable)704 DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
705 {
706     /* ID3D10EffectVariable methods */
707     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
708     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
709     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
710     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
711     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
712     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
713     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
714     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
715     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
716     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
717     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
718     STDMETHOD_(struct ID3D10EffectVectorVariable *, AsVector)(THIS) PURE;
719     STDMETHOD_(struct ID3D10EffectMatrixVariable *, AsMatrix)(THIS) PURE;
720     STDMETHOD_(struct ID3D10EffectStringVariable *, AsString)(THIS) PURE;
721     STDMETHOD_(struct ID3D10EffectShaderResourceVariable *, AsShaderResource)(THIS) PURE;
722     STDMETHOD_(struct ID3D10EffectRenderTargetViewVariable *, AsRenderTargetView)(THIS) PURE;
723     STDMETHOD_(struct ID3D10EffectDepthStencilViewVariable *, AsDepthStencilView)(THIS) PURE;
724     STDMETHOD_(struct ID3D10EffectConstantBuffer *, AsConstantBuffer)(THIS) PURE;
725     STDMETHOD_(struct ID3D10EffectShaderVariable *, AsShader)(THIS) PURE;
726     STDMETHOD_(struct ID3D10EffectBlendVariable *, AsBlend)(THIS) PURE;
727     STDMETHOD_(struct ID3D10EffectDepthStencilVariable *, AsDepthStencil)(THIS) PURE;
728     STDMETHOD_(struct ID3D10EffectRasterizerVariable *, AsRasterizer)(THIS) PURE;
729     STDMETHOD_(struct ID3D10EffectSamplerVariable *, AsSampler)(THIS) PURE;
730     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
731     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
732     /* ID3D10EffectSamplerVariable methods */
733     STDMETHOD(GetSampler)(THIS_ UINT index, ID3D10SamplerState **sampler) PURE;
734     STDMETHOD(GetBackingStore)(THIS_ UINT index, D3D10_SAMPLER_DESC *desc) PURE;
735 };
736 #undef INTERFACE
737 
738 DEFINE_GUID(IID_ID3D10EffectTechnique, 0xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
739 
740 #define INTERFACE ID3D10EffectTechnique
DECLARE_INTERFACE(ID3D10EffectTechnique)741 DECLARE_INTERFACE(ID3D10EffectTechnique)
742 {
743     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
744     STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *desc) PURE;
745     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
746     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
747     STDMETHOD_(struct ID3D10EffectPass *, GetPassByIndex)(THIS_ UINT index) PURE;
748     STDMETHOD_(struct ID3D10EffectPass *, GetPassByName)(THIS_ const char *name) PURE;
749     STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
750 };
751 #undef INTERFACE
752 
753 DEFINE_GUID(IID_ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
754 
755 #define INTERFACE ID3D10Effect
DECLARE_INTERFACE_(ID3D10Effect,IUnknown)756 DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
757 {
758     /* IUnknown methods */
759     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
760     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
761     STDMETHOD_(ULONG, Release)(THIS) PURE;
762     /* ID3D10Effect methods */
763     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
764     STDMETHOD_(WINBOOL, IsPool)(THIS) PURE;
765     STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
766     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *desc) PURE;
767     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
768     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
769     STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
770     STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByName)(THIS_ const char *name) PURE;
771     STDMETHOD_(struct ID3D10EffectVariable *, GetVariableBySemantic)(THIS_ const char *semantic) PURE;
772     STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByIndex)(THIS_ UINT index) PURE;
773     STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByName)(THIS_ const char *name) PURE;
774     STDMETHOD(Optimize)(THIS) PURE;
775     STDMETHOD_(WINBOOL, IsOptimized)(THIS) PURE;
776 };
777 #undef INTERFACE
778 
779 DEFINE_GUID(IID_ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
780 
781 #define INTERFACE ID3D10EffectPool
DECLARE_INTERFACE_(ID3D10EffectPool,IUnknown)782 DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
783 {
784     /* IUnknown methods */
785     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
786     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
787     STDMETHOD_(ULONG, Release)(THIS) PURE;
788     /* ID3D10EffectPool methods */
789     STDMETHOD_(struct ID3D10Effect *, AsEffect)(THIS) PURE;
790 };
791 #undef INTERFACE
792 
793 DEFINE_GUID(IID_ID3D10EffectPass, 0x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
794 
795 #define INTERFACE ID3D10EffectPass
DECLARE_INTERFACE(ID3D10EffectPass)796 DECLARE_INTERFACE(ID3D10EffectPass)
797 {
798     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
799     STDMETHOD(GetDesc)(THIS_ D3D10_PASS_DESC *desc) PURE;
800     STDMETHOD(GetVertexShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
801     STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
802     STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
803     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
804     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
805     STDMETHOD(Apply)(THIS_ UINT flags) PURE;
806     STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
807 };
808 #undef INTERFACE
809 
810 DEFINE_GUID(IID_ID3D10StateBlock, 0x0803425a, 0x57f5, 0x4dd6, 0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08);
811 
812 #define INTERFACE ID3D10StateBlock
DECLARE_INTERFACE_(ID3D10StateBlock,IUnknown)813 DECLARE_INTERFACE_(ID3D10StateBlock, IUnknown)
814 {
815     /* IUnknown methods */
816     STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **object) PURE;
817     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
818     STDMETHOD_(ULONG, Release)(THIS) PURE;
819     /* ID3D10StateBlock methods */
820     STDMETHOD(Capture)(THIS) PURE;
821     STDMETHOD(Apply)(THIS) PURE;
822     STDMETHOD(ReleaseAllDeviceObjects)(THIS) PURE;
823     STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
824 };
825 #undef INTERFACE
826 
827 #ifdef __cplusplus
828 extern "C" {
829 #endif
830 
831 HRESULT WINAPI D3D10CompileEffectFromMemory(void *data, SIZE_T data_size, const char *filename,
832         const D3D10_SHADER_MACRO *defines, ID3D10Include *include, UINT hlsl_flags, UINT fx_flags,
833         ID3D10Blob **effect, ID3D10Blob **errors);
834 HRESULT WINAPI D3D10CreateEffectFromMemory(void *data, SIZE_T data_size, UINT flags,
835         ID3D10Device *device, ID3D10EffectPool *effect_pool, ID3D10Effect **effect);
836 HRESULT WINAPI D3D10CreateEffectPoolFromMemory(void *data, SIZE_T data_size, UINT fx_flags,
837         ID3D10Device *device, ID3D10EffectPool **effect_pool);
838 HRESULT WINAPI D3D10CreateStateBlock(ID3D10Device *device,
839         D3D10_STATE_BLOCK_MASK *mask, ID3D10StateBlock **stateblock);
840 
841 HRESULT WINAPI D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK *mask_x,
842         D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
843 HRESULT WINAPI D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK *mask);
844 HRESULT WINAPI D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK *mask,
845         D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count);
846 HRESULT WINAPI D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK *mask);
847 HRESULT WINAPI D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK *mask,
848         D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count);
849 WINBOOL WINAPI D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK *mask,
850         D3D10_DEVICE_STATE_TYPES state_type, UINT idx);
851 HRESULT WINAPI D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK *mask_x,
852         D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
853 HRESULT WINAPI D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK *mask_x,
854         D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
855 
856 #ifdef __cplusplus
857 }
858 #endif
859 
860 #endif /* __WINE_D3D10EFFECT_H */
861