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

Unified Diff: Source/WebCore/rendering/svg/ReferenceFilterRenderer.cpp

Issue 13984002: Extracting the SVG Filter Reference implementation out of the FilterEffectRenderer into its own typ… Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Removed the changes in SkiaImageFilterBuilder.cpp Created 7 years, 8 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/WebCore/rendering/svg/ReferenceFilterRenderer.cpp
diff --git a/Source/WebCore/rendering/style/StyleCustomFilterProgram.cpp b/Source/WebCore/rendering/svg/ReferenceFilterRenderer.cpp
similarity index 60%
copy from Source/WebCore/rendering/style/StyleCustomFilterProgram.cpp
copy to Source/WebCore/rendering/svg/ReferenceFilterRenderer.cpp
index 5f4012f3f8a40627a9ffc311bac53d7e9140164c..9bb3357080041fe69287fb71764015b763c8ef19 100644
--- a/Source/WebCore/rendering/style/StyleCustomFilterProgram.cpp
+++ b/Source/WebCore/rendering/svg/ReferenceFilterRenderer.cpp
@@ -29,21 +29,35 @@
#include "config.h"
-#if ENABLE(CSS_SHADERS)
+#include "ReferenceFilterRenderer.h"
-#include "StyleCustomFilterProgram.h"
-
-#include "StyleCustomFilterProgramCache.h"
+#include "FilterOperation.h"
+#include "ReferenceFilterBuilder.h"
+#include "SourceGraphic.h"
namespace WebCore {
-StyleCustomFilterProgram::~StyleCustomFilterProgram()
+ReferenceFilterRenderer::ReferenceFilterRenderer()
{
- if (m_cache)
- m_cache->remove(this);
}
-} // namespace WebCore
+ReferenceFilterRenderer::~ReferenceFilterRenderer()
+{
+}
+
+PassRefPtr<FilterEffect> ReferenceFilterRenderer::build(RenderObject* renderer, ReferenceFilterOperation* filterOperation)
+{
+ m_effects.clear();
+ RefPtr<SourceGraphic> source = SourceGraphic::create(this);
+ m_effects.append(source);
+ return ReferenceFilterBuilder::build(this, renderer, source.get(), filterOperation, m_effects);
+}
-#endif // ENABLE(CSS_SHADERS)
+void ReferenceFilterRenderer::computeFilter(RenderObject* renderer, ReferenceFilterOperation* filterOperation)
+{
+ RefPtr<ReferenceFilterRenderer> filterRenderer = ReferenceFilterRenderer::create();
+ filterOperation->setFilterEffect(filterRenderer->build(renderer, filterOperation));
+ filterOperation->setFilterRenderer(filterRenderer.release());
Stephen White 2013/04/10 22:19:38 I'm probably being dumb, but why does the filter o
+}
+} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698