| /* | |
| * 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_5.idl"; | |
| typedef enum DXGI_ADAPTER_FLAG3 | |
| { | |
| DXGI_ADAPTER_FLAG3_NONE = 0x0, | |
| DXGI_ADAPTER_FLAG3_REMOTE = 0x1, | |
| DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2, | |
| DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4, | |
| DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 0x8, | |
| DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10, | |
| DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20, | |
| DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff, | |
| } DXGI_ADAPTER_FLAG3; | |
| typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS | |
| { | |
| DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1, | |
| DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2, | |
| DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4, | |
| } DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS; | |
| typedef enum DXGI_GPU_PREFERENCE | |
| { | |
| DXGI_GPU_PREFERENCE_UNSPECIFIED = 0x0, | |
| DXGI_GPU_PREFERENCE_MINIMUM_POWER = 0x1, | |
| DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 0x2, | |
| } DXGI_GPU_PREFERENCE; | |
| typedef struct DXGI_ADAPTER_DESC3 | |
| { | |
| WCHAR Description[128]; | |
| UINT VendorId; | |
| UINT DeviceId; | |
| UINT SubSysId; | |
| UINT Revision; | |
| SIZE_T DedicatedVideoMemory; | |
| SIZE_T DedicatedSystemMemory; | |
| SIZE_T SharedSystemMemory; | |
| LUID AdapterLuid; | |
| DXGI_ADAPTER_FLAG3 Flags; | |
| DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; | |
| DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; | |
| } DXGI_ADAPTER_DESC3; | |
| typedef struct DXGI_OUTPUT_DESC1 | |
| { | |
| WCHAR DeviceName[32]; | |
| RECT DesktopCoordinates; | |
| BOOL AttachedToDesktop; | |
| DXGI_MODE_ROTATION Rotation; | |
| HMONITOR Monitor; | |
| UINT BitsPerColor; | |
| DXGI_COLOR_SPACE_TYPE ColorSpace; | |
| FLOAT RedPrimary[2]; | |
| FLOAT GreenPrimary[2]; | |
| FLOAT BluePrimary[2]; | |
| FLOAT WhitePoint[2]; | |
| FLOAT MinLuminance; | |
| FLOAT MaxLuminance; | |
| FLOAT MaxFullFrameLuminance; | |
| } DXGI_OUTPUT_DESC1; | |
| [ | |
| object, | |
| uuid(3c8d99d1-4fbf-4181-a82c-af66bf7bd24e), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIAdapter4 : IDXGIAdapter3 | |
| { | |
| HRESULT GetDesc3( | |
| [out] DXGI_ADAPTER_DESC3 *desc | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(068346e8-aaec-4b84-add7-137f513f77a1), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIOutput6 : IDXGIOutput5 | |
| { | |
| HRESULT GetDesc1( | |
| [out] DXGI_OUTPUT_DESC1 *desc | |
| ); | |
| HRESULT CheckHardwareCompositionSupport( | |
| [out] UINT *flags | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(c1b6694f-ff09-44a9-b03c-77900a0a1d17), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIFactory6 : IDXGIFactory5 | |
| { | |
| HRESULT EnumAdapterByGpuPreference( | |
| [in] UINT adapter_idx, | |
| [in] DXGI_GPU_PREFERENCE gpu_preference, | |
| [in] REFIID iid, | |
| [out] void **adapter | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(a4966eed-76db-44da-84c1-ee9a7afb20a8), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface IDXGIFactory7 : IDXGIFactory6 | |
| { | |
| HRESULT RegisterAdaptersChangedEvent( | |
| [in] HANDLE event, | |
| [out] DWORD *cookie | |
| ); | |
| HRESULT UnregisterAdaptersChangedEvent( | |
| [in] DWORD cookie | |
| ); | |
| } |