25 lines
816 B
C++
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;
|
|
};
|