HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
gfx_system_vulkan_impl.hpp
1
2#pragma once
3
4#include "gfx_system_vulkan_intf.hpp"
5#include <vulkan/vulkan.hpp>
6
7hi_export_module(hikogui.GFX : gfx_system_impl);
8
9hi_export namespace hi { inline namespace v1 {
10
11inline gfx_system::~gfx_system()
12{
13 auto const lock = std::scoped_lock(gfx_system_mutex);
14#ifndef NDEBUG
15 intrinsic.destroy(debugUtilsMessager, nullptr, loader());
16#endif
17}
18
19[[nodiscard]] inline gfx_system& gfx_system::global()
20{
21 if (not detail::gfx_system_global) {
22 detail::gfx_system_global = std::make_unique<gfx_system>();
23 }
24 return *detail::gfx_system_global;
25}
26
27}} // namespace hi::v1
The HikoGUI namespace.
Definition array_generic.hpp:20
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
T lock(T... args)