45 Context(GLFWwindow *window,
bool enableValidation);
51 [[nodiscard]] VkInstance
GetInstance()
const {
return m_instance; }
53 [[nodiscard]] VkSurfaceKHR
GetSurface()
const {
return m_surface; }
57 [[nodiscard]] VkDevice
GetDevice()
const {
return m_device; }
66 void CreateInstance();
67 void CreateDebugMessenger();
68 void CreateSurface(GLFWwindow *window);
69 void PickPhysicalDevice();
70 void CreateLogicalDevice();
72 bool m_enableValidation =
false;
73 VkInstance m_instance = VK_NULL_HANDLE;
74 VkDebugUtilsMessengerEXT m_debugMessenger = VK_NULL_HANDLE;
75 VkSurfaceKHR m_surface = VK_NULL_HANDLE;
76 VkPhysicalDevice m_physicalDevice = VK_NULL_HANDLE;
77 VkDevice m_device = VK_NULL_HANDLE;
78 VkQueue m_graphicsQueue = VK_NULL_HANDLE;
79 VkQueue m_presentQueue = VK_NULL_HANDLE;
Owns the Vulkan instance, surface (tied to a GLFW window), physical + logical device,...
VkPhysicalDevice GetPhysicalDevice() const
VkInstance GetInstance() const
VkQueue GetGraphicsQueue() const
Context(const Context &)=delete
QueueFamilies GetQueueFamilies() const
Context & operator=(const Context &)=delete
VkDevice GetDevice() const
VkSurfaceKHR GetSurface() const
VkQueue GetPresentQueue() const