vulkan-test/src/init/vulkan_instance.hpp
2024-11-17 20:47:48 -05:00

25 lines
816 B
C++

#pragma once
#define VKFW_NO_STRUCT_CONSTRUCTORS // Use aggregate initialization for GLFW structs
#include <vkfw.hpp>
#define VULKAN_HPP_NO_CONSTRUCTORS
#include <vulkan/vulkan.hpp>
#include "../util/types.hpp"
class VulkanInstance {
public:
VulkanInstance() = default;
VulkanInstance(const VulkanInstance&) = default;
VulkanInstance(VulkanInstance&&) = delete;
fn operator=(const VulkanInstance&)->VulkanInstance& = default;
fn operator=(VulkanInstance&&)->VulkanInstance& = delete;
~VulkanInstance() = default;
static fn create() -> vk::UniqueInstance;
private:
static fn getRequiredExtensions() -> std::vector<const char*>;
static fn checkValidationLayerSupport() -> bool;
};