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 class Window;
11
12 class Surface
13 {
14 friend class Graphics;
15
16 public:
17 Surface(const Instance& instance, const PhysicalDevice& physicalDevice, const LogicalDevice& logicalDevice,
18 const Window& window);
19 ~Surface();
20
21 operator const VkSurfaceKHR&() const
22 {
23 return m_Surface;
24 }
25
26 const VkSurfaceKHR& GetSurface() const
27 {
28 return m_Surface;
29 }
30 const VkSurfaceCapabilitiesKHR& GetCapabilities() const
31 {
32 return m_Capabilities;
33 }
34 const VkSurfaceFormatKHR& GetFormat() const
35 {
36 return m_Format;
37 }
38
39 void RefreshCapabilities();
40
41 private:
42 const Instance& m_Instance;
43 const PhysicalDevice& m_PhysicalDevice;
44 const LogicalDevice& m_LogicalDevice;
45 const Window& m_Window;
46
47 VkSurfaceKHR m_Surface = VK_NULL_HANDLE;
48 VkSurfaceCapabilitiesKHR m_Capabilities = {};
49 VkSurfaceFormatKHR m_Format = {};
50 };
51} // namespace PixelBullet
Definition instance.hpp:17
Definition logical_device.hpp:13
Definition physical_device.hpp:12
Definition surface.hpp:13