// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
DEFINE_GUID!{IID_ID3D10StateBlock,
    0x0803425a, 0x57f5, 0x4dd6, 0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08}
DEFINE_GUID!{IID_ID3D10EffectType,
    0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd}
DEFINE_GUID!{IID_ID3D10EffectVariable,
    0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b}
DEFINE_GUID!{IID_ID3D10EffectScalarVariable,
    0x00e48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x02, 0x2d, 0xee, 0x53, 0x43, 0x1f}
DEFINE_GUID!{IID_ID3D10EffectVectorVariable,
    0x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81}
DEFINE_GUID!{IID_ID3D10EffectMatrixVariable,
    0x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0}
DEFINE_GUID!{IID_ID3D10EffectStringVariable,
    0x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff}
DEFINE_GUID!{IID_ID3D10EffectShaderResourceVariable,
    0xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc}
DEFINE_GUID!{IID_ID3D10EffectRenderTargetViewVariable,
    0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17}
DEFINE_GUID!{IID_ID3D10EffectDepthStencilViewVariable,
    0x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23}
DEFINE_GUID!{IID_ID3D10EffectConstantBuffer,
    0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3}
DEFINE_GUID!{IID_ID3D10EffectShaderVariable,
    0x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x04, 0x07, 0xa0, 0x7d, 0x9e, 0x06}
DEFINE_GUID!{IID_ID3D10EffectBlendVariable,
    0x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0x0e, 0x91, 0x60, 0xcf, 0xb0, 0x7b}
DEFINE_GUID!{IID_ID3D10EffectDepthStencilVariable,
    0xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x01, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d}
DEFINE_GUID!{IID_ID3D10EffectRasterizerVariable,
    0x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0x0b, 0x34}
DEFINE_GUID!{IID_ID3D10EffectSamplerVariable,
    0x6530d5c7, 0x07e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80}
DEFINE_GUID!{IID_ID3D10EffectPass,
    0x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54}
DEFINE_GUID!{IID_ID3D10EffectTechnique,
    0xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75}
DEFINE_GUID!{IID_ID3D10Effect,
    0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7}
DEFINE_GUID!{IID_ID3D10EffectPool,
    0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33}
