#pragma once #define GLFW_INCLUDE_VULKAN #include "GLFW/glfw3.h" #include "ModuleInstance.h" #include template class Delegate; class RenderEngine : public ModuleInstance { GLFWwindow* window; VkInstance instance_; #ifdef _DEBUG VkResult enable_layer_validation(VkInstance instance, VkDebugUtilsMessengerCreateInfoEXT* create_info); VkDebugUtilsMessengerEXT debug_messenger_; #endif static std::vector get_required_extensions(); void stop_render(); public: RenderEngine(); ~RenderEngine() override; void start() override; };