1/* 2 * Copyright 2010 Jacek Caban for CodeWeavers 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19import "oaidl.idl"; 20import "ocidl.idl"; 21 22import "d3d10.idl"; 23cpp_quote("#include <d3d10_1shader.h>") 24 25 26typedef enum D3D10_FEATURE_LEVEL1 27{ 28 D3D10_FEATURE_LEVEL_10_0 = 0xa000, 29 D3D10_FEATURE_LEVEL_10_1 = 0xa100, 30 D3D10_FEATURE_LEVEL_9_1 = 0x9100, 31 D3D10_FEATURE_LEVEL_9_2 = 0x9200, 32 D3D10_FEATURE_LEVEL_9_3 = 0x9300 33} D3D10_FEATURE_LEVEL1; 34 35typedef struct D3D10_RENDER_TARGET_BLEND_DESC1 36{ 37 BOOL BlendEnable; 38 D3D10_BLEND SrcBlend; 39 D3D10_BLEND DestBlend; 40 D3D10_BLEND_OP BlendOp; 41 D3D10_BLEND SrcBlendAlpha; 42 D3D10_BLEND DestBlendAlpha; 43 D3D10_BLEND_OP BlendOpAlpha; 44 UINT8 RenderTargetWriteMask; 45} D3D10_RENDER_TARGET_BLEND_DESC1; 46 47typedef struct D3D10_BLEND_DESC1 48{ 49 BOOL AlphaToCoverageEnable; 50 BOOL IndependentBlendEnable; 51 D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT]; 52} D3D10_BLEND_DESC1; 53 54[ 55 uuid(edad8d99-8a35-4d6d-8566-2ea276cde161), 56 object, 57 local, 58 pointer_default(unique) 59] 60interface ID3D10BlendState1 : ID3D10BlendState 61{ 62 void GetDesc1([out] D3D10_BLEND_DESC1 *pDesc); 63} 64 65typedef struct D3D10_TEXCUBE_ARRAY_SRV1 66{ 67 UINT MostDetailedMip; 68 UINT MipLevels; 69 UINT First2DArrayFace; 70 UINT NumCubes; 71} D3D10_TEXCUBE_ARRAY_SRV1; 72 73typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; 74 75typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1 76{ 77 DXGI_FORMAT Format; 78 D3D10_SRV_DIMENSION1 ViewDimension; 79 union { 80 D3D10_BUFFER_SRV Buffer; 81 D3D10_TEX1D_SRV Texture1D; 82 D3D10_TEX1D_ARRAY_SRV Texture1DArray; 83 D3D10_TEX2D_SRV Texture2D; 84 D3D10_TEX2D_ARRAY_SRV Texture2DArray; 85 D3D10_TEX2DMS_SRV Texture2DMS; 86 D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; 87 D3D10_TEX3D_SRV Texture3D; 88 D3D10_TEXCUBE_SRV TextureCube; 89 D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray; 90 }; 91} D3D10_SHADER_RESOURCE_VIEW_DESC1; 92 93[ 94 uuid(9b7e4c87-342c-4106-a19f-4f2704f689f0), 95 object, 96 local, 97 pointer_default(unique) 98] 99interface ID3D10ShaderResourceView1 : ID3D10ShaderResourceView 100{ 101 void GetDesc1([out] D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc); 102} 103 104[ 105 uuid(9b7e4c8f-342c-4106-a19f-4f2704f689f0), 106 object, 107 local, 108 pointer_default(unique) 109] 110interface ID3D10Device1 : ID3D10Device 111{ 112 HRESULT CreateShaderResourceView1( 113 [in] ID3D10Resource *pResource, 114 [in, out] const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc, 115 [out] ID3D10ShaderResourceView1 **ppSRView); 116 117 HRESULT CreateBlendState1( 118 [in] const D3D10_BLEND_DESC1 *pBlendStateDesc, 119 [out] ID3D10BlendState1 **ppBlendState); 120 121 D3D10_FEATURE_LEVEL1 GetFeatureLevel(); 122} 123 124const UINT D3D10_1_SDK_VERSION = 0x20; 125