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