Skip to content

[WIP] multiwindow support#526

Draft
floooh wants to merge 50 commits into
masterfrom
sapp-multiwindow
Draft

[WIP] multiwindow support#526
floooh wants to merge 50 commits into
masterfrom
sapp-multiwindow

Conversation

@floooh

@floooh floooh commented Jun 1, 2021

Copy link
Copy Markdown
Owner

...heavily WIP, just for tracking what has been done and what needs to be done.

  • sokol_app.h macOS Metal: blargh, random crashes now in com.Metal.CompletionQueueDispatch when quickly resizing a borderless child window, where's that suddenly coming from :/ (hmm, this looks somewhat similar: Crash in com.Metal.CompletionQueueDispatch KhronosGroup/MoltenVK#510) => ok this happens when moving the [MTKView draw] method in front of the draw callback (so that the additional framebuffer textures are lazily updated before rendering starts, guess I need to ditch MTKView for realz and manage the depth-buffer and MSAA texture myself) :/
  • sokol_app.h macOS GL: new windows are flashing the background color for one frame (reason is that for the first two frames, the framebuffer size is reported as Retina-resolution, hmm... update: GLFW has the same behaviour, for non-retina windows, the framebuffer size is initially reported in Retina resolution before it switches to non-Retina)
  • sokol_app.h Metal: vertical mouse position in Dear ImGui when resizing 'child windows' is messed up, only in Metal!
  • sokol_app.h macOS: don't send resize events in first frame doesn't really make sense with multiple windows, instead use an "in_create_window" flag.
  • sokol_app.h macOS Metal + GL: implement per window high_dpi
  • sokol_app.h macOS Metal: new borderless windows that are not rendered to are completely invisible, which is quite confusing
  • sokol_app.h win32 + D3D11: implement multiwindow
  • sokol_app.h win32 + GL: implement multiwindow
  • sokol_app.h X11 + GL: implement multiwindow
  • sokol_app.h: update documentation
  • sokol_gfx.h: update documentation
  • sokol_app.h: for ImGui's multiviewport feature, need a new function to query the overall display size, including additional monitors (?) -> later probably proper multi-monitor support like in GLFW?
  • figure out how handle the single-window platforms (everything except Win32, macOS, Linux), should the per-window functions be empty stubs, unless the main window is accessed?

floooh added 30 commits April 16, 2021 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant