|  | /* | 
|  | * 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 | 
|  | ); | 
|  | } |