feat(ui): add native multi-window application support

- let UIApplication create, manage, render, and destroy multiple native windows
  - add scoped scene and GL window-context switching
  - route input events to the scene belonging to each native window
  - share application fonts, themes, icons, styles, and graphics resources safely
  - add NewInApplicationWindow factories for UIWindow, UIFileDialog, and UIMessageBox
  - support native parent relationships, modality, minimum sizes, and optional positioning
  - close child windows when the primary application window closes
  - defer native context destruction until the end of the application tick
  - fall back to in-scene windows for Emscripten and terminal rendering
  - reapply renderer state caches when switching OpenGL contexts
  - fix SDL2/SDL3 display bounds and multi-window lifecycle handling
  - add a native file-dialog and message-box multi-window example
  - add integration coverage for context switching, input, resources, modality, and closing
This commit is contained in:
Martín Lucas Golini
2026-09-10 19:27:29 -03:00
parent 3493e849a2
commit 095fe7919e
46 changed files with 1290 additions and 109 deletions

View File

@@ -411,6 +411,12 @@
"command": "${project_root}/bin/eepp-ui-data-handling-debug",
"name": "eepp-ui-data-handling-debug",
"working_dir": "${project_root}/bin"
},
{
"args": "",
"command": "${project_root}/bin/eepp-ui-application-multi-window-debug",
"name": "eepp-ui-application-multi-window-debug",
"working_dir": "${project_root}/bin"
}
],
"var": {