1 /***********************************************************************\ 2 * d3d10effect.d * 3 * * 4 * Windows API header module * 5 * * 6 * Placed into public domain * 7 \***********************************************************************/ 8 module win32.directx.d3d10effect; 9 10 private import win32.windows; 11 private import win32.directx.d3d10; 12 13 14 enum D3D10_DEVICE_STATE_TYPES { 15 D3D10_DST_SO_BUFFERS = 1, 16 D3D10_DST_OM_RENDER_TARGETS, 17 D3D10_DST_OM_DEPTH_STENCIL_STATE, 18 D3D10_DST_OM_BLEND_STATE, 19 D3D10_DST_VS, 20 D3D10_DST_VS_SAMPLERS, 21 D3D10_DST_VS_SHADER_RESOURCES, 22 D3D10_DST_VS_CONSTANT_BUFFERS, 23 D3D10_DST_GS, 24 D3D10_DST_GS_SAMPLERS, 25 D3D10_DST_GS_SHADER_RESOURCES, 26 D3D10_DST_GS_CONSTANT_BUFFERS, 27 D3D10_DST_PS, 28 D3D10_DST_PS_SAMPLERS, 29 D3D10_DST_PS_SHADER_RESOURCES, 30 D3D10_DST_PS_CONSTANT_BUFFERS, 31 D3D10_DST_IA_VERTEX_BUFFERS, 32 D3D10_DST_IA_INDEX_BUFFER, 33 D3D10_DST_IA_INPUT_LAYOUT, 34 D3D10_DST_IA_PRIMITIVE_TOPOLOGY, 35 D3D10_DST_RS_VIEWPORTS, 36 D3D10_DST_RS_SCISSOR_RECTS, 37 D3D10_DST_RS_RASTERIZER_STATE, 38 D3D10_DST_PREDICATION 39 } 40 41 struct D3D10_STATE_BLOCK_MASK { 42 BYTE VS; 43 BYTE[2] VSSamplers; 44 BYTE[16] VSShaderResources; 45 BYTE[2] VSConstantBuffers; 46 BYTE GS; 47 BYTE[2] GSSamplers; 48 BYTE[16] GSShaderResources; 49 BYTE[2] GSConstantBuffers; 50 BYTE PS; 51 BYTE[2] PSSamplers; 52 BYTE[16] PSShaderResources; 53 BYTE[2] PSConstantBuffers; 54 BYTE[2] IAVertexBuffers; 55 BYTE IAIndexBuffer; 56 BYTE IAInputLayout; 57 BYTE IAPrimitiveTopology; 58 BYTE OMRenderTargets; 59 BYTE OMDepthStencilState; 60 BYTE OMBlendState; 61 BYTE RSViewports; 62 BYTE RSScissorRects; 63 BYTE RSRasterizerState; 64 BYTE SOBuffers; 65 BYTE Predication; 66 } 67 68 extern (C) const GUID IID_ID3D10StateBlock = {0x803425a, 0x57f5, 0x4dd6, [0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08]}; 69 70 interface ID3D10StateBlock : IUnknown { 71 extern(Windows) : 72 HRESULT Capture(); 73 HRESULT Apply(); 74 HRESULT ReleaseAllDeviceObjects(); 75 HRESULT GetDevice(ID3D10Device ppDevice); 76 } 77 78 HRESULT D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); 79 HRESULT D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); 80 HRESULT D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK* pA, D3D10_STATE_BLOCK_MASK* pB, D3D10_STATE_BLOCK_MASK* pResult); 81 HRESULT D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); 82 HRESULT D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); 83 HRESULT D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK* pMask); 84 HRESULT D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK* pMask); 85 BOOL D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK* pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry); 86 HRESULT D3D10CreateStateBlock(ID3D10Device pDevice, D3D10_STATE_BLOCK_MASK* pStateBlockMask, ID3D10StateBlock ppStateBlock); 87 88 const D3D10_EFFECT_COMPILE_CHILD_EFFECT = 1 << 0; 89 const D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS = 1 << 1; 90 const D3D10_EFFECT_SINGLE_THREADED = 1 << 3; 91 const D3D10_EFFECT_VARIABLE_POOLED = 1 << 0; 92 const D3D10_EFFECT_VARIABLE_ANNOTATION = 1 << 1; 93 const D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 1 << 2; 94 95 struct D3D10_EFFECT_TYPE_DESC { 96 LPCSTR TypeName; 97 D3D10_SHADER_VARIABLE_CLASS Class; 98 D3D10_SHADER_VARIABLE_TYPE Type; 99 UINT Elements; 100 UINT Members; 101 UINT Rows; 102 UINT Columns; 103 UINT PackedSize; 104 UINT UnpackedSize; 105 UINT Stride; 106 } 107 108 extern (C) const GUID IID_ID3D10EffectType = {0x4e9e1ddc, 0xcd9d, 0x4772, [0xa8, 0x37, 0x0, 0x18, 0x0b, 0x9b, 0x88, 0xfd]}; 109 110 interface ID3D10EffectType { 111 /* TODO: fix vtbl[0] bug 112 extern(Windows) : 113 BOOL IsValid(); 114 HRESULT GetDesc(D3D10_EFFECT_TYPE_DESC* pDesc); 115 ID3D10EffectType GetMemberTypeByIndex(UINT Index); 116 ID3D10EffectType GetMemberTypeByName(LPCSTR Name); 117 ID3D10EffectType GetMemberTypeBySemantic(LPCSTR Semantic); 118 LPCSTR GetMemberName(UINT Index); 119 LPCSTR GetMemberSemantic(UINT Index); 120 */ 121 } 122 123 struct D3D10_EFFECT_VARIABLE_DESC { 124 LPCSTR Name; 125 LPCSTR Semantic; 126 UINT Flags; 127 UINT Annotations; 128 UINT BufferOffset; 129 UINT ExplicitBindPoint; 130 } 131 132 extern (C) const GUID IID_ID3D10EffectVariable = {0xae897105, 0x00e6, 0x45bf, [0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b]}; 133 134 interface ID3D10EffectVariable { 135 /* TODO: fix vtbl[0] bug 136 extern(Windows) : 137 BOOL IsValid(); 138 ID3D10EffectType GetType(); 139 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 140 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 141 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 142 ID3D10EffectVariable GetMemberByIndex(UINT Index); 143 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 144 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 145 ID3D10EffectVariable GetElement(UINT Index); 146 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 147 ID3D10EffectScalarVariable AsScalar(); 148 ID3D10EffectVectorVariable AsVector(); 149 ID3D10EffectMatrixVariable AsMatrix(); 150 ID3D10EffectStringVariable AsString(); 151 ID3D10EffectShaderResourceVariable AsShaderResource(); 152 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 153 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 154 ID3D10EffectConstantBuffer AsConstantBuffer(); 155 ID3D10EffectShaderVariable AsShader(); 156 ID3D10EffectBlendVariable AsBlend(); 157 ID3D10EffectDepthStencilVariable AsDepthStencil(); 158 ID3D10EffectRasterizerVariable AsRasterizer(); 159 ID3D10EffectSamplerVariable AsSampler(); 160 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 161 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 162 */ 163 } 164 165 extern (C) const GUID IID_ID3D10EffectScalarVariable = {0xe48f7b, 0xd2c8, 0x49e8, [0xa8, 0x6c, 0x2, 0x2d, 0xee, 0x53, 0x43, 0x1f]}; 166 167 interface ID3D10EffectScalarVariable : ID3D10EffectVariable { 168 /* TODO: fix vtbl[0] bug 169 extern(Windows) : 170 BOOL IsValid(); 171 ID3D10EffectType GetType(); 172 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 173 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 174 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 175 ID3D10EffectVariable GetMemberByIndex(UINT Index); 176 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 177 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 178 ID3D10EffectVariable GetElement(UINT Index); 179 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 180 ID3D10EffectScalarVariable AsScalar(); 181 ID3D10EffectVectorVariable AsVector(); 182 ID3D10EffectMatrixVariable AsMatrix(); 183 ID3D10EffectStringVariable AsString(); 184 ID3D10EffectShaderResourceVariable AsShaderResource(); 185 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 186 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 187 ID3D10EffectConstantBuffer AsConstantBuffer(); 188 ID3D10EffectShaderVariable AsShader(); 189 ID3D10EffectBlendVariable AsBlend(); 190 ID3D10EffectDepthStencilVariable AsDepthStencil(); 191 ID3D10EffectRasterizerVariable AsRasterizer(); 192 ID3D10EffectSamplerVariable AsSampler(); 193 HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 194 HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 195 HRESULT SetFloat(float Value); 196 HRESULT GetFloat(float* pValue); 197 HRESULT SetFloatArray(float* pData, UINT Offset, UINT Count); 198 HRESULT GetFloatArray(float* pData, UINT Offset, UINT Count); 199 HRESULT SetInt(int Value); 200 HRESULT GetInt(int* pValue); 201 HRESULT SetIntArray(int* pData, UINT Offset, UINT Count); 202 HRESULT GetIntArray(int* pData, UINT Offset, UINT Count); 203 HRESULT SetBool(BOOL Value); 204 HRESULT GetBool(BOOL* pValue); 205 HRESULT SetBoolArray(BOOL* pData, UINT Offset, UINT Count); 206 HRESULT GetBoolArray(BOOL* pData, UINT Offset, UINT Count); 207 */ 208 } 209 210 extern (C) const GUID IID_ID3D10EffectVectorVariable = {0x62b98c44, 0x1f82, 0x4c67, [0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81]}; 211 212 interface ID3D10EffectVectorVariable : ID3D10EffectVariable { 213 /* TODO: fix vtbl[0] bug 214 extern(Windows) : 215 BOOL IsValid(); 216 ID3D10EffectType GetType(); 217 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 218 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 219 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 220 ID3D10EffectVariable GetMemberByIndex(UINT Index); 221 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 222 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 223 ID3D10EffectVariable GetElement(UINT Index); 224 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 225 ID3D10EffectScalarVariable AsScalar(); 226 ID3D10EffectVectorVariable AsVector(); 227 ID3D10EffectMatrixVariable AsMatrix(); 228 ID3D10EffectStringVariable AsString(); 229 ID3D10EffectShaderResourceVariable AsShaderResource(); 230 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 231 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 232 ID3D10EffectConstantBuffer AsConstantBuffer(); 233 ID3D10EffectShaderVariable AsShader(); 234 ID3D10EffectBlendVariable AsBlend(); 235 ID3D10EffectDepthStencilVariable AsDepthStencil(); 236 ID3D10EffectRasterizerVariable AsRasterizer(); 237 ID3D10EffectSamplerVariable AsSampler(); 238 HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 239 HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 240 HRESULT SetBoolVector (BOOL* pData); 241 HRESULT SetIntVector (int* pData); 242 HRESULT SetFloatVector(float* pData); 243 HRESULT GetBoolVector (BOOL* pData); 244 HRESULT GetIntVector (int* pData); 245 HRESULT GetFloatVector(float* pData); 246 HRESULT SetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count); 247 HRESULT SetIntVectorArray (int* pData, UINT Offset, UINT Count); 248 HRESULT SetFloatVectorArray(float* pData, UINT Offset, UINT Count); 249 HRESULT GetBoolVectorArray (BOOL* pData, UINT Offset, UINT Count); 250 HRESULT GetIntVectorArray (int* pData, UINT Offset, UINT Count); 251 HRESULT GetFloatVectorArray(float* pData, UINT Offset, UINT Count); 252 */ 253 } 254 255 extern (C) const GUID IID_ID3D10EffectMatrixVariable = {0x50666c24, 0xb82f, 0x4eed, [0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0]}; 256 257 interface ID3D10EffectMatrixVariable : ID3D10EffectVariable { 258 /* TODO: fix vtbl[0] bug 259 extern(Windows) : 260 BOOL IsValid(); 261 ID3D10EffectType GetType(); 262 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 263 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 264 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 265 ID3D10EffectVariable GetMemberByIndex(UINT Index); 266 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 267 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 268 ID3D10EffectVariable GetElement(UINT Index); 269 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 270 ID3D10EffectScalarVariable AsScalar(); 271 ID3D10EffectVectorVariable AsVector(); 272 ID3D10EffectMatrixVariable AsMatrix(); 273 ID3D10EffectStringVariable AsString(); 274 ID3D10EffectShaderResourceVariable AsShaderResource(); 275 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 276 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 277 ID3D10EffectConstantBuffer AsConstantBuffer(); 278 ID3D10EffectShaderVariable AsShader(); 279 ID3D10EffectBlendVariable AsBlend(); 280 ID3D10EffectDepthStencilVariable AsDepthStencil(); 281 ID3D10EffectRasterizerVariable AsRasterizer(); 282 ID3D10EffectSamplerVariable AsSampler(); 283 HRESULT SetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 284 HRESULT GetRawValue(void* pData, UINT ByteOffset, UINT ByteCount); 285 HRESULT SetMatrix(float* pData); 286 HRESULT GetMatrix(float* pData); 287 HRESULT SetMatrixArray(float* pData, UINT Offset, UINT Count); 288 HRESULT GetMatrixArray(float* pData, UINT Offset, UINT Count); 289 HRESULT SetMatrixTranspose(float* pData); 290 HRESULT GetMatrixTranspose(float* pData); 291 HRESULT SetMatrixTransposeArray(float* pData, UINT Offset, UINT Count); 292 HRESULT GetMatrixTransposeArray(float* pData, UINT Offset, UINT Count); 293 */ 294 } 295 296 extern (C) const GUID IID_ID3D10EffectStringVariable = {0x71417501, 0x8df9, 0x4e0a, [0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff]}; 297 298 interface ID3D10EffectStringVariable : ID3D10EffectVariable { 299 /* TODO: fix vtbl[0] bug 300 extern(Windows) : 301 BOOL IsValid(); 302 ID3D10EffectType GetType(); 303 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 304 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 305 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 306 ID3D10EffectVariable GetMemberByIndex(UINT Index); 307 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 308 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 309 ID3D10EffectVariable GetElement(UINT Index); 310 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 311 ID3D10EffectScalarVariable AsScalar(); 312 ID3D10EffectVectorVariable AsVector(); 313 ID3D10EffectMatrixVariable AsMatrix(); 314 ID3D10EffectStringVariable AsString(); 315 ID3D10EffectShaderResourceVariable AsShaderResource(); 316 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 317 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 318 ID3D10EffectConstantBuffer AsConstantBuffer(); 319 ID3D10EffectShaderVariable AsShader(); 320 ID3D10EffectBlendVariable AsBlend(); 321 ID3D10EffectDepthStencilVariable AsDepthStencil(); 322 ID3D10EffectRasterizerVariable AsRasterizer(); 323 ID3D10EffectSamplerVariable AsSampler(); 324 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 325 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 326 HRESULT GetString(LPCSTR* ppString); 327 HRESULT GetStringArray(LPCSTR* ppStrings, UINT Offset, UINT Count); 328 */ 329 } 330 331 extern (C) const GUID IID_ID3D10EffectShaderResourceVariable = {0xc0a7157b, 0xd872, 0x4b1d, [0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc]}; 332 333 interface ID3D10EffectShaderResourceVariable : ID3D10EffectVariable { 334 /* TODO: fix vtbl[0] bug 335 extern(Windows) : 336 BOOL IsValid(); 337 ID3D10EffectType GetType(); 338 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 339 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 340 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 341 ID3D10EffectVariable GetMemberByIndex(UINT Index); 342 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 343 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 344 ID3D10EffectVariable GetElement(UINT Index); 345 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 346 ID3D10EffectScalarVariable AsScalar(); 347 ID3D10EffectVectorVariable AsVector(); 348 ID3D10EffectMatrixVariable AsMatrix(); 349 ID3D10EffectStringVariable AsString(); 350 ID3D10EffectShaderResourceVariable AsShaderResource(); 351 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 352 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 353 ID3D10EffectConstantBuffer AsConstantBuffer(); 354 ID3D10EffectShaderVariable AsShader(); 355 ID3D10EffectBlendVariable AsBlend(); 356 ID3D10EffectDepthStencilVariable AsDepthStencil(); 357 ID3D10EffectRasterizerVariable AsRasterizer(); 358 ID3D10EffectSamplerVariable AsSampler(); 359 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 360 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 361 HRESULT SetResource(ID3D10ShaderResourceView pResource); 362 HRESULT GetResource(ID3D10ShaderResourceView* ppResource); 363 HRESULT SetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count); 364 HRESULT GetResourceArray(ID3D10ShaderResourceView* ppResources, UINT Offset, UINT Count); 365 */ 366 } 367 368 extern (C) const GUID IID_ID3D10EffectRenderTargetViewVariable = {0x28ca0cc3, 0xc2c9, 0x40bb, [0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17]}; 369 370 interface ID3D10EffectRenderTargetViewVariable : ID3D10EffectVariable { 371 /* TODO: fix vtbl[0] bug 372 extern(Windows) : 373 BOOL IsValid(); 374 ID3D10EffectType GetType(); 375 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 376 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 377 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 378 ID3D10EffectVariable GetMemberByIndex(UINT Index); 379 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 380 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 381 ID3D10EffectVariable GetElement(UINT Index); 382 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 383 ID3D10EffectScalarVariable AsScalar(); 384 ID3D10EffectVectorVariable AsVector(); 385 ID3D10EffectMatrixVariable AsMatrix(); 386 ID3D10EffectStringVariable AsString(); 387 ID3D10EffectShaderResourceVariable AsShaderResource(); 388 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 389 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 390 ID3D10EffectConstantBuffer AsConstantBuffer(); 391 ID3D10EffectShaderVariable AsShader(); 392 ID3D10EffectBlendVariable AsBlend(); 393 ID3D10EffectDepthStencilVariable AsDepthStencil(); 394 ID3D10EffectRasterizerVariable AsRasterizer(); 395 ID3D10EffectSamplerVariable AsSampler(); 396 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 397 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 398 HRESULT SetRenderTarget(ID3D10RenderTargetView pResource); 399 HRESULT GetRenderTarget(ID3D10RenderTargetView* ppResource); 400 HRESULT SetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count); 401 HRESULT GetRenderTargetArray(ID3D10RenderTargetView* ppResources, UINT Offset, UINT Count); 402 */ 403 } 404 405 extern (C) const GUID IID_ID3D10EffectDepthStencilViewVariable = {0x3e02c918, 0xcc79, 0x4985, [0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23]}; 406 407 interface ID3D10EffectDepthStencilViewVariable : ID3D10EffectVariable { 408 /* TODO: fix vtbl[0] bug 409 extern(Windows) : 410 BOOL IsValid(); 411 ID3D10EffectType GetType(); 412 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 413 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 414 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 415 ID3D10EffectVariable GetMemberByIndex(UINT Index); 416 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 417 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 418 ID3D10EffectVariable GetElement(UINT Index); 419 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 420 ID3D10EffectScalarVariable AsScalar(); 421 ID3D10EffectVectorVariable AsVector(); 422 ID3D10EffectMatrixVariable AsMatrix(); 423 ID3D10EffectStringVariable AsString(); 424 ID3D10EffectShaderResourceVariable AsShaderResource(); 425 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 426 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 427 ID3D10EffectConstantBuffer AsConstantBuffer(); 428 ID3D10EffectShaderVariable AsShader(); 429 ID3D10EffectBlendVariable AsBlend(); 430 ID3D10EffectDepthStencilVariable AsDepthStencil(); 431 ID3D10EffectRasterizerVariable AsRasterizer(); 432 ID3D10EffectSamplerVariable AsSampler(); 433 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 434 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 435 HRESULT SetDepthStencil(ID3D10DepthStencilView pResource); 436 HRESULT GetDepthStencil(ID3D10DepthStencilView* ppResource); 437 HRESULT SetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count); 438 HRESULT GetDepthStencilArray(ID3D10DepthStencilView* ppResources, UINT Offset, UINT Count); 439 */ 440 } 441 442 extern (C) const GUID IID_ID3D10EffectConstantBuffer = {0x56648f4d, 0xcc8b, 0x4444, [0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3]}; 443 444 interface ID3D10EffectConstantBuffer : ID3D10EffectVariable { 445 /* TODO: fix vtbl[0] bug 446 extern(Windows) : 447 ID3D10EffectType GetType(); 448 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 449 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 450 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 451 ID3D10EffectVariable GetMemberByIndex(UINT Index); 452 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 453 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 454 ID3D10EffectVariable GetElement(UINT Index); 455 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 456 ID3D10EffectScalarVariable AsScalar(); 457 ID3D10EffectVectorVariable AsVector(); 458 ID3D10EffectMatrixVariable AsMatrix(); 459 ID3D10EffectStringVariable AsString(); 460 ID3D10EffectShaderResourceVariable AsShaderResource(); 461 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 462 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 463 ID3D10EffectConstantBuffer AsConstantBuffer(); 464 ID3D10EffectShaderVariable AsShader(); 465 ID3D10EffectBlendVariable AsBlend(); 466 ID3D10EffectDepthStencilVariable AsDepthStencil(); 467 ID3D10EffectRasterizerVariable AsRasterizer(); 468 ID3D10EffectSamplerVariable AsSampler(); 469 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 470 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 471 HRESULT SetConstantBuffer(ID3D10Buffer pConstantBuffer); 472 HRESULT GetConstantBuffer(ID3D10Buffer* ppConstantBuffer); 473 HRESULT SetTextureBuffer(ID3D10ShaderResourceView pTextureBuffer); 474 HRESULT GetTextureBuffer(ID3D10ShaderResourceView* ppTextureBuffer); 475 */ 476 } 477 478 struct D3D10_EFFECT_SHADER_DESC { 479 BYTE* pInputSignature; 480 BOOL IsInline; 481 BYTE* pBytecode; 482 UINT BytecodeLength; 483 LPCSTR SODecl; 484 UINT NumInputSignatureEntries; 485 UINT NumOutputSignatureEntries; 486 } 487 488 extern (C) const GUID IID_ID3D10EffectShaderVariable = {0x80849279, 0xc799, 0x4797, [0x8c, 0x33, 0x4, 0x7, 0xa0, 0x7d, 0x9e, 0x6]}; 489 490 interface ID3D10EffectShaderVariable : ID3D10EffectVariable { 491 /* TODO: fix vtbl[0] bug 492 extern(Windows) : 493 ID3D10EffectType GetType(); 494 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 495 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 496 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 497 ID3D10EffectVariable GetMemberByIndex(UINT Index); 498 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 499 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 500 ID3D10EffectVariable GetElement(UINT Index); 501 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 502 ID3D10EffectScalarVariable AsScalar(); 503 ID3D10EffectVectorVariable AsVector(); 504 ID3D10EffectMatrixVariable AsMatrix(); 505 ID3D10EffectStringVariable AsString(); 506 ID3D10EffectShaderResourceVariable AsShaderResource(); 507 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 508 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 509 ID3D10EffectConstantBuffer AsConstantBuffer(); 510 ID3D10EffectShaderVariable AsShader(); 511 ID3D10EffectBlendVariable AsBlend(); 512 ID3D10EffectDepthStencilVariable AsDepthStencil(); 513 ID3D10EffectRasterizerVariable AsRasterizer(); 514 ID3D10EffectSamplerVariable AsSampler(); 515 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 516 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 517 HRESULT GetShaderDesc(UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC* pDesc); 518 HRESULT GetVertexShader(UINT ShaderIndex, ID3D10VertexShader* ppVS); 519 HRESULT GetGeometryShader(UINT ShaderIndex, ID3D10GeometryShader* ppGS); 520 HRESULT GetPixelShader(UINT ShaderIndex, ID3D10PixelShader* ppPS); 521 HRESULT GetInputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); 522 HRESULT GetOutputSignatureElementDesc(UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC* pDesc); 523 */ 524 } 525 526 extern (C) const GUID IID_ID3D10EffectBlendVariable = {0x1fcd2294, 0xdf6d, 0x4eae, [0x86, 0xb3, 0xe, 0x91, 0x60, 0xcf, 0xb0, 0x7b]}; 527 528 interface ID3D10EffectBlendVariable : ID3D10EffectVariable { 529 /* TODO: fix vtbl[0] bug 530 extern(Windows) : 531 ID3D10EffectType GetType(); 532 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 533 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 534 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 535 ID3D10EffectVariable GetMemberByIndex(UINT Index); 536 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 537 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 538 ID3D10EffectVariable GetElement(UINT Index); 539 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 540 ID3D10EffectScalarVariable AsScalar(); 541 ID3D10EffectVectorVariable AsVector(); 542 ID3D10EffectMatrixVariable AsMatrix(); 543 ID3D10EffectStringVariable AsString(); 544 ID3D10EffectShaderResourceVariable AsShaderResource(); 545 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 546 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 547 ID3D10EffectConstantBuffer AsConstantBuffer(); 548 ID3D10EffectShaderVariable AsShader(); 549 ID3D10EffectBlendVariable AsBlend(); 550 ID3D10EffectDepthStencilVariable AsDepthStencil(); 551 ID3D10EffectRasterizerVariable AsRasterizer(); 552 ID3D10EffectSamplerVariable AsSampler(); 553 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 554 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 555 HRESULT GetBlendState(UINT Index, ID3D10BlendState* ppBlendState); 556 HRESULT GetBackingStore(UINT Index, D3D10_BLEND_DESC* pBlendDesc); 557 */ 558 } 559 560 extern (C) const GUID IID_ID3D10EffectDepthStencilVariable = {0xaf482368, 0x330a, 0x46a5, [0x9a, 0x5c, 0x1, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d]}; 561 562 interface ID3D10EffectDepthStencilVariable : ID3D10EffectVariable { 563 /* TODO: fix vtbl[0] bug 564 extern(Windows) : 565 ID3D10EffectType GetType(); 566 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 567 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 568 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 569 ID3D10EffectVariable GetMemberByIndex(UINT Index); 570 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 571 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 572 ID3D10EffectVariable GetElement(UINT Index); 573 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 574 ID3D10EffectScalarVariable AsScalar(); 575 ID3D10EffectVectorVariable AsVector(); 576 ID3D10EffectMatrixVariable AsMatrix(); 577 ID3D10EffectStringVariable AsString(); 578 ID3D10EffectShaderResourceVariable AsShaderResource(); 579 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 580 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 581 ID3D10EffectConstantBuffer AsConstantBuffer(); 582 ID3D10EffectShaderVariable AsShader(); 583 ID3D10EffectBlendVariable AsBlend(); 584 ID3D10EffectDepthStencilVariable AsDepthStencil(); 585 ID3D10EffectRasterizerVariable AsRasterizer(); 586 ID3D10EffectSamplerVariable AsSampler(); 587 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 588 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 589 HRESULT GetDepthStencilState(UINT Index, ID3D10DepthStencilState* ppDepthStencilState); 590 HRESULT GetBackingStore(UINT Index, D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc); 591 */ 592 } 593 594 extern (C) const GUID IID_ID3D10EffectRasterizerVariable = {0x21af9f0e, 0x4d94, 0x4ea9, [0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0xb, 0x34]}; 595 596 interface ID3D10EffectRasterizerVariable : ID3D10EffectVariable { 597 /* TODO: fix vtbl[0] bug 598 extern(Windows) : 599 ID3D10EffectType GetType(); 600 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 601 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 602 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 603 ID3D10EffectVariable GetMemberByIndex(UINT Index); 604 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 605 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 606 ID3D10EffectVariable GetElement(UINT Index); 607 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 608 ID3D10EffectScalarVariable AsScalar(); 609 ID3D10EffectVectorVariable AsVector(); 610 ID3D10EffectMatrixVariable AsMatrix(); 611 ID3D10EffectStringVariable AsString(); 612 ID3D10EffectShaderResourceVariable AsShaderResource(); 613 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 614 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 615 ID3D10EffectConstantBuffer AsConstantBuffer(); 616 ID3D10EffectShaderVariable AsShader(); 617 ID3D10EffectBlendVariable AsBlend(); 618 ID3D10EffectDepthStencilVariable AsDepthStencil(); 619 ID3D10EffectRasterizerVariable AsRasterizer(); 620 ID3D10EffectSamplerVariable AsSampler(); 621 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 622 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 623 HRESULT GetRasterizerState(UINT Index, ID3D10RasterizerState* ppRasterizerState); 624 HRESULT GetBackingStore(UINT Index, D3D10_RASTERIZER_DESC* pRasterizerDesc); 625 */ 626 } 627 628 extern (C) const GUID IID_ID3D10EffectSamplerVariable = {0x6530d5c7, 0x07e9, 0x4271, [0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80]}; 629 630 interface ID3D10EffectSamplerVariable : ID3D10EffectVariable { 631 /* TODO: fix vtbl[0] bug 632 extern(Windows) : 633 ID3D10EffectType GetType(); 634 HRESULT GetDesc(D3D10_EFFECT_VARIABLE_DESC* pDesc); 635 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 636 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 637 ID3D10EffectVariable GetMemberByIndex(UINT Index); 638 ID3D10EffectVariable GetMemberByName(LPCSTR Name); 639 ID3D10EffectVariable GetMemberBySemantic(LPCSTR Semantic); 640 ID3D10EffectVariable GetElement(UINT Index); 641 ID3D10EffectConstantBuffer GetParentConstantBuffer(); 642 ID3D10EffectScalarVariable AsScalar(); 643 ID3D10EffectVectorVariable AsVector(); 644 ID3D10EffectMatrixVariable AsMatrix(); 645 ID3D10EffectStringVariable AsString(); 646 ID3D10EffectShaderResourceVariable AsShaderResource(); 647 ID3D10EffectRenderTargetViewVariable AsRenderTargetView(); 648 ID3D10EffectDepthStencilViewVariable AsDepthStencilView(); 649 ID3D10EffectConstantBuffer AsConstantBuffer(); 650 ID3D10EffectShaderVariable AsShader(); 651 ID3D10EffectBlendVariable AsBlend(); 652 ID3D10EffectDepthStencilVariable AsDepthStencil(); 653 ID3D10EffectRasterizerVariable AsRasterizer(); 654 ID3D10EffectSamplerVariable AsSampler(); 655 HRESULT SetRawValue(void* pData, UINT Offset, UINT Count); 656 HRESULT GetRawValue(void* pData, UINT Offset, UINT Count); 657 HRESULT GetSampler(UINT Index, ID3D10SamplerState* ppSampler); 658 HRESULT GetBackingStore(UINT Index, D3D10_SAMPLER_DESC* pSamplerDesc); 659 */ 660 } 661 662 struct D3D10_PASS_DESC { 663 LPCSTR Name; 664 UINT Annotations; 665 BYTE* pIAInputSignature; 666 SIZE_T IAInputSignatureSize; 667 UINT StencilRef; 668 UINT SampleMask; 669 FLOAT[4] BlendFactor; 670 } 671 672 struct D3D10_PASS_SHADER_DESC { 673 ID3D10EffectShaderVariable pShaderVariable; 674 UINT ShaderIndex; 675 } 676 677 extern (C) const GUID IID_ID3D10EffectPass = {0x5cfbeb89, 0x1a06, 0x46e0, [0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54]}; 678 679 /+interface ID3D10EffectPass { 680 /* TODO: fix vtbl[0] bug 681 extern(Windows) : 682 BOOL IsValid(); 683 HRESULT GetDesc(D3D10_PASS_DESC* pDesc); 684 HRESULT GetVertexShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); 685 HRESULT GetGeometryShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); 686 HRESULT GetPixelShaderDesc(D3D10_PASS_SHADER_DESC* pDesc); 687 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 688 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 689 HRESULT Apply(UINT Flags); 690 HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask); 691 */ 692 }+/ 693 /** 694 * HACK to FIX vtbl[0] bug: 695 * This is an example HACK how to fix all interfaces which are NOT derived from 696 * IUnknown. They need the first entry in their vtbl[] point to the first 697 * virtual function. 698 * See: 699 * http://www.digitalmars.com/d/cpp_interface.html 700 * http://d.puremagic.com/issues/show_bug.cgi?id=1687 701 */ 702 struct ID3D10EffectPassVtbl { 703 extern(Windows) : 704 BOOL function(ID3D10EffectPass) IsValid; 705 HRESULT function(ID3D10EffectPass, D3D10_PASS_DESC* pDesc) GetDesc; 706 HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetVertexShaderDesc; 707 HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetGeometryShaderDesc; 708 HRESULT function(ID3D10EffectPass, D3D10_PASS_SHADER_DESC* pDesc) GetPixelShaderDesc; 709 ID3D10EffectVariable function(ID3D10EffectPass, UINT Index) GetAnnotationByIndex; 710 ID3D10EffectVariable function(ID3D10EffectPass, LPCSTR Name) GetAnnotationByName; 711 HRESULT function(ID3D10EffectPass, UINT Flags) Apply; 712 HRESULT function(ID3D10EffectPass, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask; 713 } 714 alias ID3D10EffectPassVtbl** ID3D10EffectPass; 715 716 struct D3D10_TECHNIQUE_DESC { 717 LPCSTR Name; 718 UINT Passes; 719 UINT Annotations; 720 } 721 722 extern (C) const GUID IID_ID3D10EffectTechnique = {0xdb122ce8, 0xd1c9, 0x4292, [0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75]}; 723 724 /+interface ID3D10EffectTechnique { 725 /* TODO: fix vtbl[0] bug 726 extern(Windows) : 727 BOOL IsValid(); 728 HRESULT GetDesc(D3D10_TECHNIQUE_DESC* pDesc); 729 ID3D10EffectVariable GetAnnotationByIndex(UINT Index); 730 ID3D10EffectVariable GetAnnotationByName(LPCSTR Name); 731 ID3D10EffectPass GetPassByIndex(UINT Index); 732 ID3D10EffectPass GetPassByName(LPCSTR Name); 733 HRESULT ComputeStateBlockMask(D3D10_STATE_BLOCK_MASK* pStateBlockMask); 734 */ 735 }+/ 736 /** 737 * HACK to FIX vtbl[0] bug: 738 * This is an example HACK how to fix all interfaces which are NOT derived from 739 * IUnknown. They need the first entry in their vtbl[] point to the first 740 * virtual function. 741 * See: 742 * http://www.digitalmars.com/d/cpp_interface.html 743 * http://d.puremagic.com/issues/show_bug.cgi?id=1687 744 */ 745 struct ID3D10EffectTechniqueVtbl { 746 extern(Windows) : 747 BOOL function(ID3D10EffectTechnique) IsValid; 748 HRESULT function(ID3D10EffectTechnique, D3D10_TECHNIQUE_DESC* pDesc) GetDesc; 749 ID3D10EffectVariable function(ID3D10EffectTechnique, UINT Index) GetAnnotationByIndex; 750 ID3D10EffectVariable function(ID3D10EffectTechnique, LPCSTR Name) GetAnnotationByName; 751 ID3D10EffectPass function(ID3D10EffectTechnique, UINT Index) GetPassByIndex; 752 ID3D10EffectPass function(ID3D10EffectTechnique, LPCSTR Name) GetPassByName; 753 HRESULT function(ID3D10EffectTechnique, D3D10_STATE_BLOCK_MASK* pStateBlockMask) ComputeStateBlockMask; 754 } 755 alias ID3D10EffectTechniqueVtbl** ID3D10EffectTechnique; 756 757 struct D3D10_EFFECT_DESC { 758 BOOL IsChildEffect; 759 UINT ConstantBuffers; 760 UINT SharedConstantBuffers; 761 UINT GlobalVariables; 762 UINT SharedGlobalVariables; 763 UINT Techniques; 764 } 765 766 extern (C) const GUID IID_ID3D10Effect = {0x51b0ca8b, 0xec0b, 0x4519, [0x87, 0xd, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7]}; 767 768 interface ID3D10Effect : IUnknown { 769 extern(Windows) : 770 BOOL IsValid(); 771 BOOL IsPool(); 772 HRESULT GetDevice(ID3D10Device* ppDevice); 773 HRESULT GetDesc(D3D10_EFFECT_DESC* pDesc); 774 ID3D10EffectConstantBuffer GetConstantBufferByIndex(UINT Index); 775 ID3D10EffectConstantBuffer GetConstantBufferByName(LPCSTR Name); 776 ID3D10EffectVariable GetVariableByIndex(UINT Index); 777 ID3D10EffectVariable GetVariableByName(LPCSTR Name); 778 ID3D10EffectVariable GetVariableBySemantic(LPCSTR Semantic); 779 ID3D10EffectTechnique GetTechniqueByIndex(UINT Index); 780 ID3D10EffectTechnique GetTechniqueByName(LPCSTR Name); 781 HRESULT Optimize(); 782 BOOL IsOptimized(); 783 } 784 785 extern (C) const GUID IID_ID3D10EffectPool = {0x9537ab04, 0x3250, 0x412e, [0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33]}; 786 787 interface ID3D10EffectPool : IUnknown { 788 extern(Windows) : 789 ID3D10Effect AsEffect(); 790 } 791 792 HRESULT D3D10CompileEffectFromMemory(void* pData, SIZE_T DataLength, LPCSTR pSrcFileName, D3D10_SHADER_MACRO* pDefines, ID3D10Include pInclude, UINT HLSLFlags, UINT FXFlags, ID3D10Blob* ppCompiledEffect, ID3D10Blob* ppErrors); 793 HRESULT D3D10CreateEffectFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool pEffectPool, ID3D10Effect* ppEffect); 794 HRESULT D3D10CreateEffectPoolFromMemory(void* pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device pDevice, ID3D10EffectPool* ppEffectPool); 795 HRESULT D3D10DisassembleEffect(ID3D10Effect pEffect, BOOL EnableColorCode, ID3D10Blob* ppDisassembly);