Don't reset DirectContext on LayerGLSkija resize #301
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
From what I can tell, fully reinitializing
DirectContextis generally undesirable outside of extraordinary situations, and indeed the Metal and D3D12 backends do not do so. Doing that also kills all offscreenSurfaces, forcing unnecessarily discarding & recreating them.Marking this PR as a draft for now as I don't particularly know how sane the
_directContext.resetGLAll();is (without it there are some graphical glitches), but it does work for the dashboard example and my programs on linux, and allows for me to preserveSurfaces across resizing; will report tomorrow on Windows, don't have macos to test on.(this whole thing was brought on by me using "is current surface equal to previous surface" as a test for whether I should recreate my offscreen surfaces, which I needed to do for Linux/GL, but the D3D12 backend creates a new surface on every frame not just resizes, making my programs unnecessarily-slow from recreating & redrawing everything on every frame)