Chromium Code Reviews| Index: Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
| diff --git a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
| index d864b2238e41cde1d088da76734497f9e3b021d1..8644d981cab724538b5e91163c7c562bec7e1976 100644 |
| --- a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
| +++ b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp |
| @@ -30,6 +30,7 @@ |
| #include "platform/graphics/filters/SkiaImageFilterBuilder.h" |
| #include "platform/graphics/filters/SourceAlpha.h" |
| #include "platform/graphics/filters/SourceGraphic.h" |
| +#include "platform/graphics/paint/DisplayItemList.h" |
| #include "third_party/skia/include/core/SkPicture.h" |
| namespace blink { |
| @@ -114,8 +115,6 @@ PassRefPtrWillBeRawPtr<SVGFilterBuilder> RenderSVGResourceFilter::buildPrimitive |
| static void beginDeferredFilter(GraphicsContext* context, FilterData* filterData) |
| { |
| - // FIXME: Create a new GraphicsContext here to replace the existing context instead |
| - // of nesting recordings. |
| context->beginRecording(filterData->boundaries); |
| } |
| @@ -124,6 +123,8 @@ static void endDeferredFilter(GraphicsContext* context, FilterData* filterData) |
| // FIXME: maybe filterData should just hold onto SourceGraphic after creation? |
| SourceGraphic* sourceGraphic = static_cast<SourceGraphic*>(filterData->builder->getEffectById(SourceGraphic::effectName())); |
| ASSERT(sourceGraphic); |
| + if (context->displayItemList()) |
|
chrishtr
2015/01/24 00:02:02
if (RuntimeEnabledFeatures::slimmingPaintEnabled()
pdr.
2015/01/24 01:13:36
Done.
|
| + context->displayItemList()->replay(context); |
| sourceGraphic->setPicture(context->endRecording()); |
| } |
| @@ -222,7 +223,7 @@ bool RenderSVGResourceFilter::prepareEffect(RenderObject* object, GraphicsContex |
| return true; |
| } |
| -void RenderSVGResourceFilter::finishEffect(RenderObject* object, GraphicsContext* context) |
| +void RenderSVGResourceFilter::finishEffect(RenderObject* object, GraphicsContext* context, GraphicsContext* contentContext) |
| { |
| ASSERT(object); |
| ASSERT(context); |
| @@ -232,7 +233,7 @@ void RenderSVGResourceFilter::finishEffect(RenderObject* object, GraphicsContext |
| return; |
| if (filterData->m_needToEndFilter) |
| - endDeferredFilter(context, filterData); |
| + endDeferredFilter(contentContext, filterData); |
| drawDeferredFilter(context, filterData, toSVGFilterElement(element())); |
| filterData->m_needToEndFilter = false; |