7#include "gfx_system.hpp"
8#include <vulkan/vulkan.hpp>
10namespace hi::inline
v1 {
18 vk::DispatchLoaderDynamic _loader;
20 vk::DebugUtilsMessengerEXT debugUtilsMessager;
55 void init() noexcept(false) override;
57 [[nodiscard]]
std::unique_ptr<
gfx_surface> make_surface(os_handle instance,
void *os_window) const noexcept override;
59 vk::DispatchLoaderDynamic loader() const noexcept
65 void destroySurfaceKHR(vk::SurfaceKHR surface)
68 intrinsic.destroySurfaceKHR(surface);
71 static VkBool32 debugUtilsMessageCallback(
72 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
73 VkDebugUtilsMessageTypeFlagsEXT messageType,
74 const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData,
#define hi_axiom(expression,...)
Specify an axiom; an expression that is true.
Definition assert.hpp:238
DOXYGEN BUG.
Definition algorithm.hpp:13
unfair_recursive_mutex gfx_system_mutex
Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets.
Definition gfx_system_globals.hpp:14
Definition gfx_surface.hpp:16
Graphics system.
Definition gfx_system.hpp:20
Vulkan gfx_device controller.
Definition gfx_system_vulkan.hpp:15
vk::PhysicalDeviceFeatures requiredFeatures
List of required features for each device.
Definition gfx_system_vulkan.hpp:33
vk::ApplicationInfo applicationInfo
application info passed when the instance was created.
Definition gfx_system_vulkan.hpp:39
std::vector< const char * > requiredLayers
List of extension that where requested when the instance was created.
Definition gfx_system_vulkan.hpp:30
void init() noexcept(false) override
Initialize after construction.
gfx_system_vulkan()
Create an instance of a gfx_device.
std::vector< const char * > requiredExtensions
List of extension that where requested when the instance was created.
Definition gfx_system_vulkan.hpp:27
vk::PhysicalDeviceLimits requiredLimits
List of required limits for each device.
Definition gfx_system_vulkan.hpp:36
vk::Instance intrinsic
Vulkan instance.
Definition gfx_system_vulkan.hpp:24