window resize handled, instance improved a bit

This commit is contained in:
Blue 2023-10-14 19:57:47 -03:00
parent e114c36690
commit 2b33897b4a
Signed by: blue
GPG key ID: 9B203B252A63EE38
16 changed files with 182 additions and 115 deletions

View file

@ -2,30 +2,40 @@
#include <vulkan/vulkan.h>
#include <vector>
#include <set>
#include "utils.h"
namespace Engine {
class Engine;
class Window;
class Surface;
class Instance {
friend class Engine;
friend class Surface;
public:
Instance(Engine* engine);
Instance();
~Instance();
void initialize(const std::vector<const char*>& requiredExtensions);
void deinitialize();
void addLayer(const std::string& layerName);
void addExtension(const std::string& extensionName);
void enableDebug();
std::vector<const char*> getLayers() const;
std::vector<VkPhysicalDevice> enumeratePhysicalDevices() const;
private:
void setupDebugMessenger();
bool hasValidationLayers();
private:
bool initialized;
bool validationLayersEnabledAndSupported;
Engine* engine;
std::set<std::string> layerNames;
std::set<std::string> extensionNames;
std::vector<const char*> layers;
std::vector<const char*> extensions;
VkInstance vk;
VkDebugUtilsMessengerEXT debugMessenger;
};