lib_ui/ui/effects/gradient.cpp
2022-06-10 16:06:17 +04:00

30 lines
865 B
C++

// This file is part of Desktop App Toolkit,
// a set of libraries for developing nice desktop applications.
//
// For license and copyright information please follow this link:
// https://github.com/desktop-app/legal/blob/master/LEGAL
//
#include "ui/effects/gradient.h"
namespace anim {
QColor gradient_color_at(const QGradientStops & stops, float64 ratio) {
for (auto i = 1; i < stops.size(); i++) {
const auto currentPoint = stops[i].first;
const auto previousPoint = stops[i - 1].first;
if ((ratio <= currentPoint) && (ratio >= previousPoint)) {
return anim::color(
stops[i - 1].second,
stops[i].second,
(ratio - previousPoint) / (currentPoint - previousPoint));
}
}
return QColor();
}
QColor gradient_color_at(const QGradient &gradient, float64 ratio) {
return gradient_color_at(gradient.stops(), ratio);
}
} // namespace anim