CommonLibSSE (powerof3)
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 
6 namespace REX::W32
7 {
8  struct ID3D11Device4;
9  struct ID3D11Device5;
10  struct ID3D11Multithread;
11  struct ID3D11VideoContext2;
12  struct ID3D11VideoContext3;
13  struct ID3D11VideoDevice2;
14 }
15 
16 namespace REX::W32
17 {
19  {
21  };
22 
24  {
26  };
27 
29  {
37  };
38 
40  {
49  };
50 }
51 
52 namespace REX::W32
53 {
55  {
57  };
58 
60  {
63  std::uint32_t binCount;
64  std::uint32_t counterBitDepth;
65  };
66 
68  {
70  std::uint32_t dataOffset;
71  std::uint32_t dataSize;
72  void* iv;
73  std::uint32_t ivSize;
75  std::uint32_t subSampleMappingCount;
76  std::uint32_t cBlocksStripeEncrypted;
77  std::uint32_t cBlocksStripeClear;
78  };
79 }
80 
81 namespace 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 
130 namespace 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