PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
surface.h
1#pragma once
2
3#include <volk.h>
4
5namespace pixelbullet
6{
7class Instance;
8class LogicalDevice;
9class PhysicalDevice;
10class Window;
11
13{
14 friend class Graphics;
15
16public:
17 Surface(const Instance& instance, const PhysicalDevice& physical_device, const LogicalDevice& logical_device, const Window& window);
18 ~Surface();
19
20 operator const VkSurfaceKHR&() const
21 {
22 return surface_;
23 }
24
25 const VkSurfaceKHR& GetSurface() const
26 {
27 return surface_;
28 }
29 const VkSurfaceCapabilitiesKHR& GetCapabilities() const
30 {
31 return capabilities_;
32 }
33 const VkSurfaceFormatKHR& GetFormat() const
34 {
35 return format_;
36 }
37
38 void RefreshCapabilities();
39
40private:
41 const Instance& instance_;
42 const PhysicalDevice& physical_device_;
43 const LogicalDevice& logical_device_;
44 const Window& window_;
45
46 VkSurfaceKHR surface_ = VK_NULL_HANDLE;
47 VkSurfaceCapabilitiesKHR capabilities_ = {};
48 VkSurfaceFormatKHR format_ = {};
49};
50} // namespace pixelbullet
Module that manages the Vulkan instance_, Surface, Window and the renderpass structure.
Definition graphics.h:36
Definition instance.h:17
Definition logical_device.h:13
Definition physical_device.h:12
Definition surface.h:13
Definition window.h:23