| 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 | 
 | 
|---|
| 19 | import "oaidl.idl";
 | 
|---|
| 20 | import "ocidl.idl";
 | 
|---|
| 21 | import "dxgi1_5.idl";
 | 
|---|
| 22 | import "d3dcommon.idl";
 | 
|---|
| 23 | import "d3d11_3.idl";
 | 
|---|
| 24 | 
 | 
|---|
| 25 | typedef 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 | ]
 | 
|---|
| 36 | interface 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 | ]
 | 
|---|
| 53 | interface 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 | ]
 | 
|---|
| 74 | interface 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 | ]
 | 
|---|
| 90 | interface 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 | }
 | 
|---|