CommonLibVR
DXGI_5.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/DXGI_4.h"
4 
5 namespace REX::W32
6 {
7  struct IDXGIDevice4;
8  struct IDXGIFactory5;
9  struct IDXGIOutput5;
10  struct IDXGISwapChain4;
11 }
12 
13 namespace REX::W32
14 {
16  {
18  };
19 
21  {
25  };
26 
28  {
30  };
31 
33  {
37  };
38 }
39 
40 namespace REX::W32
41 {
43  {
44  std::uint16_t redPrimary[2];
45  std::uint16_t GreenPrimary[2];
46  std::uint16_t bluePrimary[2];
47  std::uint16_t whitePoint[2];
48  std::uint32_t maxMasteringLuminance;
49  std::uint32_t minMasteringLuminance;
50  std::uint16_t maxContentLightLevel;
52  };
53 
55  {
56  std::uint8_t data[72];
57  };
58 }
59 
60 namespace REX::W32
61 {
62  struct __declspec(novtable, uuid("95B4F95F-D8DA-4CA4-9EE6-3B76D5968A10"))
63  IDXGIDevice4 : public IDXGIDevice3
64  {
65  virtual HRESULT OfferResources1(std::uint32_t a_numResources, IDXGIResource* const* a_resources, DXGI_OFFER_RESOURCE_PRIORITY a_priority, std::uint32_t a_flags) = 0;
66  virtual HRESULT ReclaimResources1(std::uint32_t a_numResources, IDXGIResource* const* a_resources, DXGI_RECLAIM_RESOURCE_RESULTS* a_results) = 0;
67  };
68 
69  struct __declspec(novtable, uuid("7632E1F5-EE65-4DCA-87FD-84CD75F8838D"))
70  IDXGIFactory5 : public IDXGIFactory4
71  {
72  virtual HRESULT CheckFeatureSupport(DXGI_FEATURE a_feature, void* a_featureSupportData, std::uint32_t a_featureSupportDataSize) = 0;
73  };
74 
75  struct __declspec(novtable, uuid("80A07424-AB52-42EB-833C-0C42FD282D98"))
76  IDXGIOutput5 : public IDXGIOutput4
77  {
78  virtual HRESULT DuplicateOutput1(IUnknown* a_device, std::uint32_t a_flags, std::uint32_t a_supportedFormatsCount, const DXGI_FORMAT* a_supportedFormats, IDXGIOutputDuplication** a_outputDuplication) = 0;
79  };
80 
81  struct __declspec(novtable, uuid("3D585D5A-BD4A-489E-B1F4-3DBCB6452FFB"))
82  IDXGISwapChain4 : public IDXGISwapChain3
83  {
84  virtual HRESULT SetHDRMetaData(DXGI_HDR_METADATA_TYPE a_type, std::uint32_t a_size, void* a_metaData) = 0;
85  };
86 }
87 
88 namespace REX::W32
89 {
90  inline constexpr IID IID_IDXGIDevice4{ 0x95B4F95F, 0xD8DA, 0x4CA4, { 0x9E, 0xE6, 0x3B, 0x76, 0xD5, 0x96, 0x8A, 0x10 } };
91  inline constexpr IID IID_IDXGIFactory5{ 0x7632E1F5, 0xEE65, 0x4DCA, { 0x87, 0xFD, 0x84, 0xCD, 0x75, 0xF8, 0x83, 0x8D } };
92  inline constexpr IID IID_IDXGIOutput5{ 0x80A07424, 0xAB52, 0x42EB, { 0x83, 0x3C, 0x0C, 0x42, 0xFD, 0x28, 0x2D, 0x98 } };
93  inline constexpr IID IID_IDXGISwapChain4{ 0x3D585D5A, 0xBD4A, 0x489E, { 0xB1, 0xF4, 0x3D, 0xBC, 0xB6, 0x45, 0x2F, 0xFB } };
94 }
Definition: BSDirectInputManager.h:8
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition: COM.h:7
constexpr IID IID_IDXGIOutput5
Definition: DXGI_5.h:92
DXGI_RECLAIM_RESOURCE_RESULTS
Definition: DXGI_5.h:33
@ DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED
Definition: DXGI_5.h:36
@ DXGI_RECLAIM_RESOURCE_RESULT_OK
Definition: DXGI_5.h:34
@ DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED
Definition: DXGI_5.h:35
DXGI_OFFER_RESOURCE_PRIORITY
Definition: DXGI_2.h:48
DXGI_HDR_METADATA_TYPE
Definition: DXGI_5.h:21
@ DXGI_HDR_METADATA_TYPE_NONE
Definition: DXGI_5.h:22
@ DXGI_HDR_METADATA_TYPE_HDR10PLUS
Definition: DXGI_5.h:24
@ DXGI_HDR_METADATA_TYPE_HDR10
Definition: DXGI_5.h:23
DXGI_OFFER_RESOURCE_FLAGS
Definition: DXGI_5.h:28
@ DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT
Definition: DXGI_5.h:29
constexpr IID IID_IDXGISwapChain4
Definition: DXGI_5.h:93
DXGI_FORMAT
Definition: DXGI.h:63
DXGI_FEATURE
Definition: DXGI_5.h:16
@ DXGI_FEATURE_PRESENT_ALLOW_TEARING
Definition: DXGI_5.h:17
constexpr IID IID_IDXGIFactory5
Definition: DXGI_5.h:91
std::int32_t HRESULT
Definition: BASE.h:28
constexpr IID IID_IDXGIDevice4
Definition: DXGI_5.h:90
std::uint8_t data[72]
Definition: DXGI_5.h:56
Definition: DXGI_5.h:43
std::uint16_t redPrimary[2]
Definition: DXGI_5.h:44
std::uint16_t whitePoint[2]
Definition: DXGI_5.h:47
std::uint16_t GreenPrimary[2]
Definition: DXGI_5.h:45
std::uint16_t maxContentLightLevel
Definition: DXGI_5.h:50
std::uint16_t bluePrimary[2]
Definition: DXGI_5.h:46
std::uint32_t minMasteringLuminance
Definition: DXGI_5.h:49
std::uint16_t maxFrameAverageLightLevel
Definition: DXGI_5.h:51
std::uint32_t maxMasteringLuminance
Definition: DXGI_5.h:48
Definition: BASE.h:62