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