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 19 import "oaidl.idl"; 20 import "ocidl.idl"; 21 22 import "d3d10.idl"; 23 cpp_quote("#include <d3d10_1shader.h>") 24 25 26 typedef 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 35 typedef 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 47 typedef 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 ] 60 interface ID3D10BlendState1 : ID3D10BlendState 61 { 62 void GetDesc1([out] D3D10_BLEND_DESC1 *pDesc); 63 } 64 65 typedef struct D3D10_TEXCUBE_ARRAY_SRV1 66 { 67 UINT MostDetailedMip; 68 UINT MipLevels; 69 UINT First2DArrayFace; 70 UINT NumCubes; 71 } D3D10_TEXCUBE_ARRAY_SRV1; 72 73 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; 74 75 typedef 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 ] 99 interface 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 ] 110 interface 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 124 const UINT D3D10_1_SDK_VERSION = 0x20; 125