feat(shaders_lab): uniform annotations → auto-generated ImGui controls

- cpp/functions/gfx/uniform_parser: regex-based parser of @slider/@color/@toggle/@xy annotations (+ inline tests)
- cpp/functions/gfx/uniform_panel: ImGui widgets + value store + glUniform* apply
- shader_canvas: optional uniforms callback invoked per-frame
- gl_loader: +glUniform1i/3f/4f
- seed plasma: demo uniforms u_speed + u_color
- rebuild Windows .exe

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-24 21:02:35 +02:00
parent b828fd6acc
commit 4610bb4a99
15 changed files with 580 additions and 23 deletions
+6
View File
@@ -26,7 +26,10 @@ PFNGLGETUNIFORMLOCATIONPROC fn_glGetUniformLocation = nullptr;
PFNGLLINKPROGRAMPROC fn_glLinkProgram = nullptr;
PFNGLSHADERSOURCEPROC fn_glShaderSource = nullptr;
PFNGLUNIFORM1FPROC fn_glUniform1f = nullptr;
PFNGLUNIFORM1IPROC fn_glUniform1i = nullptr;
PFNGLUNIFORM2FPROC fn_glUniform2f = nullptr;
PFNGLUNIFORM3FPROC fn_glUniform3f = nullptr;
PFNGLUNIFORM4FPROC fn_glUniform4f = nullptr;
PFNGLUSEPROGRAMPROC fn_glUseProgram = nullptr;
namespace fn::gfx {
@@ -60,7 +63,10 @@ bool gl_loader_init() {
LOAD(glLinkProgram);
LOAD(glShaderSource);
LOAD(glUniform1f);
LOAD(glUniform1i);
LOAD(glUniform2f);
LOAD(glUniform3f);
LOAD(glUniform4f);
LOAD(glUseProgram);
#undef LOAD