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

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

Issue 871983003: [Slimming Paint] Implement deferred SVG filters (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Cleanup Created 5 years, 11 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 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;

Powered by Google App Engine
This is Rietveld 408576698