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 patch performs various rendering optimizations, giving a minor performance improvement when using a Waveform source.
As the gradient shader never changes, it does not need to be reloaded and recompiled every render frame, so this patch adds an instance member to cache the compiled shader object. The shader is loaded and compiled before rendering only if it is currently NULL, allowing the compiled shader to be reused in every subsequent frame.
The vertex buffers used for curve and bars rendering are cached in a similar way to avoid recreating and freeing them on every render frame. Additionally, the curve vertex buffer is pre-populated upon creation to avoid needing to update all three components of the vec3 when actually rendering, instead only updating the y component.