hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/platform/vulkan/vulkan_renderer.h
blob: 0bf2395696c92d07e1cbbaa43a3d5eac335bad59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once

#include <glm/glm.hpp>
#include <functional>

namespace Donut
{
    void vulkan_prepare_glfw();

    class VulkanRenderer
    {
    public:
        VulkanRenderer();
        ~VulkanRenderer();

        bool init(void* glfwWindow, int width, int height);
        void shutdown();

        bool init_im_gui();

        void draw_frame(const glm::vec4& clear_color, const std::function<void()>& build_ui = {});

        void on_resize(int width, int height);

    private:
        struct Impl;
        Impl* m_impl = nullptr;
    };
}