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

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

Issue 2357633003: Move buildFilterOperations to FilterEffectBuilder (Closed)
Patch Set: Fold toCompositorFilterOperations Created 4 years, 3 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
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 d07f799a9e85e165c839a7e1c9278aba7ddaa40f..52c3bc5291361394e516ce4fa468b3ba686ba925 100644
--- a/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
+++ b/third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp
@@ -29,12 +29,8 @@
#include "SkColorFilterImageFilter.h"
#include "SkColorMatrixFilter.h"
#include "SkTableColorFilter.h"
-#include "platform/geometry/IntPoint.h"
#include "platform/graphics/BoxReflection.h"
-#include "platform/graphics/CompositorFilterOperations.h"
#include "platform/graphics/filters/FilterEffect.h"
-#include "platform/graphics/filters/FilterOperations.h"
-#include "platform/graphics/filters/SourceGraphic.h"
#include "platform/graphics/skia/SkiaUtils.h"
#include "third_party/skia/include/core/SkPicture.h"
#include "third_party/skia/include/core/SkXfermode.h"
@@ -44,8 +40,6 @@
namespace blink {
namespace SkiaImageFilterBuilder {
-namespace {
-
void populateSourceGraphicImageFilters(FilterEffect* sourceGraphic, sk_sp<SkImageFilter> input, ColorSpace inputColorSpace)
{
// Prepopulate SourceGraphic with two image filters: one with a null image
@@ -62,8 +56,6 @@ void populateSourceGraphicImageFilters(FilterEffect* sourceGraphic, sk_sp<SkImag
sourceGraphic->setImageFilter(ColorSpaceLinearRGB, true, linearFilter);
}
-} // namespace
-
sk_sp<SkImageFilter> build(FilterEffect* effect, ColorSpace colorSpace, bool destinationRequiresValidPreMultipliedPixels)
{
if (!effect)
@@ -100,100 +92,6 @@ void buildSourceGraphic(FilterEffect* sourceGraphic, sk_sp<SkPicture> picture)
populateSourceGraphicImageFilters(sourceGraphic, std::move(filter), sourceGraphic->operatingColorSpace());
}
-CompositorFilterOperations buildFilterOperations(const FilterOperations& operations)
-{
- ColorSpace currentColorSpace = ColorSpaceDeviceRGB;
-
- CompositorFilterOperations filters;
- for (size_t i = 0; i < operations.size(); ++i) {
- const FilterOperation& op = *operations.at(i);
- switch (op.type()) {
- case FilterOperation::REFERENCE: {
- Filter* referenceFilter = toReferenceFilterOperation(op).getFilter();
- if (referenceFilter && referenceFilter->lastEffect()) {
- populateSourceGraphicImageFilters(referenceFilter->getSourceGraphic(), nullptr, currentColorSpace);
-
- FilterEffect* filterEffect = referenceFilter->lastEffect();
- currentColorSpace = filterEffect->operatingColorSpace();
- filters.appendReferenceFilter(SkiaImageFilterBuilder::build(filterEffect, currentColorSpace));
- }
- break;
- }
- case FilterOperation::GRAYSCALE:
- case FilterOperation::SEPIA:
- case FilterOperation::SATURATE:
- case FilterOperation::HUE_ROTATE: {
- float amount = toBasicColorMatrixFilterOperation(op).amount();
- switch (op.type()) {
- case FilterOperation::GRAYSCALE:
- filters.appendGrayscaleFilter(amount);
- break;
- case FilterOperation::SEPIA:
- filters.appendSepiaFilter(amount);
- break;
- case FilterOperation::SATURATE:
- filters.appendSaturateFilter(amount);
- break;
- case FilterOperation::HUE_ROTATE:
- filters.appendHueRotateFilter(amount);
- break;
- default:
- ASSERT_NOT_REACHED();
- }
- break;
- }
- case FilterOperation::INVERT:
- case FilterOperation::OPACITY:
- case FilterOperation::BRIGHTNESS:
- case FilterOperation::CONTRAST: {
- float amount = toBasicComponentTransferFilterOperation(op).amount();
- switch (op.type()) {
- case FilterOperation::INVERT:
- filters.appendInvertFilter(amount);
- break;
- case FilterOperation::OPACITY:
- filters.appendOpacityFilter(amount);
- break;
- case FilterOperation::BRIGHTNESS:
- filters.appendBrightnessFilter(amount);
- break;
- case FilterOperation::CONTRAST:
- filters.appendContrastFilter(amount);
- break;
- default:
- ASSERT_NOT_REACHED();
- }
- break;
- }
- case FilterOperation::BLUR: {
- float pixelRadius = toBlurFilterOperation(op).stdDeviation().getFloatValue();
- filters.appendBlurFilter(pixelRadius);
- break;
- }
- case FilterOperation::DROP_SHADOW: {
- const DropShadowFilterOperation& drop = toDropShadowFilterOperation(op);
- filters.appendDropShadowFilter(drop.location(), drop.stdDeviation(), drop.getColor());
- break;
- }
- case FilterOperation::BOX_REFLECT: {
- // TODO(jbroman): Consider explaining box reflect to the compositor,
- // instead of calling this a "reference filter".
- const auto& reflection = toBoxReflectFilterOperation(op).reflection();
- filters.appendReferenceFilter(buildBoxReflectFilter(reflection, nullptr));
- break;
- }
- case FilterOperation::NONE:
- break;
- }
- }
- if (currentColorSpace != ColorSpaceDeviceRGB) {
- // Transform to device color space at the end of processing, if required
- sk_sp<SkImageFilter> filter = transformColorSpace(nullptr, currentColorSpace, ColorSpaceDeviceRGB);
- filters.appendReferenceFilter(std::move(filter));
- }
- return filters;
-}
-
sk_sp<SkImageFilter> buildBoxReflectFilter(const BoxReflection& reflection, sk_sp<SkImageFilter> input)
{
sk_sp<SkImageFilter> maskedInput;
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/filters/SkiaImageFilterBuilder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698