Круто, спасибо за пример. Только в коде есть ошибка. В методе void ImDrawList::AddRectMultiColor
вместо ImVec2 textcenter(p_min.x + (p_max.x / 2), p_min.y + (p_max.y / 2));
надо ImVec2 textcenter((p_min.x + p_max.x) / 2, (p_min.y + p_max.y) / 2);
p_max это не размер, а вторая точка прямоугольника, если не исправить, то при прокрутке градиент начинает работать некорректно