Program Listing for File instance.hpp¶
↰ Return to documentation for file (inexor/vulkan-renderer/wrapper/instance.hpp)
#pragma once
#include <volk.h>
#include <cstdint>
#include <span>
#include <string>
namespace inexor::vulkan_renderer::wrapper {
[[nodiscard]] bool is_instance_extension_supported(const std::string &extension_name);
[[nodiscard]] bool is_instance_layer_supported(const std::string &layer_name);
class Instance {
private:
VkInstance m_instance{VK_NULL_HANDLE};
public:
static constexpr std::uint32_t REQUIRED_VK_API_VERSION{VK_API_VERSION_1_2};
Instance(const std::span<const char *> instance_layers = {},
const std::span<const char *> instance_extensions = {});
Instance(const Instance &) = delete;
Instance(Instance &&) noexcept;
~Instance();
Instance &operator=(const Instance &) = delete;
Instance &operator=(Instance &&) = delete;
[[nodiscard]] VkInstance instance() const {
return m_instance;
}
};
} // namespace inexor::vulkan_renderer::wrapper