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