Adding UI to the Engine

May 2, 2025

I implemented ImGui to my shader engine project now and I implemented a shader loader panel that lists the shaders from the project assets folder so now I can select a shader to load! With this new implementation I removed the keybinds that change the shaders.

undefined

I can also edit the shader file then go back to the ShaderEngine window and reload with the R key!

I also started an implementation for a shader maker as well…

undefined

I’m not sure how I’ll be able to add advanced functionality to the shader loader but I’ll make some concepts and figure it out, because there are some pretty cool visuals I can take advantage of using ImGui.

undefined
// Generate samples and plot them
float samples[100];
for (int n = 0; n < 100; n++)
    samples[n] = sinf(n * 0.2f + ImGui::GetTime() * 1.5f);
ImGui::PlotLines("Samples", samples, 100);


This samples Widget is really cool and I can potentially show how the shader is being affected by certain inputs…

Using this system I’m not sure how I’ll be able to reverse engineer the glsl files to be able to load them again, but I’m pretty sure I can utilize parsing in this case…

https://youtu.be/elJ8fppR22M

Blog

Kero Mena