This fixes T96132, a bug which means the "Extend Horizontal" curve extrapolation setting is ignored.
The bug only occurs for non-GLSL shaders. This is because GLSL shaders manually clamp the graph in node_shader_curves.cc.
However, the other shaders always extrapolate. This seems to be an oversight by the developer.
The easiest solution is adding shader bindings for the existing extrapolation argument of the rgb_ramp_lookup function.
The only reason the original shaders sometimes produce correct results is because colortools.c sometimes generates identical adjacent table values:
When this doesn't occur, the difference is clear:
| Before | After |
Demo file:
