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