Files
fn_registry/cpp/apps/chart_demo/app.md
T
egutierrez ab6ce8f822 feat(registry): index cpp/apps/* + e2e test infrastructure
registry/indexer.go ahora escanea <lang>/apps/*/app.md ademas de apps/ y
projects/*/apps/. cpp/apps/chart_demo y cpp/apps/shaders_lab pasan a estar
en registry.db con sus manifests.

Infraestructura de tests e2e (opt-in con -DFN_BUILD_TESTS=ON):
- vendor de Dear ImGui Test Engine (personal/open-source license).
- chart_demo_tests target con tests/chart_demo_tests.cpp.
- /e2e-cpp slash command para crear y ejecutar tests e2e.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 11:51:38 +02:00

2.0 KiB

name, lang, domain, description, tags, uses_functions, uses_types, framework, entry_point, dir_path, repo_url
name lang domain description tags uses_functions uses_types framework entry_point dir_path repo_url
chart_demo cpp viz Demo ImGui de primitivos viz del registry: line_plot, scatter_plot, bar_chart, heatmap. Cada chart en su propia tab del TabBar. Usado como showcase y como build gate de las funciones viz/.
imgui
demo
charts
viz
showcase
line_plot_cpp_viz
scatter_plot_cpp_viz
bar_chart_cpp_viz
heatmap_cpp_viz
imgui main.cpp cpp/apps/chart_demo

Que hace

App de una sola ventana con cuatro tabs (Line / Scatter / Bar / Heatmap) que renderiza datos sinteticos para mostrar el aspecto y la API de los primitivos viz del registry. Sirve como:

  • Showcase visual de las funciones viz existentes — al añadir una nueva primitiva, anadir su tab aqui es la forma natural de probar el binding.
  • Build gate: si una de las funciones rompe API, esta app deja de compilar y lo cazamos sin tener que tocar registry_dashboard o graph_explorer.

Estructura

main.cpp (~93 lineas):

  • init_data() — genera arrays sinteticos una vez (estado modulo).
  • render() — DockSpaceOverViewport + TabBar con 4 tabs, cada una invoca un primitivo del registry.
  • main()fn::run_app(...) con AppConfig estandar (titulo, tamaño, about, log).

Build

# Linux
cd cpp && cmake -B build/linux -S . && cmake --build build/linux --target chart_demo

# Windows (cross-compile)
cd cpp && cmake -B build/windows -S . -DCMAKE_TOOLCHAIN_FILE=toolchains/mingw-w64.cmake \
  && cmake --build build/windows --target chart_demo

Decisiones

  • viewports = true (default de fn::run_app): las ventanas se pueden arrastrar fuera del main window.
  • init_gl_loader = false: solo usa ImGui/ImPlot, sin gl* directo.
  • Sin persistencia propia (no abre BD).
  • log: file_path = "chart_demo.log" con nivel Debug — el init_data emite info+debug para verificar que el logger funciona.