/*** Partially copied from autogenerated header by WIDL 6.4 from ../src-vkd3d-proton/include/vkd3d_device_vkd3d_ext.idl ***/ #pragma once #include #include #ifndef __ID3D12DXVKInteropDevice_FWD_DEFINED__ #define __ID3D12DXVKInteropDevice_FWD_DEFINED__ typedef interface ID3D12DXVKInteropDevice ID3D12DXVKInteropDevice; #endif #ifndef __ID3D12DXVKInteropDevice_INTERFACE_DEFINED__ #define __ID3D12DXVKInteropDevice_INTERFACE_DEFINED__ DEFINE_GUID(IID_ID3D12DXVKInteropDevice, 0x39da4e09, 0xbd1c, 0x4198, 0x9f,0xae, 0x86,0xbb,0xe3,0xbe,0x41,0xfd); typedef struct ID3D12DXVKInteropDeviceVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( ID3D12DXVKInteropDevice *This, REFIID riid, void **object); ULONG (STDMETHODCALLTYPE *AddRef)( ID3D12DXVKInteropDevice *This); ULONG (STDMETHODCALLTYPE *Release)( ID3D12DXVKInteropDevice *This); /*** ID3D12DXVKInteropDevice methods ***/ HRESULT (STDMETHODCALLTYPE *GetDXGIAdapter)( ID3D12DXVKInteropDevice *This, REFIID iid, void **object); HRESULT (STDMETHODCALLTYPE *GetInstanceExtensions)( ID3D12DXVKInteropDevice *This, UINT *extension_count, const char **extensions); HRESULT (STDMETHODCALLTYPE *GetDeviceExtensions)( ID3D12DXVKInteropDevice *This, UINT *extension_count, const char **extensions); HRESULT (STDMETHODCALLTYPE *GetDeviceFeatures)( ID3D12DXVKInteropDevice *This, const VkPhysicalDeviceFeatures2 **features); HRESULT (STDMETHODCALLTYPE *GetVulkanHandles)( ID3D12DXVKInteropDevice *This, VkInstance *vk_instance, VkPhysicalDevice *vk_physical_device, VkDevice *vk_device); HRESULT (STDMETHODCALLTYPE *GetVulkanQueueInfo)( ID3D12DXVKInteropDevice *This, ID3D12CommandQueue *queue, VkQueue *vk_queue, UINT32 *vk_queue_family); void (STDMETHODCALLTYPE *GetVulkanImageLayout)( ID3D12DXVKInteropDevice *This, ID3D12Resource *resource, D3D12_RESOURCE_STATES state, VkImageLayout *vk_layout); HRESULT (STDMETHODCALLTYPE *GetVulkanResourceInfo)( ID3D12DXVKInteropDevice *This, ID3D12Resource *resource, UINT64 *vk_handle, UINT64 *buffer_offset); HRESULT (STDMETHODCALLTYPE *LockCommandQueue)( ID3D12DXVKInteropDevice *This, ID3D12CommandQueue *queue); HRESULT (STDMETHODCALLTYPE *UnlockCommandQueue)( ID3D12DXVKInteropDevice *This, ID3D12CommandQueue *queue); END_INTERFACE } ID3D12DXVKInteropDeviceVtbl; interface ID3D12DXVKInteropDevice { CONST_VTBL ID3D12DXVKInteropDeviceVtbl* lpVtbl; }; #endif