SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
VulkanSurface.h
1#pragma once
2
3#include "spark/render/Resource.h"
4#include "spark/render/Surface.h"
5#include "spark/render/vk/Export.h"
6#include "spark/render/vk/Helpers.h"
7
8#include <memory>
9
10SPARK_FWD_DECLARE_VK_HANDLE(VkSurfaceKHR)
11SPARK_FWD_DECLARE_VK_HANDLE(VkInstance)
12
13namespace spark::render::vk
14{
18 class SPARK_RENDER_VK_EXPORT VulkanSurface final : public ISurface, public Resource<VkSurfaceKHR>
19 {
20 public:
26 VulkanSurface(const VkSurfaceKHR& surface, const VkInstance& instance);
27 ~VulkanSurface() override;
28
29 VulkanSurface(const VulkanSurface& other) = delete;
30 VulkanSurface(VulkanSurface&& other) noexcept = delete;
31 VulkanSurface& operator=(const VulkanSurface& other) = delete;
32 VulkanSurface& operator=(VulkanSurface&& other) noexcept = delete;
33
38 [[nodiscard]] const VkInstance& instance() const noexcept;
39
40 private:
41 struct Impl;
42 std::unique_ptr<Impl> m_impl;
43 };
44}
Represents a surface to render to. A surface can be seen as a window or area on the screen where the ...
Definition Surface.h:14
Definition Resource.h:34
Implementation of ISurface for Vulkan.
Definition VulkanSurface.h:19
Definition VulkanSurface.cpp:8