aboutsummaryrefslogtreecommitdiff
path: root/src/platform/vulkan/vulkan_device.h
blob: 85cc5ca707a0a02699130202d4dbecae81003719 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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;
}