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 cpp_quote("#ifndef _D3D10_1_CONSTANTS") 23 cpp_quote("#define _D3D10_1_CONSTANTS") 24 const UINT D3D10_1_DEFAULT_SAMPLE_MASK = 0xffffffff; 25 const UINT D3D10_1_GS_INPUT_REGISTER_COUNT = 32; 26 const UINT D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; 27 const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128; 28 const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32; 29 const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1; 30 const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32; 31 const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT = 1; 32 const UINT D3D10_1_SHADER_MAJOR_VERSION = 4; 33 const UINT D3D10_1_SHADER_MINOR_VERSION = 1; 34 const UINT D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; 35 const UINT D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256; 36 const UINT D3D10_1_SO_BUFFER_SLOT_COUNT = 4; 37 const UINT D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1; 38 const UINT D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64; 39 const UINT D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT = 32; 40 const UINT D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; 41 const UINT D3D10_1_VS_INPUT_REGISTER_COUNT = 32; 42 const UINT D3D10_1_VS_OUTPUT_REGISTER_COUNT = 32; 43 cpp_quote("#endif") 44 45 cpp_quote("#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP (0.6)") 46 cpp_quote("#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)") 47 48 import "d3d10.idl"; 49 cpp_quote("#include <d3d10_1shader.h>") 50 51 52 typedef enum D3D10_FEATURE_LEVEL1 53 { 54 D3D10_FEATURE_LEVEL_10_0 = 0xa000, 55 D3D10_FEATURE_LEVEL_10_1 = 0xa100, 56 D3D10_FEATURE_LEVEL_9_1 = 0x9100, 57 D3D10_FEATURE_LEVEL_9_2 = 0x9200, 58 D3D10_FEATURE_LEVEL_9_3 = 0x9300 59 } D3D10_FEATURE_LEVEL1; 60 61 typedef struct D3D10_RENDER_TARGET_BLEND_DESC1 62 { 63 BOOL BlendEnable; 64 D3D10_BLEND SrcBlend; 65 D3D10_BLEND DestBlend; 66 D3D10_BLEND_OP BlendOp; 67 D3D10_BLEND SrcBlendAlpha; 68 D3D10_BLEND DestBlendAlpha; 69 D3D10_BLEND_OP BlendOpAlpha; 70 UINT8 RenderTargetWriteMask; 71 } D3D10_RENDER_TARGET_BLEND_DESC1; 72 73 typedef struct D3D10_BLEND_DESC1 74 { 75 BOOL AlphaToCoverageEnable; 76 BOOL IndependentBlendEnable; 77 D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT]; 78 } D3D10_BLEND_DESC1; 79 80 [ 81 uuid(edad8d99-8a35-4d6d-8566-2ea276cde161), 82 object, 83 local, 84 pointer_default(unique) 85 ] 86 interface ID3D10BlendState1 : ID3D10BlendState 87 { 88 void GetDesc1([out] D3D10_BLEND_DESC1 *pDesc); 89 } 90 91 typedef struct D3D10_TEXCUBE_ARRAY_SRV1 92 { 93 UINT MostDetailedMip; 94 UINT MipLevels; 95 UINT First2DArrayFace; 96 UINT NumCubes; 97 } D3D10_TEXCUBE_ARRAY_SRV1; 98 99 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; 100 101 typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1 102 { 103 DXGI_FORMAT Format; 104 D3D10_SRV_DIMENSION1 ViewDimension; 105 union { 106 D3D10_BUFFER_SRV Buffer; 107 D3D10_TEX1D_SRV Texture1D; 108 D3D10_TEX1D_ARRAY_SRV Texture1DArray; 109 D3D10_TEX2D_SRV Texture2D; 110 D3D10_TEX2D_ARRAY_SRV Texture2DArray; 111 D3D10_TEX2DMS_SRV Texture2DMS; 112 D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; 113 D3D10_TEX3D_SRV Texture3D; 114 D3D10_TEXCUBE_SRV TextureCube; 115 D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray; 116 }; 117 } D3D10_SHADER_RESOURCE_VIEW_DESC1; 118 119 [ 120 uuid(9b7e4c87-342c-4106-a19f-4f2704f689f0), 121 object, 122 local, 123 pointer_default(unique) 124 ] 125 interface ID3D10ShaderResourceView1 : ID3D10ShaderResourceView 126 { 127 void GetDesc1([out] D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc); 128 } 129 130 [ 131 uuid(9b7e4c8f-342c-4106-a19f-4f2704f689f0), 132 object, 133 local, 134 pointer_default(unique) 135 ] 136 interface ID3D10Device1 : ID3D10Device 137 { 138 HRESULT CreateShaderResourceView1( 139 [in] ID3D10Resource *pResource, 140 [in, out] const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc, 141 [out] ID3D10ShaderResourceView1 **ppSRView); 142 143 HRESULT CreateBlendState1( 144 [in] const D3D10_BLEND_DESC1 *pBlendStateDesc, 145 [out] ID3D10BlendState1 **ppBlendState); 146 147 D3D10_FEATURE_LEVEL1 GetFeatureLevel(); 148 } 149 150 const UINT D3D10_1_SDK_VERSION = 0x20; 151 152 cpp_quote("HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter*,D3D10_DRIVER_TYPE,") 153 cpp_quote(" HMODULE,UINT,D3D10_FEATURE_LEVEL1,UINT,ID3D10Device1**);") 154