/*** Autogenerated by WIDL 3.5 from /home/yorha-2b/Valve/Proton/wine/include/wine/dxvk-interop.idl - Do not edit ***/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif #include #include #ifndef COM_NO_WINDOWS_H #include #include #endif #ifndef __dxvk_interop_h__ #define __dxvk_interop_h__ /* Forward declarations */ #ifndef __IDXGIVkInteropSurface_FWD_DEFINED__ #define __IDXGIVkInteropSurface_FWD_DEFINED__ typedef interface IDXGIVkInteropSurface IDXGIVkInteropSurface; #ifdef __cplusplus interface IDXGIVkInteropSurface; #endif /* __cplusplus */ #endif #ifndef __IDXGIVkInteropDevice_FWD_DEFINED__ #define __IDXGIVkInteropDevice_FWD_DEFINED__ typedef interface IDXGIVkInteropDevice IDXGIVkInteropDevice; typedef interface IDXGIVkInteropDevice2 IDXGIVkInteropDevice2; #ifdef __cplusplus interface IDXGIVkInteropDevice; interface IDXGIVkInteropDevice2; #endif /* __cplusplus */ #endif /* Headers for imported files */ #include #include #ifdef __cplusplus extern "C" { #endif /***************************************************************************** * IDXGIVkInteropSurface interface */ #ifndef __IDXGIVkInteropSurface_INTERFACE_DEFINED__ #define __IDXGIVkInteropSurface_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDXGIVkInteropSurface, 0x5546cf8c, 0x77e7, 0x4341, 0xb0,0x5d, 0x8d,0x4d,0x50,0x00,0xe7,0x7d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5546cf8c-77e7-4341-b05d-8d4d5000e77d") IDXGIVkInteropSurface : public IUnknown { virtual HRESULT STDMETHODCALLTYPE GetDevice( IDXGIVkInteropDevice** ppDevice) = 0; virtual HRESULT STDMETHODCALLTYPE GetVulkanImageInfo( VkImage *pHandle, VkImageLayout *pLayout, VkImageCreateInfo *pInfo) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDXGIVkInteropSurface, 0x5546cf8c, 0x77e7, 0x4341, 0xb0,0x5d, 0x8d,0x4d,0x50,0x00,0xe7,0x7d) #endif #else typedef struct IDXGIVkInteropSurfaceVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDXGIVkInteropSurface *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDXGIVkInteropSurface *This); ULONG (STDMETHODCALLTYPE *Release)( IDXGIVkInteropSurface *This); /*** IDXGIVkInteropSurface methods ***/ HRESULT (STDMETHODCALLTYPE *GetDevice)( IDXGIVkInteropSurface *This, IDXGIVkInteropDevice **ppDevice); HRESULT (STDMETHODCALLTYPE *GetVulkanImageInfo)( IDXGIVkInteropSurface *This, VkImage *pHandle, VkImageLayout *pLayout, VkImageCreateInfo *pInfo); END_INTERFACE } IDXGIVkInteropSurfaceVtbl; interface IDXGIVkInteropSurface { CONST_VTBL IDXGIVkInteropSurfaceVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDXGIVkInteropSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDXGIVkInteropSurface_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDXGIVkInteropSurface_Release(This) (This)->lpVtbl->Release(This) /*** IDXGIVkInteropSurface methods ***/ #define IDXGIVkInteropSurface_GetVulkanImageInfo(This,pHandle,pLayout,pInfo) (This)->lpVtbl->GetVulkanImageInfo(This,pHandle,pLayout,pInfo) #else /*** IUnknown methods ***/ static FORCEINLINE HRESULT IDXGIVkInteropSurface_QueryInterface(IDXGIVkInteropSurface* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static FORCEINLINE ULONG IDXGIVkInteropSurface_AddRef(IDXGIVkInteropSurface* This) { return This->lpVtbl->AddRef(This); } static FORCEINLINE ULONG IDXGIVkInteropSurface_Release(IDXGIVkInteropSurface* This) { return This->lpVtbl->Release(This); } /*** IDXGIVkInteropSurface methods ***/ static FORCEINLINE HRESULT IDXGIVkInteropSurface_GetVulkanImageInfo(IDXGIVkInteropSurface* This,VkImage *pHandle,VkImageLayout *pLayout,VkImageCreateInfo *pInfo) { return This->lpVtbl->GetVulkanImageInfo(This,pHandle,pLayout,pInfo); } #endif #endif #endif #endif /* __IDXGIVkInteropSurface_INTERFACE_DEFINED__ */ /***************************************************************************** * IDXGIVkInteropDevice interface */ #ifndef __IDXGIVkInteropDevice_INTERFACE_DEFINED__ #define __IDXGIVkInteropDevice_INTERFACE_DEFINED__ DEFINE_GUID(IID_IDXGIVkInteropDevice, 0xe2ef5fa5, 0xdc21, 0x4af7, 0x90,0xc4, 0xf6,0x7e,0xf6,0xa0,0x93,0x23); DEFINE_GUID(IID_IDXGIVkInteropDevice2, 0xe2ef5fa5, 0xdc21, 0x4af7, 0x90,0xc4, 0xf6,0x7e,0xf6,0xa0,0x93,0x24); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("e2ef5fa5-dc21-4af7-90c4-f67ef6a09323") IDXGIVkInteropDevice : public IUnknown { virtual void STDMETHODCALLTYPE GetVulkanHandles( VkInstance *pInstance, VkPhysicalDevice *pPhysDev, VkDevice *pDevice) = 0; virtual void STDMETHODCALLTYPE GetSubmissionQueue( VkQueue *pQueue, uint32_t *pQueueFamilyIndex) = 0; virtual void STDMETHODCALLTYPE TransitionSurfaceLayout( IDXGIVkInteropSurface *pSurface, const VkImageSubresourceRange *pSubresources, VkImageLayout OldLayout, VkImageLayout NewLayout) = 0; virtual void STDMETHODCALLTYPE FlushRenderingCommands( ) = 0; virtual void STDMETHODCALLTYPE LockSubmissionQueue( ) = 0; virtual void STDMETHODCALLTYPE ReleaseSubmissionQueue( ) = 0; }; MIDL_INTERFACE("e2ef5fa5-dc21-4af7-90c4-f67ef6a09324") IDXGIVkInteropDevice2 : public IDXGIVkInteropDevice { virtual void STDMETHODCALLTYPE GetSubmissionQueue2( VkQueue *pQueue, uint32_t *pQueueIndex, uint32_t *pQueueFamilyIndex) = 0; virtual HRESULT STDMETHODCALLTYPE CreateTexture2DFromVkImage( const D3D11_TEXTURE2D_DESC1 *pDesc, VkImage vkImage, ID3D11Texture2D **ppTexture2D) = 0; }; #ifdef __CRT_UUID_DECL __CRT_UUID_DECL(IDXGIVkInteropDevice, 0xe2ef5fa5, 0xdc21, 0x4af7, 0x90,0xc4, 0xf6,0x7e,0xf6,0xa0,0x93,0x23) __CRT_UUID_DECL(IDXGIVkInteropDevice2, 0xe2ef5fa5, 0xdc21, 0x4af7, 0x90,0xc4, 0xf6,0x7e,0xf6,0xa0,0x93,0x24) #endif #else typedef struct IDXGIVkInteropDeviceVtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDXGIVkInteropDevice *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDXGIVkInteropDevice *This); ULONG (STDMETHODCALLTYPE *Release)( IDXGIVkInteropDevice *This); /*** IDXGIVkInteropDevice methods ***/ void (STDMETHODCALLTYPE *GetVulkanHandles)( IDXGIVkInteropDevice *This, VkInstance *pInstance, VkPhysicalDevice *pPhysDev, VkDevice *pDevice); void (STDMETHODCALLTYPE *GetSubmissionQueue)( IDXGIVkInteropDevice *This, VkQueue *pQueue, uint32_t *pQueueFamilyIndex); void (STDMETHODCALLTYPE *TransitionSurfaceLayout)( IDXGIVkInteropDevice *This, IDXGIVkInteropSurface *pSurface, const VkImageSubresourceRange *pSubresources, VkImageLayout OldLayout, VkImageLayout NewLayout); void (STDMETHODCALLTYPE *FlushRenderingCommands)( IDXGIVkInteropDevice *This); void (STDMETHODCALLTYPE *LockSubmissionQueue)( IDXGIVkInteropDevice *This); void (STDMETHODCALLTYPE *ReleaseSubmissionQueue)( IDXGIVkInteropDevice *This); END_INTERFACE } IDXGIVkInteropDeviceVtbl; interface IDXGIVkInteropDevice { CONST_VTBL IDXGIVkInteropDeviceVtbl* lpVtbl; }; typedef struct IDXGIVkInteropDevice2Vtbl { BEGIN_INTERFACE /*** IUnknown methods ***/ HRESULT (STDMETHODCALLTYPE *QueryInterface)( IDXGIVkInteropDevice2 *This, REFIID riid, void **ppvObject); ULONG (STDMETHODCALLTYPE *AddRef)( IDXGIVkInteropDevice2 *This); ULONG (STDMETHODCALLTYPE *Release)( IDXGIVkInteropDevice2 *This); /*** IDXGIVkInteropDevice methods ***/ void (STDMETHODCALLTYPE *GetVulkanHandles)( IDXGIVkInteropDevice2 *This, VkInstance *pInstance, VkPhysicalDevice *pPhysDev, VkDevice *pDevice); void (STDMETHODCALLTYPE *GetSubmissionQueue)( IDXGIVkInteropDevice2 *This, VkQueue *pQueue, uint32_t *pQueueFamilyIndex); void (STDMETHODCALLTYPE *TransitionSurfaceLayout)( IDXGIVkInteropDevice2 *This, IDXGIVkInteropSurface *pSurface, const VkImageSubresourceRange *pSubresources, VkImageLayout OldLayout, VkImageLayout NewLayout); void (STDMETHODCALLTYPE *FlushRenderingCommands)( IDXGIVkInteropDevice2 *This); void (STDMETHODCALLTYPE *LockSubmissionQueue)( IDXGIVkInteropDevice2 *This); void (STDMETHODCALLTYPE *ReleaseSubmissionQueue)( IDXGIVkInteropDevice2 *This); void (STDMETHODCALLTYPE *GetSubmissionQueue2)( IDXGIVkInteropDevice2 *This, VkQueue *pQueue, uint32_t *pQueueIndex, uint32_t *pQueueFamilyIndex); HRESULT (STDMETHODCALLTYPE *CreateTexture2DFromVkImage)( IDXGIVkInteropDevice2 *This, const D3D11_TEXTURE2D_DESC1 *pDesc, VkImage vkImage, ID3D11Texture2D **ppTexture2D); END_INTERFACE } IDXGIVkInteropDevice2Vtbl; interface IDXGIVkInteropDevice2 { CONST_VTBL IDXGIVkInteropDevice2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ #define IDXGIVkInteropDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDXGIVkInteropDevice_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDXGIVkInteropDevice_Release(This) (This)->lpVtbl->Release(This) /*** IDXGIVkInteropDevice methods ***/ #define IDXGIVkInteropDevice_GetVulkanHandles(This,pInstance,pPhysDev,pDevice) (This)->lpVtbl->GetVulkanHandles(This,pInstance,pPhysDev,pDevice) #define IDXGIVkInteropDevice_GetSubmissionQueue(This,pQueue,pQueueFamilyIndex) (This)->lpVtbl->GetSubmissionQueue(This,pQueue,pQueueFamilyIndex) #define IDXGIVkInteropDevice_TransitionSurfaceLayout(This,pSurface,pSubresources,OldLayout,NewLayout) (This)->lpVtbl->TransitionSurfaceLayout(This,pSurface,pSubresources,OldLayout,NewLayout) #define IDXGIVkInteropDevice_FlushRenderingCommands(This) (This)->lpVtbl->FlushRenderingCommands(This) #define IDXGIVkInteropDevice_LockSubmissionQueue(This) (This)->lpVtbl->LockSubmissionQueue(This) #define IDXGIVkInteropDevice_ReleaseSubmissionQueue(This) (This)->lpVtbl->ReleaseSubmissionQueue(This) #else /*** IUnknown methods ***/ static FORCEINLINE HRESULT IDXGIVkInteropDevice_QueryInterface(IDXGIVkInteropDevice* This,REFIID riid,void **ppvObject) { return This->lpVtbl->QueryInterface(This,riid,ppvObject); } static FORCEINLINE ULONG IDXGIVkInteropDevice_AddRef(IDXGIVkInteropDevice* This) { return This->lpVtbl->AddRef(This); } static FORCEINLINE ULONG IDXGIVkInteropDevice_Release(IDXGIVkInteropDevice* This) { return This->lpVtbl->Release(This); } /*** IDXGIVkInteropDevice methods ***/ static FORCEINLINE void IDXGIVkInteropDevice_GetVulkanHandles(IDXGIVkInteropDevice* This,VkInstance *pInstance,VkPhysicalDevice *pPhysDev,VkDevice *pDevice) { This->lpVtbl->GetVulkanHandles(This,pInstance,pPhysDev,pDevice); } static FORCEINLINE void IDXGIVkInteropDevice_GetSubmissionQueue(IDXGIVkInteropDevice* This,VkQueue *pQueue,uint32_t *pQueueFamilyIndex) { This->lpVtbl->GetSubmissionQueue(This,pQueue,pQueueFamilyIndex); } static FORCEINLINE void IDXGIVkInteropDevice_TransitionSurfaceLayout(IDXGIVkInteropDevice* This,IDXGIVkInteropSurface *pSurface,const VkImageSubresourceRange *pSubresources,VkImageLayout OldLayout,VkImageLayout NewLayout) { This->lpVtbl->TransitionSurfaceLayout(This,pSurface,pSubresources,OldLayout,NewLayout); } static FORCEINLINE void IDXGIVkInteropDevice_FlushRenderingCommands(IDXGIVkInteropDevice* This) { This->lpVtbl->FlushRenderingCommands(This); } static FORCEINLINE void IDXGIVkInteropDevice_LockSubmissionQueue(IDXGIVkInteropDevice* This) { This->lpVtbl->LockSubmissionQueue(This); } static FORCEINLINE void IDXGIVkInteropDevice_ReleaseSubmissionQueue(IDXGIVkInteropDevice* This) { This->lpVtbl->ReleaseSubmissionQueue(This); } #endif #endif #endif #endif /* __IDXGIVkInteropDevice_INTERFACE_DEFINED__ */ /* Begin additional prototypes for all interfaces */ /* End additional prototypes */ #ifdef __cplusplus } #endif #endif /* __dxvk_interop_h__ */