CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
DXGI_3.h
Go to the documentation of this file.
1#pragma once
2
3#include "REX/W32/DXGI_2.h"
4
5namespace REX::W32
6{
7 struct IDXGIDecodeSwapChain;
8 struct IDXGIDevice3;
9 struct IDXGIFactory3;
10 struct IDXGIFactoryMedia;
11 struct IDXGIOutput2;
12 struct IDXGIOutput3;
13 struct IDXGISwapChain2;
14 struct IDXGISwapChainMedia;
15}
16
17namespace REX::W32
18{
26
33
39}
40
41namespace REX::W32
42{
44 {
45 std::uint32_t flags;
46 };
47
58
60 {
61 float _11;
62 float _12;
63 float _21;
64 float _22;
65 float _31;
66 float _32;
67 };
68}
69
70namespace REX::W32
71{
72 struct __declspec(novtable, uuid("2633066B-4514-4C7A-8FD8-12EA98059D18"))
73 IDXGIDecodeSwapChain : public IUnknown
74 {
75 virtual HRESULT PresentBuffer(std::uint32_t a_bufferToPresent, std::uint32_t a_syncInterval, std::uint32_t a_flags) = 0;
76 virtual HRESULT SetSourceRect(const RECT* a_rect) = 0;
77 virtual HRESULT SetTargetRect(const RECT* a_rect) = 0;
78 virtual HRESULT SetDestSize(std::uint32_t a_width, std::uint32_t a_height) = 0;
79 virtual HRESULT GetSourceRect(RECT* a_rect) = 0;
80 virtual HRESULT GetTargetRect(RECT* a_rect) = 0;
81 virtual HRESULT GetDestSize(std::uint32_t* a_width, std::uint32_t* a_height) = 0;
82 virtual HRESULT SetColorSpace(DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS a_colorSpace) = 0;
83 virtual DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS GetColorSpace(void) = 0;
84 };
85
86 struct __declspec(novtable, uuid("6007896C-3244-4AFD-BF18-A6D3BEDA5023"))
87 IDXGIDevice3 : public IDXGIDevice2
88 {
89 virtual void Trim(void) = 0;
90 };
91
92 struct __declspec(novtable, uuid("25483823-CD46-4C7D-86CA-47AA95B837BD"))
93 IDXGIFactory3 : public IDXGIFactory2
94 {
95 virtual std::uint32_t GetCreationFlags(void) = 0;
96 };
97
98 struct __declspec(novtable, uuid("41E7D1F2-A591-4F7B-A2E5-FA9C843E1C12"))
99 IDXGIFactoryMedia : public IUnknown
100 {
101 virtual HRESULT CreateSwapChainForCompositionSurfaceHandle(IUnknown* a_device, HANDLE a_surface, const DXGI_SWAP_CHAIN_DESC1* a_desc, IDXGIOutput* a_restrictToOutput, IDXGISwapChain1** a_swapChain) = 0;
102 virtual HRESULT CreateDecodeSwapChainForCompositionSurfaceHandle(IUnknown* a_device, HANDLE a_surface, DXGI_DECODE_SWAP_CHAIN_DESC* a_desc, IDXGIResource* a_yuvDecodeBuffers, IDXGIOutput* a_restrictToOutput, IDXGIDecodeSwapChain** a_swapChain) = 0;
103 };
104
105 struct __declspec(novtable, uuid("595E39D1-2724-4663-99B1-DA969DE28364"))
106 IDXGIOutput2 : public IDXGIOutput1
107 {
108 virtual BOOL SupportsOverlays(void) = 0;
109 };
110
111 struct __declspec(novtable, uuid("8A6BB301-7E7E-41F4-A8E0-5B32F7F99B18"))
112 IDXGIOutput3 : public IDXGIOutput2
113 {
114 virtual HRESULT CheckOverlaySupport(DXGI_FORMAT a_enumFormat, IUnknown* a_concernedDevice, std::uint32_t* a_flags) = 0;
115 };
116
117 struct __declspec(novtable, uuid("A8BE2AC4-199F-4946-B331-79599FB98DE7"))
118 IDXGISwapChain2 : public IDXGISwapChain1
119 {
120 virtual HRESULT SetSourceSize(std::uint32_t a_width, std::uint32_t a_height) = 0;
121 virtual HRESULT GetSourceSize(std::uint32_t* a_width, std::uint32_t* a_height) = 0;
122 virtual HRESULT SetMaximumFrameLatency(std::uint32_t a_maxLatency) = 0;
123 virtual HRESULT GetMaximumFrameLatency(std::uint32_t* a_maxLatency) = 0;
124 virtual HANDLE GetFrameLatencyWaitableObject(void) = 0;
125 virtual HRESULT SetMatrixTransform(const DXGI_MATRIX_3X2_F* a_matrix) = 0;
126 virtual HRESULT GetMatrixTransform(DXGI_MATRIX_3X2_F* a_matrix) = 0;
127 };
128
129 struct __declspec(novtable, uuid("DD95B90B-F05F-4F6A-BD65-25BFB264BD84"))
130 IDXGISwapChainMedia : public IUnknown
131 {
132 virtual HRESULT GetFrameStatisticsMedia(DXGI_FRAME_STATISTICS_MEDIA* a_stats) = 0;
133 virtual HRESULT SetPresentDuration(std::uint32_t a_duration) = 0;
134 virtual HRESULT CheckPresentDurationSupport(std::uint32_t a_desiredPresentDuration, std::uint32_t* a_closestSmallerPresentDuration, std::uint32_t* a_closestLargerPresentDuration) = 0;
135 };
136}
137
138namespace REX::W32
139{
140 inline constexpr IID IID_IDXGIDecodeSwapChain{ 0x2633066B, 0x4514, 0x4C7A, { 0x8F, 0xD8, 0x12, 0xEA, 0x98, 0x05, 0x9D, 0x18 } };
141 inline constexpr IID IID_IDXGIDevice3{ 0x6007896C, 0x3244, 0x4AFD, { 0xBF, 0x18, 0xA6, 0xD3, 0xBE, 0xDA, 0x50, 0x23 } };
142 inline constexpr IID IID_IDXGIFactory3{ 0x25483823, 0xCD46, 0x4C7D, { 0x86, 0xCA, 0x47, 0xAA, 0x95, 0xB8, 0x37, 0xBD } };
143 inline constexpr IID IID_IDXGIFactoryMedia{ 0x41E7D1F2, 0xA591, 0x4F7B, { 0xA2, 0xE5, 0xFA, 0x9C, 0x84, 0x3E, 0x1C, 0x12 } };
144 inline constexpr IID IID_IDXGIOutput2{ 0x595E39D1, 0x2724, 0x4663, { 0x99, 0xB1, 0xDA, 0x96, 0x9D, 0xE2, 0x83, 0x64 } };
145 inline constexpr IID IID_IDXGIOutput3{ 0x8A6BB301, 0x7E7E, 0x41F4, { 0xA8, 0xE0, 0x5B, 0x32, 0xF7, 0xF9, 0x9B, 0x18 } };
146 inline constexpr IID IID_IDXGISwapChain2{ 0xA8BE2AC4, 0x199F, 0x4946, { 0xB3, 0x31, 0x79, 0x59, 0x9F, 0xB9, 0x8D, 0xE7 } };
147 inline constexpr IID IID_IDXGISwapChainMedia{ 0xDD95B90B, 0xF05F, 0x4F6A, { 0xBD, 0x65, 0x25, 0xBF, 0xB2, 0x64, 0xBD, 0x84 } };
148}
Definition BSDirectInputManager.h:8
void * HANDLE
Definition BASE.h:14
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition COM.h:7
DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS
Definition DXGI_3.h:28
@ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC
Definition DXGI_3.h:31
@ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE
Definition DXGI_3.h:29
@ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709
Definition DXGI_3.h:30
std::int32_t BOOL
Definition BASE.h:13
DXGI_FRAME_PRESENTATION_MODE
Definition DXGI_3.h:20
@ DXGI_FRAME_PRESENTATION_MODE_OVERLAY
Definition DXGI_3.h:22
@ DXGI_FRAME_PRESENTATION_MODE_COMPOSED
Definition DXGI_3.h:21
@ DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE
Definition DXGI_3.h:24
@ DXGI_FRAME_PRESENTATION_MODE_NONE
Definition DXGI_3.h:23
constexpr IID IID_IDXGISwapChain2
Definition DXGI_3.h:146
constexpr IID IID_IDXGIFactory3
Definition DXGI_3.h:142
constexpr IID IID_IDXGISwapChainMedia
Definition DXGI_3.h:147
constexpr IID IID_IDXGIOutput2
Definition DXGI_3.h:144
DXGI_FORMAT
Definition DXGI.h:63
constexpr IID IID_IDXGIDecodeSwapChain
Definition DXGI_3.h:140
std::int32_t HRESULT
Definition BASE.h:28
DXGI_OVERLAY_SUPPORT_FLAG
Definition DXGI_3.h:35
@ DXGI_OVERLAY_SUPPORT_FLAG_SCALING
Definition DXGI_3.h:37
@ DXGI_OVERLAY_SUPPORT_FLAG_DIRECT
Definition DXGI_3.h:36
constexpr IID IID_IDXGIDevice3
Definition DXGI_3.h:141
constexpr IID IID_IDXGIOutput3
Definition DXGI_3.h:145
constexpr IID IID_IDXGIFactoryMedia
Definition DXGI_3.h:143
std::uint32_t flags
Definition DXGI_3.h:45
std::uint32_t presentRefreshCount
Definition DXGI_3.h:51
std::uint32_t syncRefreshCount
Definition DXGI_3.h:52
DXGI_FRAME_PRESENTATION_MODE compositionMode
Definition DXGI_3.h:55
std::int64_t syncQPCTime
Definition DXGI_3.h:53
std::uint32_t presentCount
Definition DXGI_3.h:50
std::uint32_t approvedPresentDuration
Definition DXGI_3.h:56
std::int64_t syncGPUTime
Definition DXGI_3.h:54
Definition DXGI_3.h:60
float _12
Definition DXGI_3.h:62
float _21
Definition DXGI_3.h:63
float _32
Definition DXGI_3.h:66
float _22
Definition DXGI_3.h:64
float _11
Definition DXGI_3.h:61
float _31
Definition DXGI_3.h:65
Definition BASE.h:63