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
+6
View File
@@ -1771,6 +1771,12 @@ workspace "eepp"
files { "src/examples/ui_application_hello_world/*.cpp" }
build_link_configuration( "eepp-ui-application-hello-world", true )
project "eepp-ui-application-multi-window"
set_kind()
language "C++"
files { "src/examples/ui_application_multi_window/*.cpp" }
build_link_configuration( "eepp-ui-application-multi-window", true )
project "eepp-ui-font-picker"
set_kind()
language "C++"