Instead of creating a 256x1 texture for every single gradient, we just do gradient math on the shader. Gradients should now be much faster to initialize, and cooperate with batching as well which should further improve GPU performance.
Only tested with Chroma 2.0 gradients, vanilla transition events remain untested (however I am fairly confident they work well)
EDIT: Also untested is whether or not the GPU easing functions are accurate to the CPU easing functions. I converted the C# easing functions to shader code by hand, and I am well aware that the GPU compiles things differently. Things looked fine when eyeballing comparisons, but that's the only thing I've done.
Instead of creating a 256x1 texture for every single gradient, we just do gradient math on the shader. Gradients should now be much faster to initialize, and cooperate with batching as well which should further improve GPU performance.
Only tested with Chroma 2.0 gradients, vanilla transition events remain untested (however I am fairly confident they work well)
EDIT: Also untested is whether or not the GPU easing functions are accurate to the CPU easing functions. I converted the C# easing functions to shader code by hand, and I am well aware that the GPU compiles things differently. Things looked fine when eyeballing comparisons, but that's the only thing I've done.