1 module aurora.directx.d3d11.d3d11_1; 2 3 public import aurora.directx.d3d11.d3d11_0; 4 5 public: 6 7 /// 8 /// Constants 9 /// 10 11 /// 12 /// Functions 13 /// 14 15 /// 16 /// Enumerations 17 /// 18 19 enum D3D11_COPY_FLAGS : uint 20 { 21 NO_OVERWRITE = 0x1, 22 DISCARD = 0x2 23 } 24 25 enum D3D11_LOGIC_OP : uint 26 { 27 CLEAR = 0, 28 SET = ( CLEAR + 1 ) , 29 COPY = ( SET + 1 ) , 30 COPY_INVERTED = ( COPY + 1 ) , 31 NOOP = ( COPY_INVERTED + 1 ) , 32 INVERT = ( NOOP + 1 ) , 33 AND = ( INVERT + 1 ) , 34 NAND = ( AND + 1 ) , 35 OR = ( NAND + 1 ) , 36 NOR = ( OR + 1 ) , 37 XOR = ( NOR + 1 ) , 38 EQUIV = ( XOR + 1 ) , 39 AND_REVERSE = ( EQUIV + 1 ) , 40 AND_INVERTED = ( AND_REVERSE + 1 ) , 41 OR_REVERSE = ( AND_INVERTED + 1 ) , 42 OR_INVERTED = ( OR_REVERSE + 1 ) 43 } 44 45 enum D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG : uint 46 { 47 SINGLETHREADED = 0x1 48 } 49 50 enum D3D11_VIDEO_DECODER_CAPS : uint 51 { 52 DOWNSAMPLE = 0x1, 53 NON_REAL_TIME = 0x2, 54 DOWNSAMPLE_DYNAMIC = 0x4, 55 DOWNSAMPLE_REQUIRED = 0x8, 56 UNSUPPORTED = 0x10 57 } 58 59 enum D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS : uint 60 { 61 MULTIPLANE_OVERLAY_ROTATION = 0x1, 62 MULTIPLANE_OVERLAY_RESIZE = 0x2, 63 MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION = 0x4, 64 TRIPLE_BUFFER_OUTPUT = 0x8 65 } 66 67 enum D3D11_CRYPTO_SESSION_STATUS : uint 68 { 69 OK = 0, 70 KEY_LOST = 1, 71 KEY_AND_CONTENT_LOST = 2 72 } 73 74 /// 75 /// Structures 76 /// 77 78 struct D3D11_RENDER_TARGET_BLEND_DESC1 79 { 80 bool BlendEnable; 81 bool LogicOpEnable; 82 D3D11_BLEND SrcBlend; 83 D3D11_BLEND DestBlend; 84 D3D11_BLEND_OP BlendOp; 85 D3D11_BLEND SrcBlendAlpha; 86 D3D11_BLEND DestBlendAlpha; 87 D3D11_BLEND_OP BlendOpAlpha; 88 D3D11_LOGIC_OP LogicOp; 89 ubyte RenderTargetWriteMask; 90 } 91 92 struct D3D11_BLEND_DESC1 93 { 94 bool AlphaToCoverageEnable; 95 bool IndependentBlendEnable; 96 D3D11_RENDER_TARGET_BLEND_DESC1[8] RenderTarget; 97 } 98 99 struct D3D11_RASTERIZER_DESC1 { 100 D3D11_FILL_MODE FillMode; 101 D3D11_CULL_MODE CullMode; 102 bool FrontCounterClockwise; 103 int DepthBias; 104 float DepthBiasClamp; 105 float SlopeScaledDepthBias; 106 bool DepthClipEnable; 107 bool ScissorEnable; 108 bool MultisampleEnable; 109 bool AntialiasedLineEnable; 110 uint ForcedSampleCount; 111 } 112 113 struct D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK 114 { 115 uint ClearSize; 116 uint EncryptedSize; 117 } 118 119 struct D3D11_VIDEO_DECODER_BUFFER_DESC1 120 { 121 D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; 122 uint DataOffset; 123 uint DataSize;void *pIV; 124 uint IVSize; 125 D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK *pSubSampleMappingBlock; 126 uint SubSampleMappingCount; 127 } 128 129 struct D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION 130 { 131 ID3D11CryptoSession pCryptoSession; 132 uint BlobSize;void *pBlob; 133 GUID *pKeyInfoId; 134 uint PrivateDataSize; 135 void *pPrivateData; 136 } 137 138 struct D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT 139 { 140 bool Enable; 141 uint Width; 142 uint Height; 143 DXGI_FORMAT Format; 144 } 145 146 struct D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA 147 { 148 uint PrivateDataSize; 149 uint HWProtectionDataSize; 150 ubyte[4] pbInput; 151 } 152 153 struct D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA 154 { 155 uint PrivateDataSize; 156 uint MaxHWProtectionDataSize; 157 uint HWProtectionDataSize; 158 ulong TransportTime; 159 ulong ExecutionTime; 160 ubyte[4] pbOutput; 161 } 162 163 struct D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA 164 { 165 uint HWProtectionFunctionID; 166 D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA *pInputData; 167 D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA *pOutputData; 168 HRESULT Status; 169 } 170 171 struct D3D11_VIDEO_SAMPLE_DESC 172 { 173 uint Width; 174 uint Height; 175 DXGI_FORMAT Format; 176 DXGI_COLOR_SPACE_TYPE ColorSpace; 177 } 178 179 /// 180 /// Interfaces 181 /// 182 183 mixin(uuid!(ID3D11BlendState1, "cc86fabe-da55-401d-85e7-e3c9de2877e9")); 184 public interface ID3D11BlendState1 : ID3D11BlendState 185 { 186 extern(Windows): 187 void GetDesc1(D3D11_BLEND_DESC1 *pDesc); 188 } 189 190 mixin(uuid!(ID3D11RasterizerState1, "1217d7a6-5039-418c-b042-9cbe256afd6e")); 191 public interface ID3D11RasterizerState1 : ID3D11RasterizerState 192 { 193 extern(Windows): 194 void GetDesc1(D3D11_RASTERIZER_DESC1 *pDesc); 195 } 196 197 mixin(uuid!(ID3DDeviceContextState, "5c1e0d8a-7c23-48f9-8c59-a92958ceff11")); 198 public interface ID3DDeviceContextState : ID3D11DeviceChild 199 { 200 extern(Windows): 201 } 202 203 mixin(uuid!(ID3D11DeviceContext1, "bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1")); 204 public interface ID3D11DeviceContext1 : ID3D11DeviceContext 205 { 206 extern(Windows): 207 void ClearView(ID3D11View pView, const(float[4]) Color, const(D3D11_RECT) *pRect, uint NumRects); 208 void CopySubresourceRegion1(ID3D11Resource pDstResource, uint DstSubresource, uint DstX, uint DstY, uint DstZ, ID3D11Resource pSrcResource, uint SrcSubresource, const(D3D11_BOX) *pSrcBox, uint CopyFlags); 209 void CSGetConstantBuffers1(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers, uint* pFirstConstant, uint* pNumConstants); 210 void CSSetConstantBuffers1(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers, const(uint)*pFirstConstant, const(uint)*pNumConstants); 211 void DiscardResource(ID3D11Resource pResource); 212 void DiscardView(ID3D11View pResourceView); 213 void DiscardView1(ID3D11View pResourceView, const(D3D11_RECT) *pRects, uint NumRects); 214 void DSGetConstantBuffers1(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers, uint* pFirstConstant, uint* pNumConstants); 215 void DSSetConstantBuffers1(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers, const(uint) *pFirstConstant, const(uint) *pNumConstants); 216 void GSGetConstantBuffers1(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers, uint* pFirstConstant, uint* pNumConstants); 217 void GSSetConstantBuffers1(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers, const(uint) *pFirstConstant, const(uint) *pNumConstants); 218 void HSGetConstantBuffers1(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers, uint* pFirstConstant, uint* pNumConstants); 219 void HSSetConstantBuffers1(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers, const(uint) *pFirstConstant, const(uint) *pNumConstants); 220 void PSGetConstantBuffers1(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers, uint* pFirstConstant, uint* pNumConstants); 221 void PSSetConstantBuffers1(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers, const(uint) *pFirstConstant, const(uint) *pNumConstants); 222 void SwapDeviceContextState(ID3DDeviceContextState pState, ID3DDeviceContextState *ppPreviousState); 223 void UpdateSubresource1(ID3D11Resource pDstResource, uint DstSubresource, const(D3D11_BOX) *pDstBox, const(void) *pSrcData, uint SrcRowPitch, uint SrcDepthPitch, uint CopyFlags); 224 void VSGetConstantBuffers1(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers, uint* pFirstConstant, uint* pNumConstants); 225 void VSSetConstantBuffers1(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers, const(uint) *pFirstConstant, const(uint) *pNumConstants); 226 } 227 228 mixin(uuid!(ID3D11VideoContext1, "A7F026DA-A5F8-4487-A564-15E34357651E")); 229 public interface ID3D11VideoContext1 : ID3D11VideoContext 230 { 231 extern(Windows): 232 HRESULT CheckCryptoSessionStatus(ID3D11CryptoSession pCryptoSession, D3D11_CRYPTO_SESSION_STATUS *pStatus); 233 HRESULT DecoderEnableDownsampling(ID3D11VideoDecoder pDecoder, DXGI_COLOR_SPACE_TYPE InputColorSpace, const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc, uint ReferenceFrameCount); 234 HRESULT DecoderUpdateDownsampling(ID3D11VideoDecoder pDecoder, const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc); 235 HRESULT GetDataForNewHardwareKey(ID3D11CryptoSession pCryptoSession, uint PrivateInputSize, const void *pPrivatInputData, ulong *pPrivateOutputData); 236 HRESULT SubmitDecoderBuffers1(ID3D11VideoDecoder pDecoder, uint NumBuffers, const D3D11_VIDEO_DECODER_BUFFER_DESC1 *pBufferDesc); 237 HRESULT VideoProcessorGetBehaviorHints(ID3D11VideoProcessor pVideoProcessor, uint OutputWidth, uint OutputHeight, DXGI_FORMAT OutputFormat, uint StreamCount, const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *pStreams, uint *pBehaviorHints); 238 void VideoProcessorGetOutputColorSpace1(ID3D11VideoProcessor pVideoProcessor, DXGI_COLOR_SPACE_TYPE *pColorSpace); 239 void VideoProcessorGetOutputShaderUsage(ID3D11VideoProcessor pVideoProcessor, bool *pShaderUsage); 240 void VideoProcessorGetStreamColorSpace1(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, DXGI_COLOR_SPACE_TYPE *pColorSpace); 241 void VideoProcessorGetStreamMirror(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnable, bool *pFlipHorizontal, bool *pFlipVertical); 242 void VideoProcessorSetOutputColorSpace1(ID3D11VideoProcessor pVideoProcessor, DXGI_COLOR_SPACE_TYPE ColorSpace); 243 void VideoProcessorSetOutputShaderUsage(ID3D11VideoProcessor pVideoProcessor, bool ShaderUsage); 244 void VideoProcessorSetStreamColorSpace1(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, DXGI_COLOR_SPACE_TYPE ColorSpace); 245 void VideoProcessorSetStreamMirror(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, bool FlipHorizontal, bool FlipVertical); 246 } 247 248 mixin(uuid!(ID3D11VideoDevice1, "29DA1D51-1321-4454-804B-F5FC9F861F0F")); 249 public interface ID3D11VideoDevice1 : ID3D11VideoDevice 250 { 251 extern(Windows): 252 HRESULT CheckVideoDecoderDownsampling(const D3D11_VIDEO_DECODER_DESC *pInputDesc, DXGI_COLOR_SPACE_TYPE InputColorSpace, const D3D11_VIDEO_DECODER_CONFIG *pInputConfig, const DXGI_RATIONAL *pFrameRate, const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc, bool *pSupported, bool *pRealTimeHint); 253 HRESULT GetCryptoSessionPrivateDataSize(const GUID *pCryptoType, const GUID *pDecoderProfile, const GUID *pKeyExchangeType, uint *pPrivateInputSize, uint *pPrivateOutputSize); 254 HRESULT GetVideoDecoderCaps(const GUID *pDecoderProfile, uint SampleWidth, uint SampleHeight, const DXGI_RATIONAL *pFrameRate, uint BitRate, const GUID *pCryptoType, uint *pDecoderCaps); 255 HRESULT RecommendVideoDecoderDownsampleParameters(const D3D11_VIDEO_DECODER_DESC *pInputDesc, DXGI_COLOR_SPACE_TYPE InputColorSpace, const D3D11_VIDEO_DECODER_CONFIG *pInputConfig, const DXGI_RATIONAL *pFrameRate, D3D11_VIDEO_SAMPLE_DESC *pRecommendedOutputDesc); 256 } 257 258 mixin(uuid!(ID3D11VideoProcessorEnumerator1, "465217F2-5568-43CF-B5B9-F61D54531CA1")); 259 public interface ID3D11VideoProcessorEnumerator1 : ID3D11VideoProcessorEnumerator 260 { 261 extern(Windows): 262 HRESULT CheckVideoProcessorFormatConversion(DXGI_FORMAT InputFormat, DXGI_COLOR_SPACE_TYPE InputColorSpace, DXGI_FORMAT OutputFormat, DXGI_COLOR_SPACE_TYPE OutputColorSpace, bool *pSupported); 263 } 264 265 mixin(uuid!(ID3D11Device1, "a04bfb29-08ef-43d6-a49c-a9bdbdcbe686")); 266 public interface ID3D11Device1 : ID3D11Device 267 { 268 extern(Windows): 269 HRESULT CreateBlendState1(const D3D11_BLEND_DESC1 *pBlendStateDesc, ID3D11BlendState1 *ppBlendState); 270 HRESULT CreateDeferredContext1(uint ContextFlags, ID3D11DeviceContext1 *ppDeferredContext); 271 HRESULT CreateDeviceContextState(uint Flags, const D3D_FEATURE_LEVEL *pFeatureLevels, uint FeatureLevels, uint SDKVersion, IID* EmulatedInterface, D3D_FEATURE_LEVEL *pChosenFeatureLevel, ID3DDeviceContextState *ppContextState); 272 HRESULT CreateRasterizerState1(const D3D11_RASTERIZER_DESC1 *pRasterizerDesc, ID3D11RasterizerState1 *ppRasterizerState); 273 void GetImmediateContext1(ID3D11DeviceContext1 *ppImmediateContext); 274 HRESULT OpenSharedResource1(HANDLE hResource, IID* returnedInterface, void **ppResource); 275 HRESULT OpenSharedResourceByName(const(wchar)* lpName, uint dwDesiredAccess, IID* returnedInterface, void **ppResource); 276 } 277 278 mixin(uuid!(ID3DUserDefinedAnnotation, "b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab")); 279 public interface ID3DUserDefinedAnnotation : IUnknown 280 { 281 extern(Windows): 282 int BeginEvent(const wchar *Name); 283 int EndEvent(); 284 bool GetStatus(); 285 void SetMarker(const wchar *Name); 286 }