Remove global graphic contexts. Fix windows for js backend. #482
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.
I've been trying to get
nimxapp
andnimxedit
to fully function for thejs
backend.While debugging the layout examples I learned the graphics context was globally shared and that is not supported by the webgl spec.
This pull request is a possible solution.
I consolidated relative global variables into
context.GraphicsContext
andfonts.FontContext
.I then set the context to the window and ensured all views had their parent window initialized in their
init
method.But then I learned that the initialization state of a view's window property was being used elsewhere and my changes broke that. I didn't understand the code well enough to alter where
View.window
was being evaluated so I changed my approach.I instead created a
View.gfx
property that was initialized early on each view. The graphics context is then passed into each func/proc/... where it is needed.State:
TODO:
I've only been testing the js and sdl backends. The others may not currently work.
Please give it a try and let me know: