Files
egutierrez 37ca9562c3 chore(registry): añadir uses_functions a consumidores reales (gfx)
Auditoria del issue 0044: 14 archivos .md de cpp/functions/gfx/ con
uses_functions actualizado. Resuelve dependencias detectadas via
#include: gl_loader (consumido por casi todo el dominio gfx),
dag_catalog (consumido por la familia dag_*), fullscreen_quad,
gl_framebuffer, gl_shader, mesh_obj_load, uniform_parser y
dag_node_previews.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 23:40:31 +02:00

2.6 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, framework, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path framework params output
uniform_panel component cpp gfx 1.0.0 impure void uniforms_panel(UniformStore&, const std::vector<UniformDescriptor>&) Panel ImGui auto-generado a partir de UniformDescriptor. Sincroniza un UniformStore con los descriptores, renderiza widgets (slider/color/toggle/xy) y aplica los valores al programa GL activo vía glUniform*.
opengl
shader
uniforms
imgui
controls
gfx
component
gl_loader_cpp_gfx
uniform_parser_cpp_gfx
false error_go_core
imgui
gl_loader
uniform_parser
array
unordered_map
false
cpp/functions/gfx/uniform_panel.cpp imgui
name desc
store Mapa nombre→array<float,4> con los valores actuales de cada uniform. Se modifica in-place al interactuar con los widgets.
name desc
descs Descriptores parseados por parse_uniforms(). Determinan qué widgets se renderizan y con qué rangos.
name desc
program (uniforms_apply) ID del programa GL sobre el que aplicar los valores. Debe estar activo con glUseProgram antes de llamar.
Dibuja los widgets ImGui en el panel actual. uniforms_apply llama glUniform* actualizando los uniforms del programa para el frame actual.

uniform_panel

Tres funciones que forman el ciclo completo de controles de uniforms:

parse_uniforms(src) → descs
uniforms_sync(store, descs)   // al compilar shader
uniforms_panel(store, descs)  // cada frame, dentro de ImGui::Begin/End
uniforms_apply(store, descs, program)  // cada frame, dentro de canvas_render callback

Widgets por tipo

GLSLType WidgetKind ImGui call
Float Slider SliderFloat (+ flag Logarithmic)
Int Slider SliderInt
Bool Toggle Checkbox
Vec2 XY SliderFloat2
Vec3 Color ColorEdit3
Vec4 Color ColorEdit4

Notas

  • uniforms_sync elimina entradas obsoletas y añade nuevas con sus defaults. Preserva valores actuales para uniforms que siguen presentes.
  • Si no hay descriptores, uniforms_panel muestra "Declare uniforms with @slider ... annotations.".
  • uniforms_apply usa glGetUniformLocation por nombre; si no existe (loc < 0), lo salta silenciosamente.