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