• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright 2017 Ihsan Akmal
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17*/
18
19import "oaidl.idl";
20import "ocidl.idl";
21import "dxgi1_5.idl";
22import "d3dcommon.idl";
23import "d3d11_3.idl";
24
25typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4
26{
27    BOOL ExtendedNV12SharedTextureSupported;
28} D3D11_FEATURE_DATA_D3D11_OPTIONS4;
29
30[
31    uuid(8992ab71-02e6-4b8d-ba48-b056dcda42c4),
32    object,
33    local,
34    pointer_default(unique)
35]
36interface ID3D11Device4 : ID3D11Device3
37{
38    HRESULT RegisterDeviceRemovedEvent(
39        [in] HANDLE event,
40        [out] DWORD *cookie
41    );
42    void UnregisterDeviceRemoved(
43        [in] DWORD cookie
44    );
45}
46
47[
48    uuid(8ffde202-a0e7-45df-9e01-e837801b5ea0),
49    object,
50    local,
51    pointer_default(unique)
52]
53interface ID3D11Device5 : ID3D11Device4
54{
55    HRESULT OpenSharedFence(
56        [in] HANDLE handle,
57        [in] REFIID iid,
58        [out] void **fence
59    );
60    HRESULT CreateFence(
61        [in] UINT64 initial_value,
62        [in] D3D11_FENCE_FLAG flags,
63        [in] REFIID iid,
64        [out] void **fence
65    );
66}
67
68[
69    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0),
70    object,
71    local,
72    pointer_default(unique)
73]
74interface ID3D11Multithread : IUnknown
75{
76    void Enter();
77    void Leave();
78    BOOL SetMultithreadProtected(
79        [in] BOOL enable
80    );
81    BOOL GetMultithreadProtected();
82}
83
84[
85    uuid(c4e7374c-6243-4d1b-ae87-52b4f740e261),
86    object,
87    local,
88    pointer_default(unique)
89]
90interface ID3D11VideoContext2 : ID3D11VideoContext1
91{
92    void VideoProcessorSetOutputHDRMetaData(
93        [in] ID3D11VideoProcessor *processor,
94        [in] DXGI_HDR_METADATA_TYPE type,
95        [in] UINT size,
96        [in] const void *meta_data
97    );
98    void VideoProcessorGetOutputHDRMetaData(
99        [in] ID3D11VideoProcessor *processor,
100        [out] DXGI_HDR_METADATA_TYPE *type,
101        [in] UINT size,
102        [out] void *meta_data
103    );
104
105    void VideoProcessorSetStreamHDRMetaData(
106        [in] ID3D11VideoProcessor *processor,
107        [in] UINT stream_index,
108        [in] DXGI_HDR_METADATA_TYPE type,
109        [in] UINT size,
110        [in] const void *meta_data
111    );
112
113    void VideoProcessorGetStreamHDRMetaData(
114        [in] ID3D11VideoProcessor *processor,
115        [in] UINT stream_index,
116        [out] DXGI_HDR_METADATA_TYPE *type,
117        [in] UINT size,
118        [out] void *meta_data
119    );
120}
121