123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547 |
- /*
- * Copyright 2014 Jacek Caban for CodeWeavers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
- import "oaidl.idl";
- import "ocidl.idl";
- import "dxgi1_2.idl";
- import "d3dcommon.idl";
- import "d3d11.idl";
- typedef enum D3D11_LOGIC_OP
- {
- D3D11_LOGIC_OP_CLEAR = 0,
- D3D11_LOGIC_OP_SET,
- D3D11_LOGIC_OP_COPY,
- D3D11_LOGIC_OP_COPY_INVERTED,
- D3D11_LOGIC_OP_NOOP,
- D3D11_LOGIC_OP_INVERT,
- D3D11_LOGIC_OP_AND,
- D3D11_LOGIC_OP_NAND,
- D3D11_LOGIC_OP_OR,
- D3D11_LOGIC_OP_NOR,
- D3D11_LOGIC_OP_XOR,
- D3D11_LOGIC_OP_EQUIV,
- D3D11_LOGIC_OP_AND_REVERSE,
- D3D11_LOGIC_OP_AND_INVERTED,
- D3D11_LOGIC_OP_OR_REVERSE,
- D3D11_LOGIC_OP_OR_INVERTED
- } D3D11_LOGIC_OP;
- typedef enum D3D11_COPY_FLAGS
- {
- D3D11_COPY_NO_OVERWRITE = 0x00000001,
- D3D11_COPY_DISCARD = 0x00000002,
- } D3D11_COPY_FLAGS;
- 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 enum D3D11_VIDEO_DECODER_CAPS
- {
- D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE = 0x01,
- 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 enum D3D11_CRYPTO_SESSION_STATUS
- {
- D3D11_CRYPTO_SESSION_STATUS_OK = 0x0,
- D3D11_CRYPTO_SESSION_STATUS_KEY_LOST = 0x1,
- D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST = 0x2,
- } D3D11_CRYPTO_SESSION_STATUS;
- typedef struct D3D11_RENDER_TARGET_BLEND_DESC1
- {
- BOOL BlendEnable;
- BOOL LogicOpEnable;
- D3D11_BLEND SrcBlend;
- D3D11_BLEND DestBlend;
- D3D11_BLEND_OP BlendOp;
- D3D11_BLEND SrcBlendAlpha;
- D3D11_BLEND DestBlendAlpha;
- D3D11_BLEND_OP BlendOpAlpha;
- D3D11_LOGIC_OP LogicOp;
- UINT8 RenderTargetWriteMask;
- } D3D11_RENDER_TARGET_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
- {
- D3D11_FILL_MODE FillMode;
- D3D11_CULL_MODE CullMode;
- BOOL FrontCounterClockwise;
- INT DepthBias;
- FLOAT DepthBiasClamp;
- FLOAT SlopeScaledDepthBias;
- BOOL DepthClipEnable;
- BOOL ScissorEnable;
- BOOL MultisampleEnable;
- BOOL AntialiasedLineEnable;
- UINT ForcedSampleCount;
- } D3D11_RASTERIZER_DESC1;
- 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 struct D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT
- {
- BOOL Enable;
- UINT Width;
- UINT Height;
- DXGI_FORMAT Format;
- } D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT;
- 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,
- local,
- pointer_default(unique)
- ]
- interface ID3D11BlendState1 : ID3D11BlendState
- {
- void GetDesc1(D3D11_BLEND_DESC1 *pDesc);
- }
- [
- uuid(5c1e0d8a-7c23-48f9-8c59-a92958ceff11),
- object,
- local,
- pointer_default(unique)
- ]
- interface ID3DDeviceContextState : ID3D11DeviceChild
- {
- }
- [
- uuid(bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1),
- object,
- local,
- pointer_default(unique)
- ]
- interface ID3D11DeviceContext1 : ID3D11DeviceContext
- {
- void CopySubresourceRegion1(
- ID3D11Resource *pDstResource,
- UINT DstSubresource,
- UINT DstX,
- UINT DstY,
- UINT DstZ,
- ID3D11Resource *pSrcResource,
- UINT SrcSubresource,
- const D3D11_BOX *pSrcBox,
- UINT CopyFlags);
- void UpdateSubresource1(
- ID3D11Resource *pDstResource,
- UINT DstSubresource,
- const D3D11_BOX *pDstBox,
- const void *pSrcData,
- UINT SrcRowPitch,
- UINT SrcDepthPitch,
- UINT CopyFlags);
- void DiscardResource(ID3D11Resource *pResource);
- void DiscardView(ID3D11View *pResourceView);
- void VSSetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer *const *ppConstantBuffers,
- const UINT *pFirstConstant,
- const UINT *pNumConstants);
- void HSSetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer *const *ppConstantBuffers,
- const UINT *pFirstConstant,
- const UINT *pNumConstants);
- void DSSetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer *const *ppConstantBuffers,
- const UINT *pFirstConstant,
- const UINT *pNumConstants);
- void GSSetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer *const *ppConstantBuffers,
- const UINT *pFirstConstant,
- const UINT *pNumConstants);
- void PSSetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer *const *ppConstantBuffers,
- const UINT *pFirstConstant,
- const UINT *pNumConstants);
- void CSSetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer *const *ppConstantBuffers,
- const UINT *pFirstConstant,
- const UINT *pNumConstants);
- void VSGetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer **ppConstantBuffers,
- UINT *pFirstConstant,
- UINT *pNumConstants);
- void HSGetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer **ppConstantBuffers,
- UINT *pFirstConstant,
- UINT *pNumConstants);
- void DSGetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer **ppConstantBuffers,
- UINT *pFirstConstant,
- UINT *pNumConstants);
- void GSGetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer **ppConstantBuffers,
- UINT *pFirstConstant,
- UINT *pNumConstants);
- void PSGetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer **ppConstantBuffers,
- UINT *pFirstConstant,
- UINT *pNumConstants);
- void CSGetConstantBuffers1(
- UINT StartSlot,
- UINT NumBuffers,
- ID3D11Buffer **ppConstantBuffers,
- UINT *pFirstConstant,
- UINT *pNumConstants);
- void SwapDeviceContextState(
- ID3DDeviceContextState *pState,
- ID3DDeviceContextState **ppPreviousState);
- void ClearView(
- ID3D11View *pView,
- const FLOAT Color[4],
- const D3D11_RECT *pRect,
- UINT NumRects);
- void DiscardView1(
- ID3D11View *pResourceView,
- const D3D11_RECT *pRects,
- UINT NumRects);
- }
- [
- uuid(a7f026da-a5f8-4487-a564-15e34357651e),
- object,
- local,
- pointer_default(unique)
- ]
- interface ID3D11VideoContext1 : ID3D11VideoContext
- {
- HRESULT SubmitDecoderBuffers1(
- ID3D11VideoDecoder *decoder,
- UINT buffer_count,
- const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc
- );
- HRESULT GetDataForNewHardwareKey(
- ID3D11CryptoSession *session,
- UINT input_size,
- const void *input_data,
- UINT64 *output_data
- );
- HRESULT CheckCryptoSessionStatus(
- ID3D11CryptoSession *session,
- D3D11_CRYPTO_SESSION_STATUS *status
- );
- HRESULT DecoderEnableDownsampling(
- ID3D11VideoDecoder *decoder,
- DXGI_COLOR_SPACE_TYPE colour_space,
- const D3D11_VIDEO_SAMPLE_DESC *output_desc,
- UINT reference_frame_count
- );
- HRESULT DecoderUpdateDownsampling(
- ID3D11VideoDecoder *decoder,
- const D3D11_VIDEO_SAMPLE_DESC *output_desc
- );
- void VideoProcessorSetOutputColorSpace1(
- ID3D11VideoProcessor *processor,
- DXGI_COLOR_SPACE_TYPE colour_space
- );
- void VideoProcessorSetOutputShaderUsage(
- ID3D11VideoProcessor *processor,
- BOOL shader_usage
- );
- void VideoProcessorGetOutputColorSpace1(
- ID3D11VideoProcessor *processor,
- DXGI_COLOR_SPACE_TYPE *colour_space
- );
- void VideoProcessorGetOutputShaderUsage(
- ID3D11VideoProcessor *processor,
- BOOL *shader_usage
- );
- void VideoProcessorSetStreamColorSpace1(
- ID3D11VideoProcessor *processor,
- UINT stream_index,
- DXGI_COLOR_SPACE_TYPE colour_space
- );
- void VideoProcessorSetStreamMirror(
- ID3D11VideoProcessor *processor,
- UINT stream_index,
- BOOL enable,
- BOOL flip_horizontal,
- BOOL flip_vertical
- );
- void VideoProcessorGetStreamColorSpace1(
- ID3D11VideoProcessor *processor,
- UINT stream_index,
- DXGI_COLOR_SPACE_TYPE *colour_space
- );
- void VideoProcessorGetStreamMirror(
- ID3D11VideoProcessor *processor,
- UINT stream_index,
- BOOL *enable,
- BOOL *flip_horizontal,
- BOOL *flip_vertical
- );
- HRESULT VideoProcessorGetBehaviorHints(
- ID3D11VideoProcessor *processor,
- UINT output_width,
- UINT output_height,
- DXGI_FORMAT output_format,
- UINT stream_count,
- const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
- UINT *behaviour_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 *input_size,
- UINT *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_colour_space,
- 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_colour_space,
- 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_colour_space,
- DXGI_FORMAT output_format,
- DXGI_COLOR_SPACE_TYPE output_colour_space,
- BOOL *supported
- );
- }
- [
- uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab),
- object,
- local,
- pointer_default(unique)
- ]
- interface ID3DUserDefinedAnnotation : IUnknown
- {
- INT BeginEvent(LPCWSTR Name);
- INT EndEvent();
- void SetMarker(LPCWSTR Name);
- BOOL GetStatus();
- }
- [
- uuid(1217d7a6-5039-418c-b042-9cbe256afd6e),
- object,
- local,
- pointer_default(unique)
- ]
- interface ID3D11RasterizerState1 : ID3D11RasterizerState
- {
- void GetDesc1(D3D11_RASTERIZER_DESC1 *pDesc);
- }
- [
- uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686),
- object,
- local,
- pointer_default(unique)
- ]
- interface ID3D11Device1 : ID3D11Device
- {
- void GetImmediateContext1(
- ID3D11DeviceContext1 **ppImmediateContext);
- HRESULT CreateDeferredContext1(
- UINT ContextFlags,
- ID3D11DeviceContext1 **ppDeferredContext);
- HRESULT CreateBlendState1(
- const D3D11_BLEND_DESC1 *pBlendStateDesc,
- ID3D11BlendState1 **ppBlendState);
- HRESULT CreateRasterizerState1(
- const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
- ID3D11RasterizerState1 **ppRasterizerState);
- HRESULT CreateDeviceContextState(
- UINT Flags,
- const D3D_FEATURE_LEVEL *pFeatureLevels,
- UINT FeatureLevels,
- UINT SDKVersion,
- REFIID EmulatedInterface,
- D3D_FEATURE_LEVEL *pChosenFeatureLevel,
- ID3DDeviceContextState **ppContextState);
- HRESULT OpenSharedResource1(
- HANDLE hResource,
- REFIID returnedInterface,
- void **ppResource);
- HRESULT OpenSharedResourceByName(
- LPCWSTR lpName,
- DWORD dwDesiredAccess,
- REFIID returnedInterface,
- void **ppResource);
- }
|