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:133
DOXYGEN BUG.
Definition algorithm.hpp:15
void * os_handle
Minimum offset between two objects to avoid false sharing.
Definition architecture.hpp:239
unfair_recursive_mutex gfx_system_mutex
Global mutex for GUI elements, like gfx_system, gfx_device, Windows and Widgets.
Definition gfx_system_globals.hpp:15
Definition gfx_surface.hpp:16
Graphics system.
Definition gfx_system.hpp:21
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
int recurse_lock_count() const noexcept
This function should be used in hi_axiom() to check if the lock is held by current thread.
Definition unfair_recursive_mutex.hpp:60