ddraw: Avoid LPD3DLIGHT.
[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 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;