Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] multiwindow support #526

Draft
wants to merge 50 commits into
base: master
Choose a base branch
from
Draft

[WIP] multiwindow support #526

wants to merge 50 commits into from

Conversation

floooh
Copy link
Owner

@floooh floooh commented Jun 1, 2021

...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?

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.

None yet

1 participant