CommonLibVR
Loading...
Searching...
No Matches
D3D11_4.h
Go to the documentation of this file.
1#pragma once
2
3#include "REX/W32/D3D11_3.h"
4#include "REX/W32/DXGI_5.h"
5
6namespace REX::W32
7{
8 struct ID3D11Device4;
9 struct ID3D11Device5;
10 struct ID3D11Multithread;
11 struct ID3D11VideoContext2;
12 struct ID3D11VideoContext3;
13 struct ID3D11VideoDevice2;
14}
15
16namespace REX::W32
17{
22
27
38
50}
51
52namespace REX::W32
53{
58
66
79}
80
81namespace REX::W32
82{
83 struct __declspec(novtable, uuid("8992ab71-02e6-4b8d-ba48-b056dcda42c4"))
84 ID3D11Device4 : public ID3D11Device3
85 {
86 virtual HRESULT RegisterDeviceRemovedEvent(HANDLE a_event, std::uint32_t* a_cookie) = 0;
87 virtual void UnregisterDeviceRemoved(std::uint32_t a_cookie) = 0;
88 };
89
90 struct __declspec(novtable, uuid("8ffde202-a0e7-45df-9e01-e837801b5ea0"))
91 ID3D11Device5 : public ID3D11Device4
92 {
93 virtual HRESULT OpenSharedFence(HANDLE a_fenceHandle, const IID& a_returnedInterface, void** a_fence) = 0;
94 virtual HRESULT CreateFence(std::uint64_t a_initialValue, D3D11_FENCE_FLAG a_flags, const IID& a_returnedInterface, void** a_fence) = 0;
95 };
96
97 struct __declspec(novtable, uuid("9B7E4E00-342C-4106-A19F-4F2704F689F0"))
98 ID3D11Multithread : public IUnknown
99 {
100 virtual void Enter(void) = 0;
101 virtual void Leave(void) = 0;
102 virtual BOOL SetMultithreadProtected(BOOL a_mtProtect) = 0;
103 virtual BOOL GetMultithreadProtected(void) = 0;
104 };
105
106 struct __declspec(novtable, uuid("C4E7374C-6243-4D1B-AE87-52B4F740E261"))
107 ID3D11VideoContext2 : public ID3D11VideoContext1
108 {
109 virtual void VideoProcessorSetOutputHDRMetaData(ID3D11VideoProcessor* a_videoProcessor, DXGI_HDR_METADATA_TYPE a_type, std::uint32_t a_size, const void* a_hdrMetaData) = 0;
110 virtual void VideoProcessorGetOutputHDRMetaData(ID3D11VideoProcessor* a_videoProcessor, DXGI_HDR_METADATA_TYPE* a_type, std::uint32_t a_size, void* a_hdrMetaData) = 0;
111 virtual void VideoProcessorSetStreamHDRMetaData(ID3D11VideoProcessor* a_videoProcessor, std::uint32_t a_streamIndex, DXGI_HDR_METADATA_TYPE a_type, std::uint32_t a_size, const void* a_hdrMetaData) = 0;
112 virtual void VideoProcessorGetStreamHDRMetaData(ID3D11VideoProcessor* a_videoProcessor, std::uint32_t a_streamIndex, DXGI_HDR_METADATA_TYPE* a_type, std::uint32_t a_size, void* a_hdrMetaData) = 0;
113 };
114
115 struct __declspec(novtable, uuid("A9E2FAA0-CB39-418F-A0B7-D8AAD4DE672E"))
116 ID3D11VideoContext3 : public ID3D11VideoContext2
117 {
118 virtual HRESULT DecoderBeginFrame1(ID3D11VideoDecoder* a_decoder, ID3D11VideoDecoderOutputView* a_view, std::uint32_t a_contentKeySize, const void* a_contentKey, std::uint32_t a_numComponentHistograms, const std::uint32_t* a_histogramOffsets, ID3D11Buffer* const* a_histogramBuffers) = 0;
119 virtual HRESULT SubmitDecoderBuffers2(ID3D11VideoDecoder* a_decoder, std::uint32_t a_numBuffers, const D3D11_VIDEO_DECODER_BUFFER_DESC2* a_bufferDesc) = 0;
120 };
121
122 struct __declspec(novtable, uuid("59C0CB01-35F0-4A70-8F67-87905C906A53"))
123 ID3D11VideoDevice2 : public ID3D11VideoDevice1
124 {
125 virtual HRESULT CheckFeatureSupport(D3D11_FEATURE_VIDEO a_feature, void* a_featureSupportData, std::uint32_t a_featureSupportDataSize) = 0;
126 virtual HRESULT NegotiateCryptoSessionKeyExchangeMT(ID3D11CryptoSession* a_cryptoSession, D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS a_flags, std::uint32_t a_dataSize, void* a_data) = 0;
127 };
128}
129
130namespace REX::W32
131{
132 inline constexpr IID IID_ID3D11Device4{ 0x8992AB71, 0x02E6, 0x4B8D, { 0xBA, 0x48, 0xB0, 0x56, 0xDC, 0xDA, 0x42, 0xC4 } };
133 inline constexpr IID IID_ID3D11Device5{ 0x8FFDE202, 0xA0E7, 0x45DF, { 0x9E, 0x01, 0xE8, 0x37, 0x80, 0x1B, 0x5E, 0xA0 } };
134 inline constexpr IID IID_ID3D11Multithread{ 0x9B7E4E00, 0x342C, 0x4106, { 0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0 } };
135 inline constexpr IID IID_ID3D11VideoContext2{ 0xC4E7374C, 0x6243, 0x4D1B, { 0xAE, 0x87, 0x52, 0xB4, 0xF7, 0x40, 0xE2, 0x61 } };
136 inline constexpr IID IID_ID3D11VideoContext3{ 0xA9E2FAA0, 0xCB39, 0x418F, { 0xA0, 0xB7, 0xD8, 0xAA, 0xD4, 0xDE, 0x67, 0x2E } };
137 inline constexpr IID IID_ID3D11VideoDevice2{ 0x59C0CB01, 0x35F0, 0x4A70, { 0x8F, 0x67, 0x87, 0x90, 0x5C, 0x90, 0x6A, 0x53 } };
138}
Definition BSDirectInputManager.h:8
void * HANDLE
Definition BASE.h:14
constexpr IID IID_ID3D11Device4
Definition D3D11_4.h:132
struct __declspec(novtable, uuid("00000000-0000-0000-c000-000000000046")) IUnknown
Definition COM.h:7
D3D11_VIDEO_DECODER_BUFFER_TYPE
Definition D3D11.h:1074
std::int32_t BOOL
Definition BASE.h:13
D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS
Definition D3D11_4.h:19
@ D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAG_NONE
Definition D3D11_4.h:20
constexpr IID IID_ID3D11Device5
Definition D3D11_4.h:133
D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT
Definition D3D11_4.h:29
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_A
Definition D3D11_4.h:36
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_V
Definition D3D11_4.h:32
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_B
Definition D3D11_4.h:35
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_R
Definition D3D11_4.h:33
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_G
Definition D3D11_4.h:34
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_U
Definition D3D11_4.h:31
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_Y
Definition D3D11_4.h:30
DXGI_HDR_METADATA_TYPE
Definition DXGI_5.h:21
D3D11_FEATURE_VIDEO
Definition D3D11_4.h:24
@ D3D11_FEATURE_VIDEO_DECODER_HISTOGRAM
Definition D3D11_4.h:25
D3D11_FENCE_FLAG
Definition D3D11_3.h:38
constexpr IID IID_ID3D11VideoContext3
Definition D3D11_4.h:136
constexpr IID IID_ID3D11VideoContext2
Definition D3D11_4.h:135
D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS
Definition D3D11_4.h:40
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_R
Definition D3D11_4.h:45
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_A
Definition D3D11_4.h:48
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_NONE
Definition D3D11_4.h:41
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_Y
Definition D3D11_4.h:42
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_G
Definition D3D11_4.h:46
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_V
Definition D3D11_4.h:44
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_U
Definition D3D11_4.h:43
@ D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAG_B
Definition D3D11_4.h:47
constexpr IID IID_ID3D11VideoDevice2
Definition D3D11_4.h:137
std::int32_t HRESULT
Definition BASE.h:28
GUID IID
Definition BASE.h:88
constexpr IID IID_ID3D11Multithread
Definition D3D11_4.h:134
BOOL extendedNV12SharedTextureSupported
Definition D3D11_4.h:56
std::uint32_t binCount
Definition D3D11_4.h:63
std::uint32_t counterBitDepth
Definition D3D11_4.h:64
D3D11_VIDEO_DECODER_DESC decoderDesc
Definition D3D11_4.h:61
D3D11_VIDEO_DECODER_HISTOGRAM_COMPONENT_FLAGS components
Definition D3D11_4.h:62
std::uint32_t cBlocksStripeClear
Definition D3D11_4.h:77
D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK * subSampleMappingBlock
Definition D3D11_4.h:74
std::uint32_t subSampleMappingCount
Definition D3D11_4.h:75
void * iv
Definition D3D11_4.h:72
std::uint32_t dataSize
Definition D3D11_4.h:71
std::uint32_t ivSize
Definition D3D11_4.h:73
std::uint32_t dataOffset
Definition D3D11_4.h:70
std::uint32_t cBlocksStripeEncrypted
Definition D3D11_4.h:76
D3D11_VIDEO_DECODER_BUFFER_TYPE bufferType
Definition D3D11_4.h:69
Definition D3D11.h:1898
Definition BASE.h:63