window resize handled, instance improved a bit
This commit is contained in:
parent
e114c36690
commit
2b33897b4a
16 changed files with 182 additions and 115 deletions
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue