CommonLibVR
Loading...
Searching...
No Matches
DXGI_4.h
Go to the documentation of this file.
1#pragma once
2
3#include "REX/W32/DXGI_3.h"
4
5namespace REX::W32
6{
7 struct IDXGIAdapter3;
8 struct IDXGIFactory4;
9 struct IDXGIOutput4;
10 struct IDXGISwapChain3;
11}
12
13namespace REX::W32
14{
20
25
31}
32
33namespace REX::W32
34{
36 {
37 std::uint64_t budget;
38 std::uint64_t currentUsage;
40 std::uint64_t currentReservation;
41 };
42}
43
44namespace REX::W32
45{
46 struct __declspec(novtable, uuid("645967A4-1392-4310-A798-8053CE3E93FD"))
47 IDXGIAdapter3 : public IDXGIAdapter2
48 {
49 virtual HRESULT RegisterHardwareContentProtectionTeardownStatusEvent(HANDLE a_event, std::uint32_t* a_cookie) = 0;
50 virtual void UnregisterHardwareContentProtectionTeardownStatus(std::uint32_t a_cookie) = 0;
51 virtual HRESULT QueryVideoMemoryInfo(std::uint32_t a_nodeIndex, DXGI_MEMORY_SEGMENT_GROUP a_memorySegmentGroup, DXGI_QUERY_VIDEO_MEMORY_INFO* a_videoMemoryInfo) = 0;
52 virtual HRESULT SetVideoMemoryReservation(std::uint32_t a_nodeIndex, DXGI_MEMORY_SEGMENT_GROUP a_memorySegmentGroup, std::uint64_t a_reservation) = 0;
53 virtual HRESULT RegisterVideoMemoryBudgetChangeNotificationEvent(HANDLE a_event, std::uint32_t* a_cookie) = 0;
54 virtual void UnregisterVideoMemoryBudgetChangeNotification(std::uint32_t a_cookie) = 0;
55 };
56
57 struct __declspec(novtable, uuid("1BC6EA02-EF36-464F-BF0C-21CA39E5168A"))
58 IDXGIFactory4 : public IDXGIFactory3
59 {
60 virtual HRESULT EnumAdapterByLuid(LUID a_luid, const IID& a_iid, void** a_adapter) = 0;
61 virtual HRESULT EnumWarpAdapter(const IID& a_iid, void** a_adapter) = 0;
62 };
63
64 struct __declspec(novtable, uuid("DC7DCA35-2196-414D-9F53-617884032A60"))
65 IDXGIOutput4 : public IDXGIOutput3
66 {
67 virtual HRESULT CheckOverlayColorSpaceSupport(DXGI_FORMAT a_format, DXGI_COLOR_SPACE_TYPE a_colorSpace, IUnknown* a_concernedDevice, std::uint32_t* a_flags) = 0;
68 };
69
70 struct __declspec(novtable, uuid("94D99BDB-F1F8-4AB0-B236-7DA0170EDAB1"))
71 IDXGISwapChain3 : public IDXGISwapChain2
72 {
73 virtual std::uint32_t GetCurrentBackBufferIndex(void) = 0;
74 virtual HRESULT CheckColorSpaceSupport(DXGI_COLOR_SPACE_TYPE a_colorSpace, std::uint32_t* a_colorSpaceSupport) = 0;
75 virtual HRESULT SetColorSpace1(DXGI_COLOR_SPACE_TYPE a_colorSpace) = 0;
76 virtual HRESULT ResizeBuffers1(std::uint32_t a_bufferCount, std::uint32_t a_width, std::uint32_t a_height, DXGI_FORMAT a_format, std::uint32_t a_swapChainFlags, const std::uint32_t* a_creationNodeMask, IUnknown* const* a_presentQueue) = 0;
77 };
78}
79
80namespace REX::W32
81{
82 inline constexpr IID IID_IDXGIAdapter3{ 0x645967A4, 0x1392, 0x4310, { 0xA7, 0x98, 0x80, 0x53, 0xCE, 0x3E, 0x93, 0xFD } };
83 inline constexpr IID IID_IDXGIFactory4{ 0x1BC6EA02, 0xEF36, 0x464F, { 0xBF, 0x0C, 0x21, 0xCA, 0x39, 0xE5, 0x16, 0x8A } };
84 inline constexpr IID IID_IDXGIOutput4{ 0xDC7DCA35, 0x2196, 0x414D, { 0x9F, 0x53, 0x61, 0x78, 0x84, 0x03, 0x2A, 0x60 } };
85 inline constexpr IID IID_IDXGISwapChain3{ 0x94D99BDB, 0xF1F8, 0x4AB0, { 0xB2, 0x36, 0x7D, 0xA0, 0x17, 0x0E, 0xDA, 0xB1 } };
86}
Definition BSDirectInputManager.h:8
DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG
Definition DXGI_4.h:27
@ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT
Definition DXGI_4.h:28
@ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT
Definition DXGI_4.h:29
void * HANDLE
Definition BASE.h:14
constexpr IID IID_IDXGISwapChain3
Definition DXGI_4.h:85
constexpr IID IID_IDXGIFactory4
Definition DXGI_4.h:83
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition COM.h:7
DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG
Definition DXGI_4.h:22
@ DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT
Definition DXGI_4.h:23
DXGI_MEMORY_SEGMENT_GROUP
Definition DXGI_4.h:16
@ DXGI_MEMORY_SEGMENT_GROUP_LOCAL
Definition DXGI_4.h:17
@ DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL
Definition DXGI_4.h:18
constexpr IID IID_IDXGIOutput4
Definition DXGI_4.h:84
DXGI_FORMAT
Definition DXGI.h:63
std::int32_t HRESULT
Definition BASE.h:28
GUID IID
Definition BASE.h:88
DXGI_COLOR_SPACE_TYPE
Definition DXGI.h:33
constexpr IID IID_IDXGIAdapter3
Definition DXGI_4.h:82
std::uint64_t availableForReservation
Definition DXGI_4.h:39
std::uint64_t currentUsage
Definition DXGI_4.h:38
std::uint64_t currentReservation
Definition DXGI_4.h:40
std::uint64_t budget
Definition DXGI_4.h:37
Definition BASE.h:63