Clamp gradient time to [0, 1]
This commit is contained in:
parent
28c0811daa
commit
4419553acc
|
@ -11,6 +11,7 @@
|
||||||
use crate::sorted_vector::SortedVector;
|
use crate::sorted_vector::SortedVector;
|
||||||
use pathfinder_color::ColorU;
|
use pathfinder_color::ColorU;
|
||||||
use pathfinder_geometry::line_segment::LineSegment2F;
|
use pathfinder_geometry::line_segment::LineSegment2F;
|
||||||
|
use pathfinder_geometry::util;
|
||||||
use pathfinder_simd::default::F32x4;
|
use pathfinder_simd::default::F32x4;
|
||||||
use std::cmp::{Ordering, PartialOrd};
|
use std::cmp::{Ordering, PartialOrd};
|
||||||
use std::convert;
|
use std::convert;
|
||||||
|
@ -117,11 +118,12 @@ impl Gradient {
|
||||||
&self.stops.array
|
&self.stops.array
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sample(&self, t: f32) -> ColorU {
|
pub fn sample(&self, mut t: f32) -> ColorU {
|
||||||
if self.stops.is_empty() {
|
if self.stops.is_empty() {
|
||||||
return ColorU::transparent_black();
|
return ColorU::transparent_black();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t = util::clamp(t, 0.0, 1.0);
|
||||||
let last_index = self.stops.len() - 1;
|
let last_index = self.stops.len() - 1;
|
||||||
let upper_index = self.stops.binary_search_by(|stop| {
|
let upper_index = self.stops.binary_search_by(|stop| {
|
||||||
stop.offset.partial_cmp(&t).unwrap_or(Ordering::Less)
|
stop.offset.partial_cmp(&t).unwrap_or(Ordering::Less)
|
||||||
|
|
Loading…
Reference in New Issue