mirror of https://github.com/doitsujin/dxvk
43 lines
963 B
C++
43 lines
963 B
C++
#pragma once
|
|
|
|
#include "../util/com/com_object.h"
|
|
|
|
#include "../vulkan/vulkan_loader.h"
|
|
|
|
#include "dxgi_interfaces.h"
|
|
|
|
namespace dxvk {
|
|
|
|
/**
|
|
* \brief Surface factory
|
|
*
|
|
* Provides a way to transparently create a
|
|
* Vulkan surface for a given platform window.
|
|
*/
|
|
class DxgiSurfaceFactory : public ComObject<IDXGIVkSurfaceFactory> {
|
|
|
|
public:
|
|
|
|
DxgiSurfaceFactory(
|
|
PFN_vkGetInstanceProcAddr vulkanLoaderProc,
|
|
HWND hWnd);
|
|
|
|
~DxgiSurfaceFactory();
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryInterface(
|
|
REFIID riid,
|
|
void** ppvObject);
|
|
|
|
VkResult STDMETHODCALLTYPE CreateSurface(
|
|
VkInstance Instance,
|
|
VkPhysicalDevice Adapter,
|
|
VkSurfaceKHR* pSurface);
|
|
|
|
private:
|
|
|
|
PFN_vkGetInstanceProcAddr m_vkGetInstanceProcAddr;
|
|
HWND m_window;
|
|
|
|
};
|
|
|
|
} |