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