3#include <spdlog/spdlog.h>
4#include <vulkan/vk_platform.h>
5#include <vulkan/vulkan_core.h>
7#include <tl/expected.hpp>
9#include <vulkan/vulkan.hpp>
10#include <vulkan/vulkan_enums.hpp>
11#include <vulkan/vulkan_handles.hpp>
12#include <vulkan/vulkan_structs.hpp>
36 const ::vk::SurfaceKHR &surface)
39VKAPI_ATTR
auto VKAPI_CALL
40debug_callback(VkDebugUtilsMessageSeverityFlagBitsEXT message_severity,
41 VkDebugUtilsMessageTypeFlagsEXT message_type,
42 const VkDebugUtilsMessengerCallbackDataEXT *p_callback_data,
43 void *p_user_data) -> VkBool32;
46 const auto res = ::vk::enumerateInstanceExtensionProperties();
49 for (
const auto &ext : res.value) {
50 if (std::strcmp(ext.extensionName.data(), name.data())) {
60 const auto res = ::vk::enumerateInstanceLayerProperties();
63 for (
const auto &ext : res.value) {
64 if (std::strcmp(ext.layerName, name.data())) {
74 const ::vk::PhysicalDevice &device) {
75 const auto res = device.enumerateDeviceExtensionProperties();
78 for (
const auto &ext : res.value) {
79 if (std::strcmp(ext.extensionName, name.data())) {
auto get_swapchain_support_details(const ::vk::PhysicalDevice &physical_device, const ::vk::SurfaceKHR &surface) -> expected< SwapchainSupportDetails >
Definition vulkan.cpp:78
auto is_device_extension_supported(const std::string_view &name, const ::vk::PhysicalDevice &device)
Definition vulkan.hpp:73
auto is_extension_supported(const std::string_view &name) -> bool
Definition vulkan.hpp:45
auto load_functions(const ::vk::Instance &instance) -> expected< void >
Definition vulkan.cpp:45
auto is_layer_supported(const std::string_view &name) -> bool
Definition vulkan.hpp:59
auto debug_callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity, VkDebugUtilsMessageTypeFlagsEXT type, const VkDebugUtilsMessengerCallbackDataEXT *msg_data, void *user_data) -> VkBool32
Definition vulkan.cpp:52
tl::expected< T, Err > expected
Definition errors.hpp:49
::vk::SurfaceCapabilitiesKHR surface_capabilites
Definition vulkan.hpp:28
std::vector<::vk::PresentModeKHR > present_modes
Definition vulkan.hpp:30
std::vector<::vk::SurfaceFormatKHR > surface_formats
Definition vulkan.hpp:29