• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
22cpp_quote("#ifndef _D3D10_1_CONSTANTS")
23cpp_quote("#define _D3D10_1_CONSTANTS")
24const UINT D3D10_1_DEFAULT_SAMPLE_MASK                     = 0xffffffff;
25const UINT D3D10_1_GS_INPUT_REGISTER_COUNT                 = 32;
26const UINT D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT     = 32;
27const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
28const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
29const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS      = 1;
30const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
31const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT           = 1;
32const UINT D3D10_1_SHADER_MAJOR_VERSION                    = 4;
33const UINT D3D10_1_SHADER_MINOR_VERSION                    = 1;
34const UINT D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES           = 2048;
35const UINT D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES     = 256;
36const UINT D3D10_1_SO_BUFFER_SLOT_COUNT                    = 4;
37const UINT D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER  = 1;
38const UINT D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT        = 64;
39const UINT D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT           = 32;
40const UINT D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT           = 8;
41const UINT D3D10_1_VS_INPUT_REGISTER_COUNT                 = 32;
42const UINT D3D10_1_VS_OUTPUT_REGISTER_COUNT                = 32;
43cpp_quote("#endif")
44
45cpp_quote("#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP      (0.6)")
46cpp_quote("#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)")
47
48import "d3d10.idl";
49cpp_quote("#include <d3d10_1shader.h>")
50
51
52typedef 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
61typedef 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
73typedef 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]
86interface ID3D10BlendState1 : ID3D10BlendState
87{
88    void GetDesc1([out] D3D10_BLEND_DESC1 *pDesc);
89}
90
91typedef struct D3D10_TEXCUBE_ARRAY_SRV1
92{
93    UINT MostDetailedMip;
94    UINT MipLevels;
95    UINT First2DArrayFace;
96    UINT NumCubes;
97} D3D10_TEXCUBE_ARRAY_SRV1;
98
99typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1;
100
101typedef 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]
125interface 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]
136interface 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
150const UINT D3D10_1_SDK_VERSION = 0x20;
151
152cpp_quote("HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter*,D3D10_DRIVER_TYPE,")
153cpp_quote("    HMODULE,UINT,D3D10_FEATURE_LEVEL1,UINT,ID3D10Device1**);")
154
155[local] HRESULT __stdcall D3D10CreateDeviceAndSwapChain1(IDXGIAdapter *adapter, enum D3D10_DRIVER_TYPE driver_type,
156        HMODULE swrast, UINT flags, D3D10_FEATURE_LEVEL1 feature_level, UINT sdk_version,
157        DXGI_SWAP_CHAIN_DESC *swapchain_desc, IDXGISwapChain **swapchain, ID3D10Device1 **device);
158