Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Unified Diff: third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp

Issue 1870793004: Move common logic between BoxReflectFilterOperation and FEBoxReflect into BoxReflection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no-filter-outsets-2
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
index 337b10cb48c621fef92236d09b9d362219330981..0fd08d89e0e702e097c4e5c1a37179c14fdd0c23 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
@@ -165,9 +165,8 @@ void SkiaImageFilterBuilder::buildFilterOperations(const FilterOperations& opera
case FilterOperation::BOX_REFLECT: {
// TODO(jbroman): Consider explaining box reflect to the compositor,
// instead of calling this a "reference filter".
- const auto& reflectOperation = toBoxReflectFilterOperation(op);
- RefPtr<SkImageFilter> imageFilter = buildBoxReflectFilter(
- reflectOperation.direction(), reflectOperation.offset(), nullptr, nullFilter);
+ const auto& reflection = toBoxReflectFilterOperation(op).reflection();
+ RefPtr<SkImageFilter> imageFilter = reflection.createImageFilter(nullFilter);
filters->appendReferenceFilter(imageFilter.get());
break;
}
@@ -187,37 +186,4 @@ PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::buildTransform(const AffineTra
return adoptRef(SkImageFilter::CreateMatrixFilter(affineTransformToSkMatrix(transform), kHigh_SkFilterQuality, input));
}
-SkMatrix SkiaImageFilterBuilder::matrixForBoxReflectFilter(ReflectionDirection direction, float offset)
-{
- SkMatrix flipMatrix;
- switch (direction) {
- case VerticalReflection:
- flipMatrix.setScale(1, -1);
- flipMatrix.postTranslate(0, offset);
- break;
- case HorizontalReflection:
- flipMatrix.setScale(-1, 1);
- flipMatrix.postTranslate(offset, 0);
- break;
- default:
- // MSVC requires that SkMatrix be initialized in this unreachable case.
- NOTREACHED();
- flipMatrix.reset();
- break;
- }
- return flipMatrix;
-}
-
-PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::buildBoxReflectFilter(ReflectionDirection direction, float offset, Image* maskImage, SkImageFilter* input)
-{
- RefPtr<SkImageFilter> maskedInput = input;
- // TODO(jbroman): If a mask image is provided, mask!
-
- SkMatrix flipMatrix = matrixForBoxReflectFilter(direction, offset);
- RefPtr<SkImageFilter> flipImageFilter = adoptRef(SkImageFilter::CreateMatrixFilter(
- flipMatrix, kNone_SkFilterQuality, maskedInput.get()));
-
- return fromSkSp(SkXfermodeImageFilter::Make(nullptr, flipImageFilter.get(), input, nullptr));
-}
-
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698