source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_3.idl@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.5 KB
RevLine 
[1166]1/*
2 * Copyright 2017 Ihsan Akmal
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 "dxgi1_2.idl";
20
21typedef struct DXGI_MATRIX_3X2_F
22{
23 float _11;
24 float _12;
25 float _21;
26 float _22;
27 float _31;
28 float _32;
29} DXGI_MATRIX_3X2_F;
30
31typedef struct DXGI_DECODE_SWAP_CHAIN_DESC
32{
33 UINT Flags;
34} DXGI_DECODE_SWAP_CHAIN_DESC;
35
36typedef enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS
37{
38 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
39 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
40 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4,
41} DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS;
42
43typedef enum DXGI_FRAME_PRESENTATION_MODE
44{
45 DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
46 DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
47 DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
48 DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3,
49} DXGI_FRAME_PRESENTATION_MODE;
50
51typedef struct DXGI_FRAME_STATISTICS_MEDIA
52{
53 UINT PresentCount;
54 UINT PresentRefreshCount;
55 UINT SyncRefreshCount;
56 LARGE_INTEGER SyncQPCTime;
57 LARGE_INTEGER SyncGPUTime;
58 DXGI_FRAME_PRESENTATION_MODE CompositionMode;
59 UINT ApprovedPresentDuration;
60} DXGI_FRAME_STATISTICS_MEDIA;
61
62typedef enum DXGI_OVERLAY_SUPPORT_FLAG
63{
64 DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
65 DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2,
66} DXGI_OVERLAY_SUPPORT_FLAG;
67
68[
69 object,
70 uuid(6007896c-3244-4afd-bf18-a6d3beda5023),
71 local,
72 pointer_default(unique)
73]
74interface IDXGIDevice3 : IDXGIDevice2
75{
76 void Trim();
77}
78
79[
80 object,
81 uuid(a8be2ac4-199f-4946-b331-79599fb98de7),
82 local,
83 pointer_default(unique)
84]
85interface IDXGISwapChain2 : IDXGISwapChain1
86{
87 HRESULT SetSourceSize(UINT width, UINT height);
88
89 HRESULT GetSourceSize(
90 [out] UINT *width,
91 [out] UINT *height
92 );
93
94 HRESULT SetMaximumFrameLatency(UINT max_latency);
95
96 HRESULT GetMaximumFrameLatency(
97 [out] UINT *max_latency
98 );
99
100 HANDLE GetFrameLatencyWaitableObject();
101
102 HRESULT SetMatrixTransform(const DXGI_MATRIX_3X2_F *matrix);
103
104 HRESULT GetMatrixTransform(
105 [out] DXGI_MATRIX_3X2_F *matrix
106 );
107}
108
109[
110 object,
111 uuid(595e39d1-2724-4663-99b1-da969de28364),
112 local,
113 pointer_default(unique)
114]
115interface IDXGIOutput2 : IDXGIOutput1
116{
117 BOOL SupportsOverlays();
118}
119
120[
121 object,
122 uuid(25483823-cd46-4c7d-86ca-47aa95b837bd),
123 local,
124 pointer_default(unique)
125]
126interface IDXGIFactory3 : IDXGIFactory2
127{
128 UINT GetCreationFlags();
129}
130
131[
132 object,
133 uuid(2633066b-4514-4c7a-8fd8-12ea98059d18),
134 local,
135 pointer_default(unique)
136]
137interface IDXGIDecodeSwapChain : IUnknown
138{
139 HRESULT PresentBuffer(UINT buffer_to_present, UINT sync_interval, UINT flags);
140
141 HRESULT SetSourceRect(const RECT *rect);
142
143 HRESULT SetTargetRect(const RECT *rect);
144
145 HRESULT SetDestSize(UINT width, UINT height);
146
147 HRESULT GetSourceRect(
148 [out] RECT *rect
149 );
150
151 HRESULT GetTargetRect(
152 [out] RECT *rect
153 );
154
155 HRESULT GetDestSize(
156 [out] UINT *width,
157 [out] UINT *height
158 );
159
160 HRESULT SetColorSpace(DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace);
161
162 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS GetColorSpace();
163}
164
165[
166 object,
167 uuid(41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12),
168 local,
169 pointer_default(unique)
170]
171interface IDXGIFactoryMedia : IUnknown
172{
173 HRESULT CreateSwapChainForCompositionSurfaceHandle(
174 [in] IUnknown *device,
175 [in] HANDLE surface,
176 [in] const DXGI_SWAP_CHAIN_DESC1 *desc,
177 [in] IDXGIOutput *restrict_to_output,
178 [out] IDXGISwapChain1 **swapchain
179 );
180
181 HRESULT CreateDecodeSwapChainForCompositionSurfaceHandle(
182 [in] IUnknown *device,
183 [in] HANDLE surface,
184 [in] DXGI_DECODE_SWAP_CHAIN_DESC *desc,
185 [in] IDXGIResource *yuv_decode_buffers,
186 [in] IDXGIOutput *restrict_to_output,
187 [out] IDXGIDecodeSwapChain **swapchain
188 );
189}
190
191[
192 object,
193 uuid(dd95b90b-f05f-4f6a-bd65-25bfb264bd84),
194 local,
195 pointer_default(unique)
196]
197interface IDXGISwapChainMedia : IUnknown
198{
199 HRESULT GetFrameStatisticsMedia(
200 [out] DXGI_FRAME_STATISTICS_MEDIA *stats
201 );
202
203 HRESULT SetPresentDuration(UINT duration);
204
205 HRESULT CheckPresentDurationSupport(
206 UINT desired_present_duration,
207 [out] UINT *closest_smaller_present_duration,
208 [out] UINT *closest_larger_present_duration
209 );
210}
211
212[
213 object,
214 uuid(8a6bb301-7e7e-41F4-a8e0-5b32f7f99b18),
215 local,
216 pointer_default(unique)
217]
218interface IDXGIOutput3 : IDXGIOutput2
219{
220 HRESULT CheckOverlaySupport(
221 [in] DXGI_FORMAT enum_format,
222 [out] IUnknown *concerned_device,
223 [out] UINT *flags
224 );
225}
226
227const UINT DXGI_CREATE_FACTORY_DEBUG = 0x1;
228
229[local] HRESULT __stdcall CreateDXGIFactory2(UINT flags, REFIID iid, void **factory);
230
231[local] HRESULT __stdcall DXGIGetDebugInterface1(UINT flags, REFIID iid, void **debug);
Note: See TracBrowser for help on using the repository browser.