Files
chart_demo/app.md
T
2026-05-08 00:07:54 +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.