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
+4 -1
View File
@@ -1,4 +1,5 @@
#pragma once
#include <functional>
#include <string>
#include "gfx/gl_framebuffer.h"
#include "gfx/gl_shader.h"
@@ -21,7 +22,9 @@ void canvas_set_program(ShaderCanvas& c, unsigned int program);
// Renderiza el shader al FBO y dibuja la textura resultante como contenido del panel ImGui.
// Llamar DENTRO de un ImGui::Begin/End. Ocupa GetContentRegionAvail().
void canvas_render(ShaderCanvas& c, float time_seconds);
// uniforms_fn se invoca tras glUseProgram y antes de quad_draw, recibe el program ID.
void canvas_render(ShaderCanvas& c, float time_seconds,
const std::function<void(unsigned int program)>& uniforms_fn = {});
void canvas_destroy(ShaderCanvas& c);