Очень простая реализация (хотя, и не из самых красивых). Причем в гайде она еще и динамическая.
Реализация под imgui, но можно хоть на ISurface перевести, ничего сверхъестественного там нет.
Вообще, как вариант, для статик градиента из 2-ух цветов. Берем 2 цвета, в начале смотрим на разницу 2-ух RGB цветов, их чисел, и постепенно отнимаем/прибавляем от/к R, G и B, пока не дойдем до 2-го цвета, всё это в цикле, и сразу же рендерим линию/прямоугольник (это в гайде есть).
К примеру, у нас градиент (255, 0, 0) и (0, 255, 0) и X размер объекта 122.
Находим разницу у R, G и B, вычисляем силу смещения цвета относительно X размера для R, G и B (для R разница 255 (было 255, стало 0), X = 122, значит 255 / 122 ~= 2, получаем "силу" смещения за 1 тик). И в цикле, со 122 тиками, просто постепенно смещаем и сразу рендерим, каждый раз линия/прямоугольник смещается просто вправо на 1 пиксель