aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/webrender_helpers.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-08-07 11:05:17 -0500
committerGitHub <noreply@github.com>2017-08-07 11:05:17 -0500
commit016ea11cbaf7586db144be122581c5b110649aee (patch)
tree8d8f687fd8d2f2071b3a59d932c2fef8f74ebf06 /components/layout/webrender_helpers.rs
parentf8abce8b72bf3fb09d39d6c7d708a79d1b89c9db (diff)
parent8651acd94cd068d5c2f340ab447926550a3238d0 (diff)
downloadservo-016ea11cbaf7586db144be122581c5b110649aee.tar.gz
servo-016ea11cbaf7586db144be122581c5b110649aee.zip
Auto merge of #17783 - BorisChiou:stylo/animation/restrictions, r=nox
stylo: Bug 1374233 - Clamp interpolated values for properties which need to be restricted Some properties only accept non-negative values, or values greater than or equal to one. It is possible to produce an negative interpolated values while using negative timing functions, so we have to apply a restriction to these values to avoid getting invalid values. For example, line-height must be non-negative, but the output progress of some timing functions (e,g. cubic-bezier(0.25, -2, 0.75, 1)) may be a negative value, so the interpolated result of line-height is also negative. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix Bug 1374233. - [X] These changes do not require tests because we have tests in Gecko side already. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17783) <!-- Reviewable:end -->
Diffstat (limited to 'components/layout/webrender_helpers.rs')
-rw-r--r--components/layout/webrender_helpers.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/components/layout/webrender_helpers.rs b/components/layout/webrender_helpers.rs
index 13bde487675..6b8b334d52d 100644
--- a/components/layout/webrender_helpers.rs
+++ b/components/layout/webrender_helpers.rs
@@ -190,15 +190,15 @@ impl ToFilterOps for Vec<Filter> {
let mut result = Vec::with_capacity(self.len());
for filter in self.iter() {
match *filter {
- GenericFilter::Blur(radius) => result.push(webrender_api::FilterOp::Blur(radius.to_f32_px())),
- GenericFilter::Brightness(amount) => result.push(webrender_api::FilterOp::Brightness(amount)),
- GenericFilter::Contrast(amount) => result.push(webrender_api::FilterOp::Contrast(amount)),
- GenericFilter::Grayscale(amount) => result.push(webrender_api::FilterOp::Grayscale(amount)),
+ GenericFilter::Blur(radius) => result.push(webrender_api::FilterOp::Blur(radius.0.to_f32_px())),
+ GenericFilter::Brightness(amount) => result.push(webrender_api::FilterOp::Brightness(amount.0)),
+ GenericFilter::Contrast(amount) => result.push(webrender_api::FilterOp::Contrast(amount.0)),
+ GenericFilter::Grayscale(amount) => result.push(webrender_api::FilterOp::Grayscale(amount.0)),
GenericFilter::HueRotate(angle) => result.push(webrender_api::FilterOp::HueRotate(angle.radians())),
- GenericFilter::Invert(amount) => result.push(webrender_api::FilterOp::Invert(amount)),
- GenericFilter::Opacity(amount) => result.push(webrender_api::FilterOp::Opacity(amount.into())),
- GenericFilter::Saturate(amount) => result.push(webrender_api::FilterOp::Saturate(amount)),
- GenericFilter::Sepia(amount) => result.push(webrender_api::FilterOp::Sepia(amount)),
+ GenericFilter::Invert(amount) => result.push(webrender_api::FilterOp::Invert(amount.0)),
+ GenericFilter::Opacity(amount) => result.push(webrender_api::FilterOp::Opacity(amount.0.into())),
+ GenericFilter::Saturate(amount) => result.push(webrender_api::FilterOp::Saturate(amount.0)),
+ GenericFilter::Sepia(amount) => result.push(webrender_api::FilterOp::Sepia(amount.0)),
GenericFilter::DropShadow(ref shadow) => match *shadow {},
}
}