chore: auto-commit (97 archivos)

- .claude/CLAUDE.md
- .claude/agents/fn-recopilador/SKILL.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- bash/functions/infra/build_cpp_windows.sh
- cpp/CMakeLists.txt
- cpp/PATTERNS.md
- cpp/framework/app_base.cpp
- cpp/framework/app_base.h
- dev/issues/README.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-09 18:11:24 +02:00
parent 852322a708
commit 750b7abcd5
99 changed files with 7879 additions and 73 deletions
+12 -5
View File
@@ -22,8 +22,13 @@ Antes de mergear una app, verificar uno por uno:
};
```
Pasarlo a `AppConfig::panels` + `AppConfig::panel_count = 2`.
- [ ] **Layouts persistentes** (si aplica). Si la app guarda layouts:
implementa `fn_ui::LayoutCallbacks` y pasalas en `AppConfig::layouts_cb`.
- [ ] **Layouts persistentes**. Vienen activos por defecto: `fn::run_app` abre
un `LayoutStorage` SQLite en `<exe_dir>/local_files/layouts.db` y enchufa
el menu Layouts (Save / Apply / Delete / Reset) sin codigo. La app solo
pasa `AppConfig::layouts_cb` si quiere personalizar (ej. on_reset que
restaure paneles especificos como en `shaders_lab`). Para apagar el
auto-storage: `cfg.auto_layouts = false`. Para cambiar el nombre del
archivo: `cfg.auto_layouts_db = "myapp_layouts.db"`.
- [ ] **GL loader** (si la app usa OpenGL >= 2.0 directamente). Pasar
`AppConfig::init_gl_loader = true` para que `fn::run_app()` llame
`fn::gfx::gl_loader_init()` tras crear el contexto.
@@ -86,9 +91,11 @@ int main() {
}
```
Con esto la app obtiene gratis: MainMenuBar (View/Settings/About), ventana About,
ventana Settings, FPS overlay configurable, theming `FnDark`, fuentes vectoriales
+ iconos Tabler mergeados, multi-viewport opcional.
Con esto la app obtiene gratis: MainMenuBar (View/**Layouts**/Settings/About),
ventana About, ventana Settings, ventana Logs, FPS overlay configurable, theming
`FnDark`, fuentes vectoriales + iconos Tabler mergeados, multi-viewport opcional,
**y persistencia de layouts ImGui en `<exe_dir>/local_files/layouts.db`** sin
escribir una linea de codigo.
## Anti-patrones