HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
gfx_system_vulkan_macos.hpp
1// Copyright Take Vos 2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "gfx_system_vulkan.hpp"
8#include <span>
9
10namespace hi::inline v1 {
11
12class gfx_system_vulkan_macos final : public gfx_system_vulkan {
13public:
14 gfx_system_vulkan_macos(gui_system_delegate *delegate);
15 ~gfx_system_vulkan_macos();
16
17 gfx_system_vulkan_macos(const gfx_system_vulkan_macos &) = delete;
18 gfx_system_vulkan_macos &operator=(const gfx_system_vulkan_macos &) = delete;
19 gfx_system_vulkan_macos(gfx_system_vulkan_macos &&) = delete;
20 gfx_system_vulkan_macos &operator=(gfx_system_vulkan_macos &&) = delete;
21
22 vk::ResultValueType<vk::SurfaceKHR>::type createMetalSurfaceKHR(const vk::MetalSurfaceCreateInfoEXT &createInfo) const
23 {
24 hi_axiom(gfx_system_mutex.recurse_lock_count());
25 return intrinsic.createMetalSurfaceEXT(createInfo);
26 }
27};
28
29} // namespace hi::inline v1
#define hi_axiom(expression,...)
Specify an axiom; an expression that is true.
Definition assert.hpp:253
DOXYGEN BUG.
Definition algorithm.hpp:13
unfair_recursive_mutex gfx_system_mutex
Global mutex for GUI elements, like gfx_system, gfx_device.
Definition gfx_system_globals.hpp:14
gfx_system_vulkan()
Create an instance of a gfx_device.
vk::Instance intrinsic
Vulkan instance.
Definition gfx_system_vulkan.hpp:24
Definition gui_system_delegate.hpp:12