NarcEngine 0.1.1
C++ Vulkan game engine
 
Loading...
Searching...
No Matches
EngineInstance.h
1//
2// Created by theoh on 3/2/2025.
3//
4
5#pragma once
6
7#define GLFW_INCLUDE_VULKAN
8#include <GLFW/glfw3.h>
9
10class GLFWwindow;
11
12namespace narc_engine {
13 class EngineInstance final
14 {
15 public:
16 EngineInstance();
17 ~EngineInstance();
18
19 void getAllPhysicalDevices(uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const;
20
21 void createGLFWSurface(GLFWwindow* window, VkSurfaceKHR* surface, const VkAllocationCallbacks* pAllocator) const;
22 void createDebugUtilsMessenger(const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pDebugMessenger) const;
23 void destroyGLFWSurface(VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const;
24 void destroyDebugUtilsMessenger(VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks* pAllocator) const;
25
26 private:
27 VkInstance m_instance;
28 };
29} // narc_engine