| /* | |
| * Copyright 2017 Ihsan Akmal | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| import "dxgi1_4.idl"; | |
| typedef enum DXGI_OUTDUPL_FLAG | |
| { | |
| DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 0x1, | |
| } DXGI_OUTDUPL_FLAG; | |
| typedef enum DXGI_HDR_METADATA_TYPE | |
| { | |
| DXGI_HDR_METADATA_TYPE_NONE = 0x0, | |
| DXGI_HDR_METADATA_TYPE_HDR10 = 0x1, | |
| DXGI_HDR_METADATA_TYPE_HDR10PLUS = 0x2, | |
| } DXGI_HDR_METADATA_TYPE; | |
| typedef enum _DXGI_OFFER_RESOURCE_FLAGS | |
| { | |
| DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1, | |
| } DXGI_OFFER_RESOURCE_FLAGS; | |
| typedef enum _DXGI_RECLAIM_RESOURCE_RESULTS | |
| { | |
| DXGI_RECLAIM_RESOURCE_RESULT_OK = 0x0, | |
| DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 0x1, | |
| DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 0x2, | |
| } DXGI_RECLAIM_RESOURCE_RESULTS; | |
| typedef enum DXGI_FEATURE | |
| { | |
| DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0x0, | |
| } DXGI_FEATURE; | |
| typedef struct DXGI_HDR_METADATA_HDR10 | |
| { | |
| UINT16 RedPrimary[2]; | |
| UINT16 GreenPrimary[2]; | |
| UINT16 BluePrimary[2]; | |
| UINT16 WhitePoint[2]; | |
| UINT MaxMasteringLuminance; | |
| UINT MinMasteringLuminance; | |
| UINT16 MaxContentLightLevel; | |
| UINT16 MaxFrameAverageLightLevel; | |
| } DXGI_HDR_METADATA_HDR10; | |
| typedef struct DXGI_HDR_METADATA_HDR10PLUS | |
| { | |
| BYTE Data[72]; | |
| } DXGI_HDR_METADATA_HDR10PLUS; | |
| [ | |
| object, | |
| uuid(80a07424-ab52-42eb-833c-0c42fd282d98), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIOutput5 : IDXGIOutput4 | |
| { | |
| HRESULT DuplicateOutput1( | |
| [in] IUnknown *device, | |
| [in] UINT flags, | |
| [in] UINT format_count, | |
| [in] const DXGI_FORMAT *formats, | |
| [out] IDXGIOutputDuplication **duplication | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGISwapChain4 : IDXGISwapChain3 | |
| { | |
| HRESULT SetHDRMetaData( | |
| [in] DXGI_HDR_METADATA_TYPE type, | |
| [in] UINT size, | |
| [in] void *metadata | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(95b4f95f-d8da-4ca4-9ee6-3b76d5968a10), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIDevice4 : IDXGIDevice3 | |
| { | |
| HRESULT OfferResources1( | |
| [in] UINT resource_count, | |
| [in] IDXGIResource *const *resources, | |
| [in] DXGI_OFFER_RESOURCE_PRIORITY priority, | |
| [in] UINT flags | |
| ); | |
| HRESULT ReclaimResources1( | |
| [in] UINT resource_count, | |
| [in] IDXGIResource *const *resources, | |
| [out] DXGI_RECLAIM_RESOURCE_RESULTS *results | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(7632e1f5-ee65-4dca-87fd-84cd75f8838d), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIFactory5 : IDXGIFactory4 | |
| { | |
| HRESULT CheckFeatureSupport( | |
| DXGI_FEATURE feature, | |
| [in, out] void *support_data, | |
| UINT support_data_size | |
| ); | |
| } |