include: Move D3D_SRV_DIMENSION to d3dcommon.h.
[wine] / include / d3d10_1.idl
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
24 typedef enum D3D10_FEATURE_LEVEL1
25 {
26     D3D10_FEATURE_LEVEL_10_0  = 0xa000,
27     D3D10_FEATURE_LEVEL_10_1  = 0xa100,
28     D3D10_FEATURE_LEVEL_9_1   = 0x9100,
29     D3D10_FEATURE_LEVEL_9_2   = 0x9200,
30     D3D10_FEATURE_LEVEL_9_3   = 0x9300
31 } D3D10_FEATURE_LEVEL1;
32
33 typedef struct D3D10_RENDER_TARGET_BLEND_DESC1
34 {
35     BOOL BlendEnable;
36     D3D10_BLEND SrcBlend;
37     D3D10_BLEND DestBlend;
38     D3D10_BLEND_OP BlendOp;
39     D3D10_BLEND SrcBlendAlpha;
40     D3D10_BLEND DestBlendAlpha;
41     D3D10_BLEND_OP BlendOpAlpha;
42     UINT8 RenderTargetWriteMask;
43 } D3D10_RENDER_TARGET_BLEND_DESC1;
44
45 typedef struct D3D10_BLEND_DESC1
46 {
47     BOOL AlphaToCoverageEnable;
48     BOOL IndependentBlendEnable;
49     D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT];
50 } D3D10_BLEND_DESC1;
51
52 [
53     uuid(edad8d99-8a35-4d6d-8566-2ea276cde161),
54     object,
55     local,
56     pointer_default(unique)
57 ]
58 interface ID3D10BlendState1 : ID3D10BlendState
59 {
60     void GetDesc1([out] D3D10_BLEND_DESC1 *pDesc);
61 }
62
63 typedef struct D3D10_TEXCUBE_ARRAY_SRV1
64 {
65     UINT MostDetailedMip;
66     UINT MipLevels;
67     UINT First2DArrayFace;
68     UINT NumCubes;
69 } D3D10_TEXCUBE_ARRAY_SRV1;
70
71 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1;
72
73 typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1
74 {
75     DXGI_FORMAT Format;
76     D3D10_SRV_DIMENSION1  ViewDimension;
77     union {
78         D3D10_BUFFER_SRV Buffer;
79         D3D10_TEX1D_SRV Texture1D;
80         D3D10_TEX1D_ARRAY_SRV Texture1DArray;
81         D3D10_TEX2D_SRV Texture2D;
82         D3D10_TEX2D_ARRAY_SRV Texture2DArray;
83         D3D10_TEX2DMS_SRV Texture2DMS;
84         D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
85         D3D10_TEX3D_SRV Texture3D;
86         D3D10_TEXCUBE_SRV TextureCube;
87         D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
88     };
89 } D3D10_SHADER_RESOURCE_VIEW_DESC1;
90
91 [
92     uuid(9b7e4c87-342c-4106-a19f-4f2704f689f0),
93     object,
94     local,
95     pointer_default(unique)
96 ]
97 interface ID3D10ShaderResourceView1 : ID3D10ShaderResourceView
98 {
99     void GetDesc1([out] D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc);
100 }
101
102 [
103     uuid(9b7e4c8f-342c-4106-a19f-4f2704f689f0),
104     object,
105     local,
106     pointer_default(unique)
107 ]
108 interface ID3D10Device1 : ID3D10Device
109 {
110     HRESULT CreateShaderResourceView1(
111             [in] ID3D10Resource *pResource,
112             [in, out] const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
113             [out] ID3D10ShaderResourceView1 **ppSRView);
114
115     HRESULT CreateBlendState1(
116             [in] const D3D10_BLEND_DESC1 *pBlendStateDesc,
117             [out] ID3D10BlendState1 **ppBlendState);
118
119     D3D10_FEATURE_LEVEL1 GetFeatureLevel();
120 }