Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ImguiRendererVulkan.hpp
1#pragma once
2
3#include <vulkan/vulkan.h>
4
5#include "ImguiRenderer.hpp"
6
7namespace Grindstone::GraphicsAPI {
8 class WindowGraphicsBinding;
9}
10
11namespace Grindstone::GraphicsAPI::Vulkan {
12 class Core;
13}
14
15namespace Grindstone::Editor::ImguiEditor {
17 public:
20
21 virtual GraphicsAPI::CommandBuffer* GetCommandBuffer() override;
22 virtual bool PreRender() override;
23 virtual void PrepareImguiRendering() override;
24 virtual void PostRender() override;
25 virtual void Resize() override;
26 virtual ImTextureID CreateTexture(std::filesystem::path path) override;
27 private:
28 void WaitForResizeAndRecreateSwapchain();
29 void SetupVulkanWindow(
32 int width,
33 int height
34 );
35
36 void CreateOrResizeWindow(
39 int width, int height
40 );
41
42 VkDescriptorPool imguiPool = nullptr;
43 std::vector<GraphicsAPI::CommandBuffer*> commandBuffers;
44
45 bool shouldRebuildSwapchain = false;
46 };
47}
Definition ImguiRendererVulkan.hpp:16
Definition ImguiRenderer.hpp:12
Definition CommandBuffer.hpp:21
Definition VulkanCore.hpp:31
Definition WindowGraphicsBinding.hpp:16