| Index: sky/engine/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| diff --git a/sky/engine/platform/graphics/filters/SkiaImageFilterBuilder.cpp b/sky/engine/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| index a669221659eaaa543fad6aab4c3db3df32b27ea2..286c7a68f804d58d3e05fe2031519765ed2541d1 100644
|
| --- a/sky/engine/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| +++ b/sky/engine/platform/graphics/filters/SkiaImageFilterBuilder.cpp
|
| @@ -86,106 +86,6 @@ PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::transformColorSpace(
|
| return adoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), input));
|
| }
|
|
|
| -void SkiaImageFilterBuilder::buildFilterOperations(const FilterOperations& operations, WebFilterOperations* filters)
|
| -{
|
| - ColorSpace currentColorSpace = ColorSpaceDeviceRGB;
|
| - SkImageFilter* const nullFilter = 0;
|
| -
|
| - for (size_t i = 0; i < operations.size(); ++i) {
|
| - const FilterOperation& op = *operations.at(i);
|
| - switch (op.type()) {
|
| - case FilterOperation::REFERENCE: {
|
| - RefPtr<SkImageFilter> filter;
|
| - ReferenceFilter* referenceFilter = toReferenceFilterOperation(op).filter();
|
| - if (referenceFilter && referenceFilter->lastEffect()) {
|
| - FilterEffect* filterEffect = referenceFilter->lastEffect();
|
| - // Prepopulate SourceGraphic with two image filters: one with a null image
|
| - // filter, and the other with a colorspace conversion filter.
|
| - // We don't know what color space the interior nodes will request, so we have to
|
| - // initialize SourceGraphic with both options.
|
| - // Since we know SourceGraphic is always PM-valid, we also use
|
| - // these for the PM-validated options.
|
| - RefPtr<SkImageFilter> deviceFilter = transformColorSpace(nullFilter, currentColorSpace, ColorSpaceDeviceRGB);
|
| - RefPtr<SkImageFilter> linearFilter = transformColorSpace(nullFilter, currentColorSpace, ColorSpaceLinearRGB);
|
| - FilterEffect* sourceGraphic = referenceFilter->sourceGraphic();
|
| - sourceGraphic->setImageFilter(ColorSpaceDeviceRGB, false, deviceFilter.get());
|
| - sourceGraphic->setImageFilter(ColorSpaceLinearRGB, false, linearFilter.get());
|
| - sourceGraphic->setImageFilter(ColorSpaceDeviceRGB, true, deviceFilter.get());
|
| - sourceGraphic->setImageFilter(ColorSpaceLinearRGB, true, linearFilter.get());
|
| -
|
| - currentColorSpace = filterEffect->operatingColorSpace();
|
| - filter = SkiaImageFilterBuilder::build(filterEffect, currentColorSpace);
|
| - filters->appendReferenceFilter(filter.get());
|
| - }
|
| - 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(WebPoint(drop.x(), drop.y()), drop.stdDeviation(), drop.color().rgb());
|
| - break;
|
| - }
|
| - case FilterOperation::NONE:
|
| - break;
|
| - }
|
| - }
|
| - if (currentColorSpace != ColorSpaceDeviceRGB) {
|
| - // Transform to device color space at the end of processing, if required
|
| - RefPtr<SkImageFilter> filter = transformColorSpace(nullFilter, currentColorSpace, ColorSpaceDeviceRGB);
|
| - filters->appendReferenceFilter(filter.get());
|
| - }
|
| -}
|
| -
|
| PassRefPtr<SkImageFilter> SkiaImageFilterBuilder::buildTransform(const AffineTransform& transform, SkImageFilter* input)
|
| {
|
| return adoptRef(SkMatrixImageFilter::Create(affineTransformToSkMatrix(transform), SkPaint::kHigh_FilterLevel, input));
|
|
|