2 * Copyright 2017 Ihsan Akmal
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 enum DXGI_OUTDUPL_FLAG
23 DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY
= 0x1,
26 typedef enum DXGI_HDR_METADATA_TYPE
28 DXGI_HDR_METADATA_TYPE_NONE
= 0x0,
29 DXGI_HDR_METADATA_TYPE_HDR10
= 0x1,
30 DXGI_HDR_METADATA_TYPE_HDR10PLUS
= 0x2,
31 } DXGI_HDR_METADATA_TYPE
;
33 typedef enum _DXGI_OFFER_RESOURCE_FLAGS
35 DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT
= 0x1,
36 } DXGI_OFFER_RESOURCE_FLAGS
;
38 typedef enum _DXGI_RECLAIM_RESOURCE_RESULTS
40 DXGI_RECLAIM_RESOURCE_RESULT_OK
= 0x0,
41 DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED
= 0x1,
42 DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED
= 0x2,
43 } DXGI_RECLAIM_RESOURCE_RESULTS
;
45 typedef enum DXGI_FEATURE
47 DXGI_FEATURE_PRESENT_ALLOW_TEARING
= 0x0,
50 typedef struct DXGI_HDR_METADATA_HDR10
53 UINT16 GreenPrimary
[2];
54 UINT16 BluePrimary
[2];
56 UINT MaxMasteringLuminance
;
57 UINT MinMasteringLuminance
;
58 UINT16 MaxContentLightLevel
;
59 UINT16 MaxFrameAverageLightLevel
;
60 } DXGI_HDR_METADATA_HDR10
;
62 typedef struct DXGI_HDR_METADATA_HDR10PLUS
65 } DXGI_HDR_METADATA_HDR10PLUS
;
69 uuid(80a07424
-ab52
-42eb
-833c
-0c42fd282d98
),
71 pointer_default(unique)
73 interface IDXGIOutput5
: IDXGIOutput4
75 HRESULT DuplicateOutput1
(
76 [in] IUnknown
*device
,
78 [in] UINT format_count
,
79 [in] const DXGI_FORMAT
*formats
,
80 [out] IDXGIOutputDuplication
**duplication
86 uuid(3d585d5a
-bd4a
-489e
-b1f4
-3dbcb6452ffb
),
88 pointer_default(unique)
90 interface IDXGISwapChain4
: IDXGISwapChain3
92 HRESULT SetHDRMetaData
(
93 [in] DXGI_HDR_METADATA_TYPE type
,
101 uuid(95b4f95f
-d8da
-4ca4
-9ee6
-3b76d5968a10
),
103 pointer_default(unique)
105 interface IDXGIDevice4
: IDXGIDevice3
107 HRESULT OfferResources1
(
108 [in] UINT resource_count
,
109 [in] IDXGIResource
*const *resources
,
110 [in] DXGI_OFFER_RESOURCE_PRIORITY priority
,
113 HRESULT ReclaimResources1
(
114 [in] UINT resource_count
,
115 [in] IDXGIResource
*const *resources
,
116 [out] DXGI_RECLAIM_RESOURCE_RESULTS
*results
122 uuid(7632e1f5
-ee65
-4dca
-87fd
-84cd75f8838d
),
124 pointer_default(unique)
126 interface IDXGIFactory5
: IDXGIFactory4
128 HRESULT CheckFeatureSupport
(
129 DXGI_FEATURE feature
,
130 [in, out] void *support_data
,
131 UINT support_data_size