include: Add avrt header.
[wine] / include / dxgitype.idl
1 /*
2  * Copyright 2007 Andras Kovacs
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 import "oaidl.idl";
19 import "ocidl.idl";
20
21 typedef struct DXGI_SAMPLE_DESC {
22     UINT Count;
23     UINT Quality;
24 } DXGI_SAMPLE_DESC;
25
26 typedef enum DXGI_FORMAT {
27     DXGI_FORMAT_UNKNOWN                 = 0,
28     DXGI_FORMAT_R32G32B32A32_TYPELESS   = 1,
29     DXGI_FORMAT_R32G32B32A32_FLOAT      = 2,
30     DXGI_FORMAT_R32G32B32A32_UINT       = 3,
31     DXGI_FORMAT_R32G32B32A32_SINT       = 4,
32     DXGI_FORMAT_R32G32B32_TYPELESS      = 5,
33     DXGI_FORMAT_R32G32B32_FLOAT         = 6,
34     DXGI_FORMAT_R32G32B32_UINT          = 7,
35     DXGI_FORMAT_R32G32B32_SINT          = 8,
36     DXGI_FORMAT_R16G16B16A16_TYPELESS   = 9,
37     DXGI_FORMAT_R16G16B16A16_FLOAT      = 10,
38     DXGI_FORMAT_R16G16B16A16_UNORM      = 11,
39     DXGI_FORMAT_R16G16B16A16_UINT       = 12,
40     DXGI_FORMAT_R16G16B16A16_SNORM      = 13,
41     DXGI_FORMAT_R16G16B16A16_SINT       = 14,
42     DXGI_FORMAT_R32G32_TYPELESS         = 15,
43     DXGI_FORMAT_R32G32_FLOAT            = 16,
44     DXGI_FORMAT_R32G32_UINT             = 17,
45     DXGI_FORMAT_R32G32_SINT             = 18,
46     DXGI_FORMAT_R32G8X24_TYPELESS       = 19,
47     DXGI_FORMAT_D32_FLOAT_S8X24_UINT    = 20,
48     DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS= 21,
49     DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
50     DXGI_FORMAT_R10G10B10A2_TYPELESS    = 23,
51     DXGI_FORMAT_R10G10B10A2_UNORM       = 24,
52     DXGI_FORMAT_R10G10B10A2_UINT        = 25,
53     DXGI_FORMAT_R11G11B10_FLOAT         = 26,
54     DXGI_FORMAT_R8G8B8A8_TYPELESS       = 27,
55     DXGI_FORMAT_R8G8B8A8_UNORM          = 28,
56     DXGI_FORMAT_R8G8B8A8_UNORM_SRGB     = 29,
57     DXGI_FORMAT_R8G8B8A8_UINT           = 30,
58     DXGI_FORMAT_R8G8B8A8_SNORM          = 31,
59     DXGI_FORMAT_R8G8B8A8_SINT           = 32,
60     DXGI_FORMAT_R16G16_TYPELESS         = 33,
61     DXGI_FORMAT_R16G16_FLOAT            = 34,
62     DXGI_FORMAT_R16G16_UNORM            = 35,
63     DXGI_FORMAT_R16G16_UINT             = 36,
64     DXGI_FORMAT_R16G16_SNORM            = 37,
65     DXGI_FORMAT_R16G16_SINT             = 38,
66     DXGI_FORMAT_R32_TYPELESS            = 39,
67     DXGI_FORMAT_D32_FLOAT               = 40,
68     DXGI_FORMAT_R32_FLOAT               = 41,
69     DXGI_FORMAT_R32_UINT                = 42,
70     DXGI_FORMAT_R32_SINT                = 43,
71     DXGI_FORMAT_R24G8_TYPELESS          = 44,
72     DXGI_FORMAT_D24_UNORM_S8_UINT       = 45,
73     DXGI_FORMAT_R24_UNORM_X8_TYPELESS   = 46,
74     DXGI_FORMAT_X24_TYPELESS_G8_UINT    = 47,
75     DXGI_FORMAT_R8G8_TYPELESS           = 48,
76     DXGI_FORMAT_R8G8_UNORM              = 49,
77     DXGI_FORMAT_R8G8_UINT               = 50,
78     DXGI_FORMAT_R8G8_SNORM              = 51,
79     DXGI_FORMAT_R8G8_SINT               = 52,
80     DXGI_FORMAT_R16_TYPELESS            = 53,
81     DXGI_FORMAT_R16_FLOAT               = 54,
82     DXGI_FORMAT_D16_UNORM               = 55,
83     DXGI_FORMAT_R16_UNORM               = 56,
84     DXGI_FORMAT_R16_UINT                = 57,
85     DXGI_FORMAT_R16_SNORM               = 58,
86     DXGI_FORMAT_R16_SINT                = 59,
87     DXGI_FORMAT_R8_TYPELESS             = 60,
88     DXGI_FORMAT_R8_UNORM                = 61,
89     DXGI_FORMAT_R8_UINT                 = 62,
90     DXGI_FORMAT_R8_SNORM                = 63,
91     DXGI_FORMAT_R8_SINT                 = 64,
92     DXGI_FORMAT_A8_UNORM                = 65,
93     DXGI_FORMAT_R1_UNORM                = 66,
94     DXGI_FORMAT_R9G9B9E5_SHAREDEXP      = 67,
95     DXGI_FORMAT_R8G8_B8G8_UNORM         = 68,
96     DXGI_FORMAT_G8R8_G8B8_UNORM         = 69,
97     DXGI_FORMAT_BC1_TYPELESS            = 70,
98     DXGI_FORMAT_BC1_UNORM               = 71,
99     DXGI_FORMAT_BC1_UNORM_SRGB          = 72,
100     DXGI_FORMAT_BC2_TYPELESS            = 73,
101     DXGI_FORMAT_BC2_UNORM               = 74,
102     DXGI_FORMAT_BC2_UNORM_SRGB          = 75,
103     DXGI_FORMAT_BC3_TYPELESS            = 76,
104     DXGI_FORMAT_BC3_UNORM               = 77,
105     DXGI_FORMAT_BC3_UNORM_SRGB          = 78,
106     DXGI_FORMAT_BC4_TYPELESS            = 79,
107     DXGI_FORMAT_BC4_UNORM               = 80,
108     DXGI_FORMAT_BC4_SNORM               = 81,
109     DXGI_FORMAT_BC5_TYPELESS            = 82,
110     DXGI_FORMAT_BC5_UNORM               = 83,
111     DXGI_FORMAT_BC5_SNORM               = 84,
112     DXGI_FORMAT_B5G6R5_UNORM            = 85,
113     DXGI_FORMAT_B5G5R5A1_UNORM          = 86,
114     DXGI_FORMAT_B8G8R8A8_UNORM          = 87,
115     DXGI_FORMAT_B8G8R8X8_UNORM          = 88,
116     DXGI_FORMAT_FORCE_UINT              = 0xffffffff
117 } DXGI_FORMAT;
118
119 typedef enum DXGI_MODE_ROTATION {
120     DXGI_MODE_ROTATION_UNSPECIFIED  = 0,
121     DXGI_MODE_ROTATION_IDENTITY     = 1,
122     DXGI_MODE_ROTATION_ROTATE90     = 2,
123     DXGI_MODE_ROTATION_ROTATE180    = 3,
124     DXGI_MODE_ROTATION_ROTATE270    = 4,
125 } DXGI_MODE_ROTATION;
126
127 typedef enum DXGI_MODE_SCANLINE_ORDER {
128     DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED        = 0,
129     DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE        = 1,
130     DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST  = 2,
131     DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST  = 3,
132 } DXGI_MODE_SCANLINE_ORDER;
133
134 typedef enum DXGI_MODE_SCALING {
135     DXGI_MODE_SCALING_UNSPECIFIED   = 0,
136     DXGI_MODE_SCALING_CENTERED      = 1,
137     DXGI_MODE_SCALING_STRETCHED     = 2,
138 } DXGI_MODE_SCALING;
139
140 typedef struct DXGI_RATIONAL {
141     UINT Numerator;
142     UINT Denominator;
143 } DXGI_RATIONAL;
144
145 typedef struct DXGI_MODE_DESC {
146     UINT Width;
147     UINT Height;
148     DXGI_RATIONAL RefreshRate;
149     DXGI_FORMAT Format;
150     DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
151     DXGI_MODE_SCALING Scaling;
152 } DXGI_MODE_DESC;
153
154 typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES {
155     BOOL ScaleAndOffsetSupported;
156     float MaxConvertedValue;
157     float MinConvertedValue;
158     UINT NumGammaControlPoints;
159     float ControlPointPositions[1025];
160 } DXGI_GAMMA_CONTROL_CAPABILITIES;
161
162 typedef struct DXGI_RGB {
163     float Red;
164     float Green;
165     float Blue;
166 } DXGI_RGB;
167
168 typedef struct DXGI_GAMMA_CONTROL {
169     DXGI_RGB Scale;
170     DXGI_RGB Offset;
171     DXGI_RGB GammaCurve[1025];
172 } DXGI_GAMMA_CONTROL;