1/* 2 * Copyright 2017 Ihsan Akmal 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19import "dxgi1_5.idl"; 20 21typedef enum DXGI_ADAPTER_FLAG3 22{ 23 DXGI_ADAPTER_FLAG3_NONE = 0x0, 24 DXGI_ADAPTER_FLAG3_REMOTE = 0x1, 25 DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2, 26 DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4, 27 DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff, 28} DXGI_ADAPTER_FLAG3; 29 30typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS 31{ 32 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1, 33 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2, 34 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4, 35} DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS; 36 37typedef struct DXGI_ADAPTER_DESC3 38{ 39 WCHAR Description[128]; 40 UINT VendorId; 41 UINT DeviceId; 42 UINT SubSysId; 43 UINT Revision; 44 SIZE_T DedicatedVideoMemory; 45 SIZE_T DedicatedSystemMemory; 46 SIZE_T SharedSystemMemory; 47 LUID AdapterLuid; 48 DXGI_ADAPTER_FLAG3 Flags; 49 DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; 50 DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; 51} DXGI_ADAPTER_DESC3; 52 53typedef struct DXGI_OUTPUT_DESC1 54{ 55 WCHAR DeviceName[32]; 56 RECT DesktopCoordinates; 57 BOOL AttachedToDesktop; 58 DXGI_MODE_ROTATION Rotation; 59 HMONITOR Monitor; 60 UINT BitsPerColor; 61 DXGI_COLOR_SPACE_TYPE ColorSpace; 62 FLOAT RedPrimary[2]; 63 FLOAT GreenPrimary[2]; 64 FLOAT BluePrimary[2]; 65 FLOAT WhitePoint[2]; 66 FLOAT MinLuminance; 67 FLOAT MaxLuminance; 68 FLOAT MaxFullFrameLuminance; 69} DXGI_OUTPUT_DESC1; 70 71[ 72 object, 73 uuid(3c8d99d1-4fbf-4181-a82c-af66bf7bd24e), 74 local, 75 pointer_default(unique) 76] 77interface IDXGIAdapter4 : IDXGIAdapter3 78{ 79 HRESULT GetDesc3( 80 [out] DXGI_ADAPTER_DESC3 *desc 81 ); 82} 83 84[ 85 object, 86 uuid(068346e8-aaec-4b84-add7-137f513f77a1), 87 local, 88 pointer_default(unique) 89] 90interface IDXGIOutput6 : IDXGIOutput5 91{ 92 HRESULT GetDesc1( 93 [out] DXGI_OUTPUT_DESC1 *desc 94 ); 95 HRESULT CheckHardwareCompositionSupport( 96 [out] UINT *flags 97 ); 98} 99