| Index: Source/core/rendering/svg/RenderSVGResourceFilter.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp
|
| index 1d33e07aad3af7ee616d19cbc00c4d4b018ac82a..214ba2d448a32627903bb42671e66674e1ea7a66 100644
|
| --- a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp
|
| @@ -143,7 +143,12 @@ static bool createImageBuffer(const Filter* filter, OwnPtr<ImageBuffer>& imageBu
|
|
|
| static void beginDeferredFilter(GraphicsContext* context, FilterData* filterData)
|
| {
|
| - context->beginRecording(filterData->boundaries);
|
| + // FIXME: maybe filterData should just hold onto SourceGraphic after creation?
|
| + SourceGraphic* sourceGraphic = static_cast<SourceGraphic*>(filterData->builder->getEffectById(SourceGraphic::effectName()));
|
| + ASSERT(sourceGraphic);
|
| + RefPtr<DisplayList> sourceGraphicsDisplayList = context->beginRecording(filterData->boundaries);
|
| + sourceGraphic->setDisplayList(sourceGraphicsDisplayList);
|
| +
|
| // We pass the boundaries to SkPictureImageFilter so it knows the
|
| // world-space position of the filter primitives. It gets them
|
| // from the DisplayList, which also applies the inverse translate
|
| @@ -157,10 +162,7 @@ static void beginDeferredFilter(GraphicsContext* context, FilterData* filterData
|
|
|
| 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);
|
| - sourceGraphic->setDisplayList(context->endRecording());
|
| + context->endRecording();
|
| }
|
|
|
| static void drawDeferredFilter(GraphicsContext* context, FilterData* filterData, SVGFilterElement* filterElement)
|
|
|