PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
Surface.hpp
1#pragma once
2
3#include <volk.h>
4
5namespace PixelBullet
6{
7 class Instance;
8 class LogicalDevice;
9 class PhysicalDevice;
10
11 class Surface
12 {
13 friend class Graphics;
14
15 public:
16 Surface(const Instance& instance, const PhysicalDevice& physicalDevice, const LogicalDevice& logicalDevice);
17 ~Surface();
18
19 operator const VkSurfaceKHR&() const
20 {
21 return m_Surface;
22 }
23
24 const VkSurfaceKHR& GetSurface() const
25 {
26 return m_Surface;
27 }
28 const VkSurfaceCapabilitiesKHR& GetCapabilities() const
29 {
30 return m_Capabilities;
31 }
32 const VkSurfaceFormatKHR& GetFormat() const
33 {
34 return m_Format;
35 }
36
37 private:
38 const Instance& m_Instance;
39 const PhysicalDevice& m_PhysicalDevice;
40 const LogicalDevice& m_LogicalDevice;
41
42 VkSurfaceKHR m_Surface = VK_NULL_HANDLE;
43 VkSurfaceCapabilitiesKHR m_Capabilities = {};
44 VkSurfaceFormatKHR m_Format = {};
45 };
46} // namespace PixelBullet
Module that manages the Vulkan m_Instance, Surface, Window and the renderpass structure.
Definition Graphics.hpp:32
Definition Instance.hpp:14
Definition LogicalDevice.hpp:13
Definition PhysicalDevice.hpp:12
Definition Surface.hpp:12