- SDL 1.x hacked to separate SDL surface from parent window
- Parent window is in separate thread
- SDL surface is in main thread, and child window of parent window
- Parent window forwards move/resize events and menu input to child window
- Since the parent window thread handles resize events, the parent window thread is the one blocked by Windows during move/resize while the emulator is free to keep running and respond to the resize events. Resizing the window, moving the window, or using the menu bar no longer pauses the emulator.
- Fullscreen support still works, as far as I can tell
- Surface, OpenGL, and Direct3D outputs updated to work with the new asynchronous resize events
- The method of conversion to the code was done in a way that is least disruptive to the SDL library source code.
If this branch proves to be stable and functional, it will eventually be merged into the develop branch, and from there into master.
This code currently exists in the develop-win-sdl1-async-hack-201802 branch.
So far I have tested it with Windows 10. I need feedback on:
- Compatibility with Windows 7 and 8
- Compatibility with Windows XP
- Possible resize/move issues with the emulator display
UPDATE: Seems to work fine with Windows 7. Any issues with Windows XP?
UPDATE: I just patched the binary to run under Windows XP. It still can't access files, but the asynchronous window code seems to work fine. Also whatever I did seems to have fixed crashes that occur when you try to use Direct3D in VirtualBox.
UPDATE: I just fixed some bugs since this release regarding ALT+TAB and fullscreen mode. The fixes will appear in the next async hack binary release.
Have fun.