0

Apply scale in Filter::Resolve3dPoint

This function should be consistent with the
Apply{Horizontal,Vertical}Scale functions. The input |point| is assumed
to be unzoomed - as is the reference box - and the output should have
zoom applied.

Bug: 1198084
Change-Id: If7500635281f431d29ac5a07b92a876f50ca5c05
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2818027
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#871585}
This commit is contained in:
Fredrik Söderqvist
2021-04-12 19:29:47 +00:00
committed by Chromium LUCI CQ
parent 05fedc4cce
commit dc8596175a
26 changed files with 9 additions and 8 deletions

@ -78,13 +78,14 @@ float Filter::ApplyVerticalScale(float value) const {
return scale_ * value;
}
FloatPoint3D Filter::Resolve3dPoint(const FloatPoint3D& point) const {
if (unit_scaling_ != kBoundingBox)
return point;
return FloatPoint3D(
point.X() * ReferenceBox().Width() + ReferenceBox().X(),
point.Y() * ReferenceBox().Height() + ReferenceBox().Y(),
point.Z() * sqrtf(ReferenceBox().Size().DiagonalLengthSquared() / 2));
FloatPoint3D Filter::Resolve3dPoint(FloatPoint3D point) const {
if (unit_scaling_ == kBoundingBox) {
point = FloatPoint3D(
point.X() * ReferenceBox().Width() + ReferenceBox().X(),
point.Y() * ReferenceBox().Height() + ReferenceBox().Y(),
point.Z() * sqrtf(ReferenceBox().Size().DiagonalLengthSquared() / 2));
}
return scale_ * point;
}
void Filter::SetLastEffect(FilterEffect* effect) {

@ -53,7 +53,7 @@ class PLATFORM_EXPORT Filter final : public GarbageCollected<Filter> {
float ApplyHorizontalScale(float value) const;
float ApplyVerticalScale(float value) const;
FloatPoint3D Resolve3dPoint(const FloatPoint3D&) const;
FloatPoint3D Resolve3dPoint(FloatPoint3D) const;
const FloatRect& FilterRegion() const { return filter_region_; }
const FloatRect& ReferenceBox() const { return reference_box_; }

Binary file not shown.

Before

(image error) Size: 31 KiB

After

(image error) Size: 31 KiB

Binary file not shown.

Before

(image error) Size: 31 KiB

After

(image error) Size: 31 KiB

Binary file not shown.

Before

(image error) Size: 236 KiB

After

(image error) Size: 236 KiB

Binary file not shown.

Before

(image error) Size: 151 KiB

After

(image error) Size: 150 KiB

Binary file not shown.

Before

(image error) Size: 150 KiB

After

(image error) Size: 148 KiB

Binary file not shown.

Before

(image error) Size: 236 KiB

After

(image error) Size: 236 KiB

Binary file not shown.

Before

(image error) Size: 235 KiB

After

(image error) Size: 234 KiB

Binary file not shown.

Before

(image error) Size: 133 KiB

After

(image error) Size: 133 KiB

Binary file not shown.

Before

(image error) Size: 129 KiB

After

(image error) Size: 128 KiB

Binary file not shown.

Before

(image error) Size: 32 KiB

After

(image error) Size: 32 KiB

Binary file not shown.

Before

(image error) Size: 80 KiB

After

(image error) Size: 81 KiB

Binary file not shown.

Before

(image error) Size: 81 KiB

After

(image error) Size: 82 KiB

Binary file not shown.

Before

(image error) Size: 32 KiB

After

(image error) Size: 32 KiB

Binary file not shown.

Before

(image error) Size: 151 KiB

After

(image error) Size: 150 KiB

Binary file not shown.

Before

(image error) Size: 150 KiB

After

(image error) Size: 148 KiB

Binary file not shown.

Before

(image error) Size: 236 KiB

After

(image error) Size: 236 KiB

Binary file not shown.

Before

(image error) Size: 235 KiB

After

(image error) Size: 234 KiB

Binary file not shown.

Before

(image error) Size: 133 KiB

After

(image error) Size: 133 KiB

Binary file not shown.

Before

(image error) Size: 129 KiB

After

(image error) Size: 128 KiB