1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-06 13:46:19 +01:00
dxvk/src/d3d11/d3d11_interop.h

57 lines
1.4 KiB
C++

#pragma once
#include "../dxgi/dxgi_interfaces.h"
#include "d3d11_include.h"
namespace dxvk {
class D3D11Device;
class D3D11VkInterop : public ComObject<IDXGIVkInteropDevice> {
public:
D3D11VkInterop(
IDXGIObject* pContainer,
D3D11Device* pDevice);
~D3D11VkInterop();
ULONG STDMETHODCALLTYPE AddRef();
ULONG STDMETHODCALLTYPE Release();
HRESULT STDMETHODCALLTYPE QueryInterface(
REFIID riid,
void** ppvObject);
void STDMETHODCALLTYPE GetVulkanHandles(
VkInstance* pInstance,
VkPhysicalDevice* pPhysDev,
VkDevice* pDevice);
void STDMETHODCALLTYPE GetSubmissionQueue(
VkQueue* pQueue,
uint32_t* pQueueFamilyIndex);
void STDMETHODCALLTYPE TransitionSurfaceLayout(
IDXGIVkInteropSurface* pSurface,
const VkImageSubresourceRange* pSubresources,
VkImageLayout OldLayout,
VkImageLayout NewLayout);
void STDMETHODCALLTYPE FlushRenderingCommands();
void STDMETHODCALLTYPE LockSubmissionQueue();
void STDMETHODCALLTYPE ReleaseSubmissionQueue();
private:
IDXGIObject* m_container;
D3D11Device* m_device;
};
}