From 5b4d0f17e3553c74f463ee81e72f347c8fcb15f7 Mon Sep 17 00:00:00 2001 From: Ihsan Akmal Date: Thu, 21 Sep 2017 22:29:37 +0200 Subject: [PATCH] include: Add dxgi1_5.idl. Signed-off-by: Ihsan Akmal Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- include/Makefile.in | 1 + include/dxgi1_5.idl | 127 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 include/dxgi1_5.idl diff --git a/include/Makefile.in b/include/Makefile.in index f21d12032e2..04665ef4a37 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -71,6 +71,7 @@ IDL_SRCS = \ dxgi1_2.idl \ dxgi1_3.idl \ dxgi1_4.idl \ + dxgi1_5.idl \ dxgicommon.idl \ dxgiformat.idl \ dxgitype.idl \ diff --git a/include/dxgi1_5.idl b/include/dxgi1_5.idl new file mode 100644 index 00000000000..d88d1417f50 --- /dev/null +++ b/include/dxgi1_5.idl @@ -0,0 +1,127 @@ +/* + * 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 + ); +}