Shared WebGL-context implementation to partially fix ecomfe/echarts-gl#439 #440
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.
This largely fixes issues with lost WebGL contexts by sharing a single renderer for all plots and layers and recreating the renderer when the context is still lost.
Before, GL layers were completely lost and broke interactivity of plots when the context was lost. Now layers will stay as they were and the context is recreated on the next render. User should notice at most a glitch if the rerendering is heavy or there is some animation.
Main open issue left is that some 3D plots will lose textures/effects when the context is lost (typically after the next rerender). For example, test/surface-metal.html show this. To see, use test/multi.html, trigger losing of context and interact with the 'metal' plot.