#pragma once #include #include #include #include "../spirv/spirv_module.h" namespace dxvk { /** * \brief DXGI presenter * * Renders the back buffer from the * \ref DxgiSwapChain to the Vulkan * swap chain. */ class DxgiPresenter : public RcObject { public: DxgiPresenter( const Rc& device, HWND window, UINT bufferWidth, UINT bufferHeight); ~DxgiPresenter(); /** * \brief Initializes back buffer image * \param [in] image Back buffer image */ void initBackBuffer( const Rc& image); /** * \brief Renders image to the screen * \param [in] view Source image view */ void presentImage( const Rc& view); private: Rc m_device; Rc m_context; Rc m_surface; Rc m_swapchain; Rc m_acquireSync; Rc m_presentSync; Rc createVertexShader(); Rc createFragmentShader(); }; }