KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
KarmaGuiRenderer.h
Go to the documentation of this file.
1
10
11#pragma once
12
13#include "krpch.h"
14
15#include "imgui_impl_glfw.h"
18
19namespace Karma
20{
30 {
31 KGTextureID GetTextureIDAtIndex(uint32_t index);
32 uint32_t GetTextureWidthAtIndex(uint32_t index);
33
34 uint32_t GetTextureHeightAtIndex(uint32_t index);
35 };
36
38 {
39 public:
45 static void SetUpKarmaGuiRenderer(GLFWwindow* window);
46 static void OnKarmaGuiLayerDetach();
47 static void OnKarmaGuiLayerBegin();
48 static void OnKarmaGuiLayerEnd();
49
58 static void AddImageTexture(char const* fileName, const std::string& label);
59
60 // Vulkan specific functions
68 static void CreateDescriptorPool();
69 static void GracefulVulkanShutDown();
70
76 static void CleanUpVulkanAndWindowData();
77 static void GiveLoopBeginControlToVulkan();
78 static void GiveLoopEndControlToVulkan();
79 static void FrameRender(KarmaGui_ImplVulkanH_Window* windowData, KGDrawData* drawData);
80 static void FramePresent(KarmaGui_ImplVulkanH_Window* windowData);
81
82 private:
83
84 static GLFWwindow* m_GLFWwindow;
85 static void* m_BackendRenderer;
86
87 // Vulkan specific members
88 static VkDescriptorPool m_KarmaGuiDescriptorPool;
89 static KarmaGui_ImplVulkanH_Window m_VulkanWindowData;
90
91 static bool m_SwapChainRebuild;
92 };
93}
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
This file contains KarmaGuiOpenGLHandler class and relevant data structures.
This file contains KarmaGuiVulkanHandler class and relevant data structures.
Definition KarmaGuiRenderer.h:38
static KarmaGuiBackendRendererUserData * GetBackendRendererUserData()
Acessor function for KarmaGui's renderer backend (BackendRendererUserData).
Definition KarmaGuiRenderer.cpp:372
static void SetUpKarmaGuiRenderer(GLFWwindow *window)
Sets the renderer for KarmaGui based on programmer's choice.
Definition KarmaGuiRenderer.cpp:16
static void CleanUpVulkanAndWindowData()
Cleaning up vulkan allocated resources.
Definition KarmaGuiRenderer.cpp:394
static void KarmaGui_ImplVulkan_Init(KarmaGui_ImplVulkan_InitInfo *initInfo)
Initialize Vulkan backend renderer.
Definition KarmaGuiRenderer.cpp:226
This file contains GLFW renderer backend.
Definition KarmaGui.h:2697
KarmaGui_ImplOpenGL3_Data()
A constructor.
Definition KarmaGuiOpenGLHandler.h:214
Backend data containing stuff for Vulkan renderer for KarmaGui.
Definition KarmaGuiVulkanHandler.h:712
A data structure for Vulkan's initialization done in KarmaGuiRenderer::KarmaGui_ImplVulkan_Init()
Definition KarmaGuiVulkanHandler.h:53
Helper structure to hold the data needed by one rendering context (Vulkan) of one OS window (Windows,...
Definition KarmaGuiVulkanHandler.h:281
A multiply inherited class for supporting both OpenGL and Vulkan API's.
Definition KarmaGuiRenderer.h:30