From 67aa02726b4595e126c8648b734538f7b7a29394 Mon Sep 17 00:00:00 2001 From: Ihsan Akmal Date: Thu, 21 Sep 2017 22:29:36 +0200 Subject: [PATCH] include: Add dxgi1_4.idl. Signed-off-by: Ihsan Akmal Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- include/Makefile.in | 1 + include/dxgi1_4.idl | 140 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 include/dxgi1_4.idl diff --git a/include/Makefile.in b/include/Makefile.in index 9acb0bfcb3a..f21d12032e2 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -70,6 +70,7 @@ IDL_SRCS = \ dxgi.idl \ dxgi1_2.idl \ dxgi1_3.idl \ + dxgi1_4.idl \ dxgicommon.idl \ dxgiformat.idl \ dxgitype.idl \ diff --git a/include/dxgi1_4.idl b/include/dxgi1_4.idl new file mode 100644 index 00000000000..0f63df202e8 --- /dev/null +++ b/include/dxgi1_4.idl @@ -0,0 +1,140 @@ +/* + * 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_3.idl"; + +typedef enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG +{ + DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1, + DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2, +} DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG; + +typedef enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG +{ + DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1, +} DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG; + +typedef enum DXGI_MEMORY_SEGMENT_GROUP +{ + DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0x0, + DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 0x1, +} DXGI_MEMORY_SEGMENT_GROUP; + +typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO +{ + UINT64 Budget; + UINT64 CurrentUsage; + UINT64 AvailableForReservation; + UINT64 CurrentReservation; +} DXGI_QUERY_VIDEO_MEMORY_INFO; + +[ + object, + uuid(94d99bdb-f1f8-4ab0-b236-7da0170edab1), + local, + pointer_default(unique) +] +interface IDXGISwapChain3 : IDXGISwapChain2 +{ + UINT GetCurrentBackBufferIndex(); + HRESULT CheckColorSpaceSupport( + [in] DXGI_COLOR_SPACE_TYPE colour_space, + [out] UINT *colour_space_support + ); + HRESULT SetColorSpace1( + [in] DXGI_COLOR_SPACE_TYPE colour_space + ); + HRESULT ResizeBuffers1( + [in] UINT buffer_count, + [in] UINT width, + [in] UINT height, + [in] DXGI_FORMAT format, + [in] UINT flags, + [in] const UINT *node_mask, + [in] IUnknown *const *present_queue + ); +} + +[ + object, + uuid(dc7dca35-2196-414d-9F53-617884032a60), + local, + pointer_default(unique) +] +interface IDXGIOutput4 : IDXGIOutput3 +{ + HRESULT CheckOverlayColorSpaceSupport( + [in] DXGI_FORMAT format, + [in] DXGI_COLOR_SPACE_TYPE colour_space, + [in] IUnknown *device, + [out] UINT *flags + ); +} + +[ + object, + uuid(1bc6ea02-ef36-464f-bf0c-21ca39e5168a), + local, + pointer_default(unique) +] +interface IDXGIFactory4 : IDXGIFactory3 +{ + HRESULT EnumAdapterByLuid( + [in] LUID luid, + [in] REFIID iid, + [out] void **adapter + ); + HRESULT EnumWarpAdapter( + [in] REFIID iid, + [out] void **adapter + ); +} + +[ + object, + uuid(645967a4-1392-4310-a798-8053ce3e93fd), + local, + pointer_default(unique) +] +interface IDXGIAdapter3 : IDXGIAdapter2 +{ + HRESULT RegisterHardwareContentProtectionTeardownStatusEvent( + [in] HANDLE event, + [out] DWORD *cookie + ); + void UnregisterHardwareContentProtectionTeardownStatus( + [in] DWORD cookie + ); + HRESULT QueryVideoMemoryInfo( + [in] UINT node_index, + [in] DXGI_MEMORY_SEGMENT_GROUP segment_group, + [out] DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info + ); + HRESULT SetVideoMemoryReservation( + [in] UINT node_index, + [in] DXGI_MEMORY_SEGMENT_GROUP segment_group, + [in] UINT64 reservation + ); + HRESULT RegisterVideoMemoryBudgetChangeNotificationEvent( + [in] HANDLE event, + [out] DWORD *cookie + ); + void UnregisterVideoMemoryBudgetChangeNotification( + [in] DWORD cookie + ); +}