d3d11_4.idl 2.98 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
/*
 * Copyright 2017 Ihsan Akmal
 *
 * 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_5.idl";
import "d3dcommon.idl";
import "d3d11_3.idl";

typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4
{
    BOOL ExtendedNV12SharedTextureSupported;
} D3D11_FEATURE_DATA_D3D11_OPTIONS4;

[
    uuid(8992ab71-02e6-4b8d-ba48-b056dcda42c4),
    object,
    local,
    pointer_default(unique)
]
interface ID3D11Device4 : ID3D11Device3
{
    HRESULT RegisterDeviceRemovedEvent(
        [in] HANDLE event,
        [out] DWORD *cookie
    );
    void UnregisterDeviceRemoved(
        [in] DWORD cookie
    );
}

[
    uuid(8ffde202-a0e7-45df-9e01-e837801b5ea0),
    object,
    local,
    pointer_default(unique)
]
interface ID3D11Device5 : ID3D11Device4
{
    HRESULT OpenSharedFence(
56
        [in] HANDLE handle,
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
        [in] REFIID iid,
        [out] void **fence
    );
    HRESULT CreateFence(
        [in] UINT64 initial_value,
        [in] D3D11_FENCE_FLAG flags,
        [in] REFIID iid,
        [out] void **fence
    );
}

[
    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0),
    object,
    local,
    pointer_default(unique)
]
interface ID3D11Multithread : IUnknown
{
    void Enter();
    void Leave();
    BOOL SetMultithreadProtected(
        [in] BOOL enable
    );
    BOOL GetMultithreadProtected();
}

[
    uuid(c4e7374c-6243-4d1b-ae87-52b4f740e261),
    object,
    local,
    pointer_default(unique)
]
interface ID3D11VideoContext2 : ID3D11VideoContext1
{
    void VideoProcessorSetOutputHDRMetaData(
        [in] ID3D11VideoProcessor *processor,
        [in] DXGI_HDR_METADATA_TYPE type,
        [in] UINT size,
        [in] const void *meta_data
    );
    void VideoProcessorGetOutputHDRMetaData(
        [in] ID3D11VideoProcessor *processor,
        [out] DXGI_HDR_METADATA_TYPE *type,
        [in] UINT size,
        [out] void *meta_data
    );

    void VideoProcessorSetStreamHDRMetaData(
        [in] ID3D11VideoProcessor *processor,
        [in] UINT stream_index,
        [in] DXGI_HDR_METADATA_TYPE type,
        [in] UINT size,
        [in] const void *meta_data
    );

    void VideoProcessorGetStreamHDRMetaData(
        [in] ID3D11VideoProcessor *processor,
        [in] UINT stream_index,
        [out] DXGI_HDR_METADATA_TYPE *type,
        [in] UINT size,
        [out] void *meta_data
    );
}