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

Unified Diff: Source/core/rendering/svg/RenderSVGResourceFilter.cpp

Issue 536573002: Modifications to DisplayList for better Slimming Paint (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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
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..bd3653ce57e7f292b473c563b40437e9bf1c28e0 100644
--- a/Source/core/rendering/svg/RenderSVGResourceFilter.cpp
+++ b/Source/core/rendering/svg/RenderSVGResourceFilter.cpp
@@ -143,7 +143,13 @@ 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()));
chrishtr 2014/09/02 22:05:58 Typo in variable name.
Stephen Chennney 2014/09/03 14:19:37 Not here, right?
chrishtr 2014/09/03 16:56:11 Acknowledged.
+ ASSERT(sourceGraphic);
+ RefPtr<DisplayList> sourceGraphcisDisplayList = DisplayList::create(filterData->boundaries);
chrishtr 2014/09/02 22:05:57 Typo in variable name.
Stephen Chennney 2014/09/03 14:19:37 Done.
+ sourceGraphic->setDisplayList(sourceGraphcisDisplayList);
+ context->beginRecording(sourceGraphcisDisplayList);
+
// 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 +163,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)

Powered by Google App Engine
This is Rietveld 408576698