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) |