Files
fn_registry/cpp/functions/gfx/dag_uniforms.md
T
egutierrez 5d83c11169 feat(shaders_lab): DAG pipeline mode with node catalog
- cpp/functions/gfx/dag_types: DagStep, DagNodeDef, DagControl (header-only)
- cpp/functions/gfx/dag_catalog: 10 hardcoded nodes (4 gen, 3 op, 3 blend) ported from shader-dag-blends.jsx
- cpp/functions/gfx/dag_compile: pipeline → GLSL 330 core with fan-in via source_id
- cpp/functions/gfx/dag_uniforms: upload u_params[16] via glUniform4fv
- cpp/functions/gfx/dag_panel: ImGui pipeline editor (add/remove/reorder/controls)
- main.cpp: Code/DAG mode toggle, per-mode compile path and uniforms
- gl_loader: +glUniform4fv
- rebuild Windows .exe

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 21:15:21 +02:00

1.3 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, 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 params output
dag_uniforms function cpp gfx 1.0.0 impure void dag_uniforms_apply(const std::vector<DagStep>& pipeline, unsigned int program) Sube los params del pipeline al shader activo via glUniform4fv. Construye un float[64] con los params de cada DagStep (hasta 16 pasos) y llama glUniform4fv(u_params, 16, data).
dag
shader
uniforms
opengl
gfx
pipeline
gl_loader_cpp_gfx
dag_types_cpp_gfx
false error_go_core
dag_uniforms
gl_loader
dag_types
vector
algorithm
cstring
false
cpp/functions/gfx/dag_uniforms.cpp
name desc
pipeline Vector de DagStep. params[0..3] de cada step se copian en data[i*4..i*4+3]. Steps mas alla de MAX_NODES=16 se ignoran.
name desc
program ID del programa GL activo. Debe haber sido activado con glUseProgram antes de llamar.
Efecto lateral: actualiza el uniform u_params[16] en el programa GL activo para el frame actual.

Notas

El array data[64] se inicializa a 0 antes de copiar, por lo que steps no usados quedan en cero. El caller es responsable de activar el programa antes de llamar.