CommonLibSSE NG
DXGI_6.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/DXGI_5.h"
4 
5 namespace REX::W32
6 {
7  struct IDXGIAdapter4;
8  struct IDXGIFactory6;
9  struct IDXGIFactory7;
10  struct IDXGIOutput6;
11 }
12 
13 namespace REX::W32
14 {
16  {
25  };
26 
28  {
32  };
33 
35  {
39  };
40 }
41 
42 namespace REX::W32
43 {
45  {
46  wchar_t description[128];
47  std::uint32_t vendorID;
48  std::uint32_t deviceID;
49  std::uint32_t subSysID;
50  std::uint32_t revision;
51  std::size_t dedicatedVideoMemory;
52  std::size_t dedicatedSystemMemory;
53  std::size_t sharedSystemMemory;
58  };
59 
61  {
62  wchar_t deviceName[32];
67  std::uint32_t bitsPerColor;
69  float redPrimary[2];
70  float greenPrimary[2];
71  float bluePrimary[2];
72  float whitePoint[2];
73  float minLuminance;
74  float maxLuminance;
76  };
77 }
78 
79 namespace REX::W32
80 {
81  struct __declspec(novtable, uuid("3C8D99D1-4FBF-4181-A82C-AF66BF7BD24E"))
82  IDXGIAdapter4 : public IDXGIAdapter3
83  {
84  virtual HRESULT GetDesc3(DXGI_ADAPTER_DESC3* a_desc) = 0;
85  };
86 
87  struct __declspec(novtable, uuid("C1B6694F-FF09-44A9-B03C-77900A0A1D17"))
88  IDXGIFactory6 : public IDXGIFactory5
89  {
90  virtual HRESULT EnumAdapterByGpuPreference(std::uint32_t a_adapterFlags, DXGI_GPU_PREFERENCE a_gpuPreference, const IID& a_iid, void** a_adapter) = 0;
91  };
92 
93  struct __declspec(novtable, uuid("A4966EED-76DB-44DA-84C1-EE9A7AFB20A8"))
94  IDXGIFactory7 : public IDXGIFactory6
95  {
96  virtual HRESULT RegisterAdaptersChangedEvent(HANDLE a_event, std::uint32_t* a_cookie) = 0;
97  virtual HRESULT UnregisterAdaptersChangedEvent(std::uint32_t a_cookie) = 0;
98  };
99 
100  struct __declspec(novtable, uuid("068346E8-AAEC-4B84-ADD7-137F513F77A1"))
101  IDXGIOutput6 : public IDXGIOutput5
102  {
103  virtual HRESULT GetDesc1(DXGI_OUTPUT_DESC1* a_desc) = 0;
104  virtual HRESULT CheckHardwareCompositionSupport(std::uint32_t* a_flags) = 0;
105  };
106 }
107 
108 namespace REX::W32
109 {
110  inline constexpr IID IID_IDXGIAdapter4{ 0x3C8D99D1, 0x4FBF, 0x4181, { 0xA8, 0x2C, 0xAF, 0x66, 0xBF, 0x7B, 0xD2, 0x4E } };
111  inline constexpr IID IID_IDXGIFactory6{ 0xC1B6694F, 0xFF09, 0x44A9, { 0xB0, 0x3C, 0x77, 0x90, 0x0A, 0x0A, 0x1D, 0x17 } };
112  inline constexpr IID IID_IDXGIFactory7{ 0xA4966EED, 0x76DB, 0x44DA, { 0x84, 0xC1, 0xEE, 0x9A, 0x7A, 0xFB, 0x20, 0xA8 } };
113  inline constexpr IID IID_IDXGIOutput6{ 0x068346E8, 0xAAEC, 0x4B84, { 0xAD, 0xD7, 0x13, 0x7F, 0x51, 0x3F, 0x77, 0xA1 } };
114 }
Definition: BSDirectInputManager.h:8
DXGI_GPU_PREFERENCE
Definition: DXGI_6.h:28
@ DXGI_GPU_PREFERENCE_MINIMUM_POWER
Definition: DXGI_6.h:30
@ DXGI_GPU_PREFERENCE_UNSPECIFIED
Definition: DXGI_6.h:29
@ DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE
Definition: DXGI_6.h:31
DXGI_COMPUTE_PREEMPTION_GRANULARITY
Definition: DXGI_2.h:30
void * HANDLE
Definition: BASE.h:14
DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS
Definition: DXGI_6.h:35
@ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN
Definition: DXGI_6.h:36
@ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED
Definition: DXGI_6.h:37
@ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED
Definition: DXGI_6.h:38
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition: COM.h:7
constexpr IID IID_IDXGIFactory6
Definition: DXGI_6.h:111
DXGI_ADAPTER_FLAG3
Definition: DXGI_6.h:16
@ DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE
Definition: DXGI_6.h:23
@ DXGI_ADAPTER_FLAG3_REMOTE
Definition: DXGI_6.h:18
@ DXGI_ADAPTER_FLAG3_FORCE_DWORD
Definition: DXGI_6.h:24
@ DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES
Definition: DXGI_6.h:22
@ DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES
Definition: DXGI_6.h:21
@ DXGI_ADAPTER_FLAG3_NONE
Definition: DXGI_6.h:17
@ DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE
Definition: DXGI_6.h:20
@ DXGI_ADAPTER_FLAG3_SOFTWARE
Definition: DXGI_6.h:19
constexpr IID IID_IDXGIAdapter4
Definition: DXGI_6.h:110
std::int32_t BOOL
Definition: BASE.h:13
constexpr IID IID_IDXGIFactory7
Definition: DXGI_6.h:112
DXGI_GRAPHICS_PREEMPTION_GRANULARITY
Definition: DXGI_2.h:39
constexpr IID IID_IDXGIOutput6
Definition: DXGI_6.h:113
DXGI_MODE_ROTATION
Definition: DXGI.h:192
struct HMONITOR__ * HMONITOR
Definition: BASE.h:25
std::int32_t HRESULT
Definition: BASE.h:28
GUID IID
Definition: BASE.h:87
DXGI_COLOR_SPACE_TYPE
Definition: DXGI.h:33
Definition: DXGI_6.h:45
DXGI_GRAPHICS_PREEMPTION_GRANULARITY graphicsPreemptionGranularity
Definition: DXGI_6.h:56
DXGI_ADAPTER_FLAG3 flags
Definition: DXGI_6.h:55
std::uint32_t vendorID
Definition: DXGI_6.h:47
std::size_t dedicatedVideoMemory
Definition: DXGI_6.h:51
DXGI_COMPUTE_PREEMPTION_GRANULARITY computePreemptionGranularity
Definition: DXGI_6.h:57
std::uint32_t subSysID
Definition: DXGI_6.h:49
std::uint32_t revision
Definition: DXGI_6.h:50
std::size_t dedicatedSystemMemory
Definition: DXGI_6.h:52
std::size_t sharedSystemMemory
Definition: DXGI_6.h:53
std::uint32_t deviceID
Definition: DXGI_6.h:48
wchar_t description[128]
Definition: DXGI_6.h:46
LUID adapterLUID
Definition: DXGI_6.h:54
Definition: DXGI_6.h:61
std::uint32_t bitsPerColor
Definition: DXGI_6.h:67
wchar_t deviceName[32]
Definition: DXGI_6.h:62
float maxFullFrameLuminance
Definition: DXGI_6.h:75
float minLuminance
Definition: DXGI_6.h:73
BOOL attachedToDesktop
Definition: DXGI_6.h:64
RECT desktopCoordinates
Definition: DXGI_6.h:63
HMONITOR monitor
Definition: DXGI_6.h:66
float greenPrimary[2]
Definition: DXGI_6.h:70
DXGI_COLOR_SPACE_TYPE colorSpace
Definition: DXGI_6.h:68
DXGI_MODE_ROTATION rotation
Definition: DXGI_6.h:65
float redPrimary[2]
Definition: DXGI_6.h:69
float whitePoint[2]
Definition: DXGI_6.h:72
float maxLuminance
Definition: DXGI_6.h:74
float bluePrimary[2]
Definition: DXGI_6.h:71
Definition: BASE.h:62
Definition: DXGI.h:262
Definition: BASE.h:109