08cc179ca8
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>
2.3 KiB
2.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, 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 | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dag_node_previews | function | cpp | gfx | 1.0.0 | impure | void dag_previews_render(const std::vector<DagStep>&, unsigned program, int w, int h); unsigned dag_preview_texture(unsigned editor_uid); void dag_previews_destroy() | Renderiza un thumbnail por cada DagStep con preview_open=true a un FBO propio (lazy, keyed por editor_uid). Bind del FBO + glUniform1i(u_preview_target, i) + draw del quad. Devuelve la textura via dag_preview_texture para mostrarla con ImGui::Image. |
|
|
false | error_go_core |
|
false | cpp/functions/gfx/dag_node_previews.cpp | opengl |
|
Cada FBO contiene out_<i> renderizado a width x height. Acceso via dag_preview_texture(uid). |
dag_node_previews
Pipeline para thumbnails por nodo. Reutiliza el program GL del DAG (con un branch al final controlado por u_preview_target) y renderiza N veces a FBOs pequeños keyed por editor_uid del nodo.
No recompila al mover sliders ni al togglear preview — solo cambia el u_preview_target.
Uso
fn::gfx::canvas_render(g_canvas_dag, time, [&](unsigned p) {
fn::gfx::dag_uniforms_apply(g_pipeline, p);
});
fn::gfx::dag_previews_render(g_pipeline, g_canvas_dag.program);
// Luego en el editor del nodo:
unsigned tex = fn::gfx::dag_preview_texture(step.editor_uid);
if (tex) ImGui::Image((ImTextureID)(intptr_t)tex, ImVec2(96, 64));
Recursos
Cada FBO se mantiene en un map estatico hasta llamar dag_previews_destroy() en shutdown. No se libera al borrar un nodo (pequena fuga en sesion larga; aceptable para 16 nodos max).