blob: 31f58426dbe40774be231f3e6dbf67d7a0c77512 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#pragma once
#include "rendering/rhi.h"
namespace Donut::RHI
{
// Vulkan implementation of the RHI Device (MoltenVK on macOS). owns the
// instance/device/swapchain and translates the RHI's baked pipelines +
// recorded command lists into native Vulkan; the geometry it draws is the
// shared SceneRenderer / BlackHoleRenderer, identical to every other backend.
auto create_vulkan_device() -> Scope<Device>;
// must run BEFORE glfwInit() when Vulkan is the selected API: points GLFW at
// the loader the app links against (its own dlopen fails on macOS/Homebrew)
// and configures the MoltenVK ICD / layer paths.
auto vulkan_prepare_glfw() -> void;
// whether a Vulkan loader exists on this machine at all. on windows vulkan-1.dll
// is delay-loaded, so this has to say yes before any vk* call; true elsewhere.
auto vulkan_runtime_available() -> bool;
}
|