Home | History | Annotate | Download | only in include
      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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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 D3D10CreateStateBlock(ID3D10Device *device,
    837         D3D10_STATE_BLOCK_MASK *mask, ID3D10StateBlock **stateblock);
    838 
    839 HRESULT WINAPI D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK *mask_x,
    840         D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
    841 HRESULT WINAPI D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK *mask);
    842 HRESULT WINAPI D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK *mask,
    843         D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count);
    844 HRESULT WINAPI D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK *mask);
    845 HRESULT WINAPI D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK *mask,
    846         D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count);
    847 WINBOOL WINAPI D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK *mask,
    848         D3D10_DEVICE_STATE_TYPES state_type, UINT idx);
    849 HRESULT WINAPI D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK *mask_x,
    850         D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
    851 HRESULT WINAPI D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK *mask_x,
    852         D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result);
    853 
    854 #ifdef __cplusplus
    855 }
    856 #endif
    857 
    858 #endif /* __WINE_D3D10EFFECT_H */
    859