wren
Vulkan-based game engine
Toggle main menu visibility
Loading...
Searching...
No Matches
vulkan.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <vulkan/vk_platform.h>
4
#include <vulkan/vulkan_core.h>
5
6
#include <vector>
7
#include <vulkan/vulkan.hpp>
8
#include <vulkan/vulkan_enums.hpp>
9
#include <vulkan/vulkan_handles.hpp>
10
#include <vulkan/vulkan_structs.hpp>
11
#include <
wren/utils/result.hpp
>
12
13
// VKAPI_ATTR auto VKAPI_CALL vkCmdPushDescriptorSetKHR(
14
// VkCommandBuffer buffer, VkPipelineLayout layout,
15
// VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size,
16
// void const *pValues);
17
18
namespace
wren::vulkan
{
19
struct
SwapchainSupportDetails
{
20
::vk::SurfaceCapabilitiesKHR
surface_capabilites
;
21
std::vector<::vk::SurfaceFormatKHR>
surface_formats
;
22
std::vector<::vk::PresentModeKHR>
present_modes
;
23
};
24
25
auto
load_functions
(const ::vk::Instance& instance) ->
expected<void>
;
26
27
auto
get_swapchain_support_details
(const ::vk::PhysicalDevice& physical_device,
28
const ::vk::SurfaceKHR& surface)
29
->
expected<SwapchainSupportDetails>
;
30
31
VKAPI_ATTR
auto
VKAPI_CALL
32
debug_callback
(::vk::DebugUtilsMessageSeverityFlagBitsEXT message_severity,
33
::vk::DebugUtilsMessageTypeFlagsEXT message_type,
34
const ::vk::DebugUtilsMessengerCallbackDataEXT* p_callback_data,
35
void
* p_user_data) -> ::vk::Bool32;
36
37
inline
auto
is_extension_supported
(
const
std::string_view& name) ->
bool
{
38
const
auto
res = ::vk::enumerateInstanceExtensionProperties();
39
40
bool
found =
false
;
41
for
(
const
auto
& ext : res.value) {
42
if
(std::strcmp(ext.extensionName.data(), name.data())) {
43
found =
true
;
44
break
;
45
}
46
}
47
48
return
found;
49
}
50
51
inline
auto
is_layer_supported
(
const
std::string_view& name) ->
bool
{
52
const
auto
res = ::vk::enumerateInstanceLayerProperties();
53
54
bool
found =
false
;
55
for
(
const
auto
& ext : res.value) {
56
if
(std::strcmp(ext.layerName, name.data())) {
57
found =
true
;
58
break
;
59
}
60
}
61
62
return
found;
63
}
64
65
inline
auto
is_device_extension_supported
(
const
std::string_view& name,
66
const ::vk::PhysicalDevice& device) {
67
const
auto
res = device.enumerateDeviceExtensionProperties();
68
69
bool
found =
false
;
70
for
(
const
auto
& ext : res.value) {
71
if
(std::strcmp(ext.extensionName, name.data())) {
72
found =
true
;
73
break
;
74
}
75
}
76
77
return
found;
78
}
79
80
}
// namespace wren::vulkan
wren::vulkan
Definition
device.cpp:11
wren::vulkan::get_swapchain_support_details
auto get_swapchain_support_details(const ::vk::PhysicalDevice &physical_device, const ::vk::SurfaceKHR &surface) -> expected< SwapchainSupportDetails >
Definition
vulkan.cpp:74
wren::vulkan::is_device_extension_supported
auto is_device_extension_supported(const std::string_view &name, const ::vk::PhysicalDevice &device)
Definition
vulkan.hpp:65
wren::vulkan::is_extension_supported
auto is_extension_supported(const std::string_view &name) -> bool
Definition
vulkan.hpp:37
wren::vulkan::debug_callback
auto debug_callback(vk::DebugUtilsMessageSeverityFlagBitsEXT severity, vk::DebugUtilsMessageTypeFlagsEXT type, const vk::DebugUtilsMessengerCallbackDataEXT *msg_data, void *) -> VkBool32
Definition
vulkan.cpp:52
wren::vulkan::load_functions
auto load_functions(const ::vk::Instance &instance) -> expected< void >
Definition
vulkan.cpp:45
wren::vulkan::is_layer_supported
auto is_layer_supported(const std::string_view &name) -> bool
Definition
vulkan.hpp:51
wren::expected
std::expected< T, Err > expected
Definition
result.hpp:43
wren::vulkan::SwapchainSupportDetails
Definition
vulkan.hpp:19
wren::vulkan::SwapchainSupportDetails::surface_capabilites
::vk::SurfaceCapabilitiesKHR surface_capabilites
Definition
vulkan.hpp:20
wren::vulkan::SwapchainSupportDetails::present_modes
std::vector<::vk::PresentModeKHR > present_modes
Definition
vulkan.hpp:22
wren::vulkan::SwapchainSupportDetails::surface_formats
std::vector<::vk::SurfaceFormatKHR > surface_formats
Definition
vulkan.hpp:21
result.hpp
wren
include
wren
utils
vulkan.hpp
Generated by
1.17.0