1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Mappings for the contents of dxgi1_6.h
8 use shared
::basetsd
::SIZE_T
;
10 DXGI_COMPUTE_PREEMPTION_GRANULARITY
, DXGI_GRAPHICS_PREEMPTION_GRANULARITY
,
12 use shared
::dxgi1_4
::{IDXGIAdapter3, IDXGIAdapter3Vtbl}
;
13 use shared
::dxgi1_5
::{IDXGIFactory5, IDXGIFactory5Vtbl, IDXGIOutput5, IDXGIOutput5Vtbl}
;
14 use shared
::dxgitype
::{DXGI_COLOR_SPACE_TYPE, DXGI_MODE_ROTATION}
;
15 use shared
::guiddef
::REFIID
;
16 use shared
::minwindef
::{BOOL, FLOAT, UINT}
;
17 use shared
::windef
::{HMONITOR, RECT}
;
18 use um
::winnt
::{HRESULT, LUID, WCHAR}
;
19 ENUM
!{enum DXGI_ADAPTER_FLAG3
{
20 DXGI_ADAPTER_FLAG3_NONE
= 0,
21 DXGI_ADAPTER_FLAG3_REMOTE
= 1,
22 DXGI_ADAPTER_FLAG3_SOFTWARE
= 2,
23 DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE
= 4,
24 DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES
= 8,
25 DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES
= 0x10,
26 DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE
= 0x20,
27 DXGI_ADAPTER_FLAG3_FORCE_DWORD
= 0xFFFFFFFF,
29 STRUCT
!{struct DXGI_ADAPTER_DESC3
{
30 Description
: [WCHAR
; 128],
35 DedicatedVideoMemory
: SIZE_T
,
36 DedicatedSystemMemory
: SIZE_T
,
37 SharedSystemMemory
: SIZE_T
,
39 Flags
: DXGI_ADAPTER_FLAG3
,
40 GraphicsPreemptionGranularity
: DXGI_GRAPHICS_PREEMPTION_GRANULARITY
,
41 ComputePreemptionGranularity
: DXGI_COMPUTE_PREEMPTION_GRANULARITY
,
43 RIDL
!{#[uuid(0x3c8d99d1, 0x4fbf, 0x4181, 0xa8, 0x2c, 0xaf, 0x66, 0xbf, 0x7b, 0xd2, 0x4e)]
44 interface
IDXGIAdapter4(IDXGIAdapter4Vtbl
): IDXGIAdapter3(IDXGIAdapter3Vtbl
) {
46 pDesc
: *mut DXGI_ADAPTER_DESC3
,
49 STRUCT
!{struct DXGI_OUTPUT_DESC1
{
50 DeviceName
: [WCHAR
; 32],
51 DesktopCoordinates
: RECT
,
52 AttachedToDesktop
: BOOL
,
53 Rotation
: DXGI_MODE_ROTATION
,
56 ColorSpace
: DXGI_COLOR_SPACE_TYPE
,
57 RedPrimary
: [FLOAT
; 2],
58 GreenPrimary
: [FLOAT
; 2],
59 BluePrimary
: [FLOAT
; 2],
60 WhitePoint
: [FLOAT
; 2],
63 MaxFullFrameLuminance
: FLOAT
,
65 ENUM
!{enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS
{
66 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN
= 1,
67 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED
= 2,
68 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED
= 4,
70 RIDL
!{#[uuid(0x068346e8, 0xaaec, 0x4b84, 0xad, 0xd7, 0x13, 0x7f, 0x51, 0x3f, 0x77, 0xa1)]
71 interface
IDXGIOutput6(IDXGIOutput6Vtbl
): IDXGIOutput5(IDXGIOutput5Vtbl
) {
73 pDesc
: *mut DXGI_OUTPUT_DESC1
,
75 fn CheckHardwareCompositionSupport(
79 ENUM
!{enum DXGI_GPU_PREFERENCE
{
80 DXGI_GPU_PREFERENCE_UNSPECIFIED
= 0,
81 DXGI_GPU_PREFERENCE_MINIMUM_POWER
= 1,
82 DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE
= 2,
84 RIDL
!{#[uuid(0xc1b6694f, 0xff09, 0x44a9, 0xb0, 0x3c, 0x77, 0x90, 0x0a, 0x0a, 0x1d, 0x17)]
85 interface
IDXGIFactory6(IDXGIFactory6Vtbl
): IDXGIFactory5(IDXGIFactory5Vtbl
) {
86 fn EnumAdapterByGpuPreference(
88 GpuPreference
: DXGI_GPU_PREFERENCE
,
90 ppvAdapter
: *mut *mut c_void
,
93 DEFINE_GUID
!{IID_IDXGIAdapter4
,
94 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8, 0x2c, 0xaf, 0x66, 0xbf, 0x7b, 0xd2, 0x4e}
95 DEFINE_GUID
!{IID_IDXGIOutput6
,
96 0x068346e8, 0xaaec, 0x4b84, 0xad, 0xd7, 0x13, 0x7f, 0x51, 0x3f, 0x77, 0xa1}
97 DEFINE_GUID
!{IID_IDXGIFactory6
,
98 0xc1b6694f, 0xff09, 0x44a9, 0xb0, 0x3c, 0x77, 0x90, 0x0a, 0x0a, 0x1d, 0x17}