blob: 7919f016160730d806d39726cce93b6bcde8a810 [file] [log] [blame]
/*
* 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
);
}