[PATCH 4/4] d3d11_1.idl: Add missing enums and interfaces

Ihsan Akmal ihsanapps at gmail.com
Sat Sep 23 00:20:17 CDT 2017


Signed-off-by: Ihsan Akmal <ihsanapps at gmail.com>
---
 include/d3d11_1.idl | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 265 insertions(+), 3 deletions(-)

diff --git a/include/d3d11_1.idl b/include/d3d11_1.idl
index 1a46abf..adc4900 100644
--- a/include/d3d11_1.idl
+++ b/include/d3d11_1.idl
@@ -22,6 +22,12 @@ import "dxgi1_2.idl";
 import "d3dcommon.idl";
 import "d3d11.idl";

+typedef enum D3D11_COPY_FLAGS
+{
+    D3D11_COPY_NO_OVERWRITE = 0x00000001,
+    D3D11_COPY_DISCARD      = 0x00000002,
+} D3D11_COPY_FLAGS;
+
 typedef enum D3D11_LOGIC_OP {
     D3D11_LOGIC_OP_CLEAR = 0,
     D3D11_LOGIC_OP_SET,
@@ -41,7 +47,7 @@ typedef enum D3D11_LOGIC_OP {
     D3D11_LOGIC_OP_OR_INVERTED
 } D3D11_LOGIC_OP;

-typedef struct _D3D11_RENDER_TARGET_BLEND_DESC1 {
+typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 {
     BOOL           BlendEnable;
     BOOL           LogicOpEnable;
     D3D11_BLEND    SrcBlend;
@@ -54,13 +60,13 @@ typedef struct _D3D11_RENDER_TARGET_BLEND_DESC1 {
     UINT8          RenderTargetWriteMask;
 } D3D11_RENDER_TARGET_BLEND_DESC1;

-typedef struct _D3D11_BLEND_DESC1 {
+typedef struct D3D11_BLEND_DESC1 {
     BOOL                            AlphaToCoverageEnable;
     BOOL                            IndependentBlendEnable;
     D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT];
 } D3D11_BLEND_DESC1;

-typedef struct _D3D11_RASTERIZER_DESC1 {
+typedef struct D3D11_RASTERIZER_DESC1 {
     D3D11_FILL_MODE FillMode;
     D3D11_CULL_MODE CullMode;
     BOOL            FrontCounterClockwise;
@@ -74,6 +80,103 @@ typedef struct _D3D11_RASTERIZER_DESC1 {
     UINT            ForcedSampleCount;
 } D3D11_RASTERIZER_DESC1;

+typedef enum D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG
+{
+    D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED = 0x1,
+} D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG;
+
+typedef struct D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK
+{
+    UINT ClearSize;
+    UINT EncryptedSize;
+} D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK;
+
+typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC1
+{
+    D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
+    UINT DataOffset;
+    UINT DataSize;
+    void *pIV;
+    UINT IVSize;
+    D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK *pSubSampleMappingBlock;
+    UINT SubSampleMappingCount;
+} D3D11_VIDEO_DECODER_BUFFER_DESC1;
+
+typedef struct D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION
+{
+    ID3D11CryptoSession *pCryptoSession;
+    UINT  BlobSize;
+    void *pBlob;
+    GUID *pKeyInfoId;
+    UINT  PrivateDataSize;
+    void *pPrivateData;
+} D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION;
+
+typedef enum D3D11_VIDEO_DECODER_CAPS
+{
+    D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE           = 0x1,
+    D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME        = 0x02,
+    D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC   = 0x04,
+    D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED  = 0x08,
+    D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED          = 0x10,
+} D3D11_VIDEO_DECODER_CAPS;
+
+typedef enum D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS
+{
+    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION                = 0x01,
+    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE                  = 0x02,
+    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION  = 0x04,
+    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT                       = 0x08,
+} D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS;
+
+typedef struct D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT
+{
+    BOOL Enable;
+    UINT Width;
+    UINT Height;
+    DXGI_FORMAT Format;
+} D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT;
+
+typedef enum D3D11_CRYPTO_SESSION_STATUS
+{
+    D3D11_CRYPTO_SESSION_STATUS_OK                    = 0,
+    D3D11_CRYPTO_SESSION_STATUS_KEY_LOST              = 1,
+    D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST  = 2,
+} D3D11_CRYPTO_SESSION_STATUS;
+
+typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA
+{
+    UINT PrivateDataSize;
+    UINT HWProtectionDataSize;
+    BYTE pbInput[4];
+} D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA;
+
+typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA
+{
+    UINT PrivateDataSize;
+    UINT MaxHWProtectionDataSize;
+    UINT HWProtectionDataSize;
+    UINT64 TransportTime;
+    UINT64 ExecutionTime;
+    BYTE pbOutput[4];
+} D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA;
+
+typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA
+{
+    UINT HWProtectionFunctionID;
+    D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA *pInputData;
+    D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA *pOutputData;
+    HRESULT Status;
+} D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA;
+
+typedef struct D3D11_VIDEO_SAMPLE_DESC
+{
+    UINT Width;
+    UINT Height;
+    DXGI_FORMAT Format;
+    DXGI_COLOR_SPACE_TYPE ColorSpace;
+} D3D11_VIDEO_SAMPLE_DESC;
+
 [
     uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9),
     object,
@@ -227,6 +330,165 @@ interface ID3D11DeviceContext1 : ID3D11DeviceContext
             UINT NumRects);
 }

+[
+    uuid(A7F026DA-A5F8-4487-A564-15E34357651E),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D11VideoContext1 : ID3D11VideoContext
+{
+    HRESULT SubmitDecoderBuffers1(
+        ID3D11VideoDecoder *decoder,
+        UINT num_buffers,
+        const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc
+    );
+
+    HRESULT GetDataForNewHardwareKey(
+        ID3D11CryptoSession *crypto_session,
+        UINT private_input_size,
+        const void *private_input_data,
+        UINT64 *private_output_data
+    );
+
+    HRESULT CheckCryptoSessionStatus(
+        ID3D11CryptoSession *crypto_session,
+        D3D11_CRYPTO_SESSION_STATUS *status
+    );
+
+    HRESULT DecoderEnableDownsampling(
+        ID3D11VideoDecoder *decoder,
+        DXGI_COLOR_SPACE_TYPE input_colorspace,
+        const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+        UINT reference_framecount
+    );
+
+    HRESULT DecoderUpdateDownsampling(
+        ID3D11VideoDecoder *decoder,
+        const D3D11_VIDEO_SAMPLE_DESC *output_desc
+    );
+
+    void VideoProcessorSetOutputColorSpace1(
+        ID3D11VideoProcessor *video_processor,
+        DXGI_COLOR_SPACE_TYPE colorspace
+    );
+
+    void VideoProcessorSetOutputShaderUsage(
+        ID3D11VideoProcessor *video_processor,
+        BOOL shader_usage
+    );
+
+    void VideoProcessorGetOutputColorSpace1(
+        ID3D11VideoProcessor *video_processor,
+        DXGI_COLOR_SPACE_TYPE *colorspace
+    );
+
+    void VideoProcessorGetOutputShaderUsage(
+        ID3D11VideoProcessor *video_processor,
+        BOOL *shader_usage
+    );
+
+    void VideoProcessorSetStreamColorSpace1(
+        ID3D11VideoProcessor *video_processor,
+        UINT stream_index,
+        DXGI_COLOR_SPACE_TYPE colorspace
+    );
+
+    void VideoProcessorSetStreamMirror(
+        ID3D11VideoProcessor *video_processor,
+        UINT stream_index,
+        BOOL enable,
+        BOOL flip_horizontal,
+        BOOL flip_vertical
+    );
+
+    void VideoProcessorGetStreamColorSpace1(
+        ID3D11VideoProcessor *video_processor,
+        UINT stream_index,
+        DXGI_COLOR_SPACE_TYPE *colorspace
+    );
+
+    void VideoProcessorGetStreamMirror(
+        ID3D11VideoProcessor *video_processor,
+        UINT stream_index,
+        BOOL *enable,
+        BOOL *flip_horizontal,
+        BOOL *flip_vertical
+    );
+
+    HRESULT VideoProcessorGetBehaviorHints(
+        ID3D11VideoProcessor *video_processor,
+        UINT output_width,
+        UINT output_height,
+        DXGI_FORMAT output_format,
+        UINT stream_count,
+        const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
+        UINT *behavior_hints
+    );
+}
+
+[
+    uuid(29DA1D51-1321-4454-804B-F5FC9F861F0F),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D11VideoDevice1 : ID3D11VideoDevice
+{
+    HRESULT GetCryptoSessionPrivateDataSize(
+        const GUID *crypto_type,
+        const GUID *decoder_profile,
+        const GUID *key_exchange_type,
+        UINT *private_input_size,
+        UINT *private_output_size
+    );
+
+    HRESULT GetVideoDecoderCaps(
+        const GUID *decoder_profile,
+        UINT sample_width,
+        UINT sample_height,
+        const DXGI_RATIONAL *framerate,
+        UINT bitrate,
+        const GUID *crypto_type,
+        UINT *decoder_caps
+    );
+
+    HRESULT CheckVideoDecoderDownsampling(
+        const D3D11_VIDEO_DECODER_DESC *input_desc,
+        DXGI_COLOR_SPACE_TYPE input_colorspace,
+        const D3D11_VIDEO_DECODER_CONFIG *input_config,
+        const DXGI_RATIONAL *framerate,
+        const D3D11_VIDEO_SAMPLE_DESC *output_desc,
+        BOOL *supported,
+        BOOL *real_time_hint
+    );
+
+    HRESULT RecommendVideoDecoderDownsampleParameters(
+        const D3D11_VIDEO_DECODER_DESC *input_desc,
+        DXGI_COLOR_SPACE_TYPE input_colorspace,
+        const D3D11_VIDEO_DECODER_CONFIG *input_config,
+        const DXGI_RATIONAL *framerate,
+        D3D11_VIDEO_SAMPLE_DESC *recommended_output_desc
+    );
+}
+
+[
+    uuid(465217F2-5568-43CF-B5B9-F61D54531CA1),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D11VideoProcessorEnumerator1 : ID3D11VideoProcessorEnumerator
+{
+    HRESULT CheckVideoProcessorFormatConversion(
+        DXGI_FORMAT input_format,
+        DXGI_COLOR_SPACE_TYPE input_colorspace,
+        DXGI_FORMAT output_format,
+        DXGI_COLOR_SPACE_TYPE output_colorspace,
+        BOOL *supported
+    );
+}
+
 [
     uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab),
     object,
-- 
2.14.1




More information about the wine-patches mailing list