2 * Copyright 2007 Andras Kovacs
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.
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.
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
21 typedef struct DXGI_SAMPLE_DESC
{
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
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
;
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
;
134 typedef enum DXGI_MODE_SCALING
{
135 DXGI_MODE_SCALING_UNSPECIFIED
= 0,
136 DXGI_MODE_SCALING_CENTERED
= 1,
137 DXGI_MODE_SCALING_STRETCHED
= 2,
140 typedef struct DXGI_RATIONAL
{
145 typedef struct DXGI_MODE_DESC
{
148 DXGI_RATIONAL RefreshRate
;
150 DXGI_MODE_SCANLINE_ORDER ScanlineOrdering
;
151 DXGI_MODE_SCALING Scaling
;
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
;
162 typedef struct DXGI_RGB
{
168 typedef struct DXGI_GAMMA_CONTROL
{
171 DXGI_RGB GammaCurve
[1025];
172 } DXGI_GAMMA_CONTROL
;