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