SpiecsEngine
 
Loading...
Searching...
No Matches

◆ InitImgui()

void Spices::SlateRenderer::InitImgui ( ) const
private

Init Imgui.

Context, a concept of OpenGL, means OpenGL objects in used during a render stage. Likes VkInstance.

@breif Init ImPlot Library's Context.

@breif Configuration of ImGui. Can Set custom UI style here.

ImGui Slate Layout cache file. Set nullptr, if not need.

Setup Platform / Renderer backends.

Instance a ImGui_ImplVulkan_InitInfo.

ImGui Init for Vulkan.

Create IconFont.

Init NsightPerf HUD Renderer.

Context, a concept of OpenGL, means OpenGL objects in used during a render stage. Likes VkInstance.

@breif Init ImPlot Library's Context.

@breif Configuration of ImGui. Can Set custom UI style here.

ImGui Slate Layout cache file. Set nullptr, if not need.

Setup Platform / Renderer backends.

Instance a ImGui_ImplVulkan_InitInfo.

ImGui Init for Vulkan.

Create IconFont.

Init NsightPerf HUD Renderer.

Definition at line 97 of file SlateRenderer.cpp.

98 {
100
105 ImGui::CreateContext();
106
110 ImPlot::CreateContext();
111
116 ImGuiIO& io = ImGui::GetIO();
117
119 SPICES_ENGINE_ASSETS_PATH + "SlateLayout/DefaultLayout.ini",
120 "DefaultLayout.ini"
121 );
122
127 io.IniFilename = "DefaultLayout.ini";
128 io.LogFilename = nullptr;
129 io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
130 io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
131 io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; // Enable Multi-Viewport / Platform Windows
132
135
139 ImGui_ImplGlfw_InitForVulkan(m_VulkanState.m_Windows, true);
140
144 ImGui_ImplVulkan_InitInfo init_info = {};
145 init_info.Instance = m_VulkanState.m_Instance;
146 init_info.PhysicalDevice = m_VulkanState.m_PhysicalDevice;
147 init_info.Device = m_VulkanState.m_Device;
148 init_info.QueueFamily = m_VulkanState.m_GraphicQueueFamily;
149 init_info.Queue = m_VulkanState.m_GraphicQueue;
150 init_info.PipelineCache = VK_NULL_HANDLE;
151 init_info.DescriptorPool = m_DescriptorPool->GetPool();
152 init_info.RenderPass = m_Pass->Get();
153 init_info.Subpass = 0;
154 init_info.MinImageCount = MaxFrameInFlight;
155 init_info.ImageCount = MaxFrameInFlight;
156 init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
157 init_info.Allocator = VK_NULL_HANDLE;
158 init_info.CheckVkResultFn = [](VkResult result) { VK_CHECK(result); };
159
163 ImGui_ImplVulkan_Init(&init_info);
164
168 ImGui_ImplVulkan_CreateFontsTexture();
169
173 NSIGHTPERF_GPUPROFILERHUD_INITHUDRENDERER;
174
175 VK_CHECK(vkQueueWaitIdle(m_VulkanState.m_GraphicQueue))
176 }
#define SPICES_PROFILE_ZONE
#define VK_CHECK(expr)
Vulkan Check macro. Verify Vulkan API Effectiveness.
Definition VulkanUtils.h:68
static bool FileLibrary_CopyFile(std::string srcFilePath, std::string dstFilePath)
Copy a file to dst path.
static void SetFonts(FontMode fontmode=FontMode::FONT_PROPORTIONAL_SCALED)
Looking for TTF fonts, first on the VULKAN SDK, then Windows default fonts.
static void SetStyle()
Setting common style across samples.
std::shared_ptr< RendererPass > m_Pass
RendererPass.
Definition Renderer.h:2012
std::shared_ptr< VulkanDescriptorPool > m_DescriptorPool
This variable is passed while renderer instanced.
Definition Renderer.h:1997
VulkanState & m_VulkanState
This variable is passed while renderer instanced.
Definition Renderer.h:1992
constexpr uint32_t MaxFrameInFlight
Max In Flight Frame. 2 buffers are enough in this program.
Definition VulkanUtils.h:22
GLFWwindow * m_Windows
Definition VulkanUtils.h:92
VkInstance m_Instance
Definition VulkanUtils.h:93
uint32_t m_GraphicQueueFamily
VkPhysicalDevice m_PhysicalDevice
Definition VulkanUtils.h:95

References Spices::Renderer::m_VulkanState, Spices::ImGuiH::SetFonts(), and Spices::ImGuiH::SetStyle().

Referenced by OnSystemInitialize().