53402d84d5
Wave 1 de parallel-fix-issues integrada a master: - 0025: text_editor_cpp_core + file_watcher_cpp_core - 0026: gl_texture_load_cpp_gfx (vendor: stb_image v2.30) Ademas se commitea WIP previo de master que estaba sin commitear (cambios en shaders_lab, dag_*, framework, tokens, kpi_card, gl_loader.md, etc.) para dejar HEAD buildable. Notas: - Algunos deps del gallery (button.cpp, toolbar.cpp, modal_dialog.cpp...) siguen UNTRACKED — gating con FN_BUILD_GALLERY=ON (default OFF) para que master build (sin flag) no los necesite. - Build OK con y sin flag. fn index registra 904 functions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
28 lines
1.3 KiB
C++
28 lines
1.3 KiB
C++
#pragma once
|
|
#include <string>
|
|
#include <vector>
|
|
#include "gfx/dag_types.h"
|
|
|
|
namespace fn::gfx {
|
|
|
|
// Compila un pipeline DAG a GLSL 330 core completo (listo para gl_shader::compile_fragment).
|
|
// El preamble de gl_shader ya declara #version, fragColor, u_time, u_resolution, u_mouse.
|
|
// Este compilador emite uniform vec4 u_params[64], las funciones node_<i> y void main().
|
|
// Si el pipeline esta vacio, emite un fragment que pinta gris oscuro.
|
|
std::string compile_dag_to_glsl(const std::vector<DagStep>& pipeline);
|
|
|
|
// Devuelve el indice base (vec4) en u_params[] que ocupa cada nodo del pipeline.
|
|
// Cada nodo ocupa ceil(param_count / 4) vec4s consecutivos. Nodos con 0 params ocupan 0.
|
|
// El compilador y dag_uniforms_apply usan el mismo layout.
|
|
std::vector<int> dag_param_layout(const std::vector<DagStep>& pipeline);
|
|
|
|
// Variante de compile_dag_to_glsl que sustituye `uniform vec4 u_params[64]`
|
|
// por un `const vec4 u_params[N] = vec4[N](...)` con los valores actuales del
|
|
// pipeline empaquetados, y `uniform int u_preview_target` por
|
|
// `const int u_preview_target = -1`. El resultado es un fragment shader
|
|
// autocontenido: no depende de ningun uniform externo y se puede pegar tal cual
|
|
// en el editor Code para reproducir el DAG actual.
|
|
std::string compile_dag_to_glsl_baked(const std::vector<DagStep>& pipeline);
|
|
|
|
} // namespace fn::gfx
|