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

Unified Diff: third_party/WebKit/Source/core/paint/FilterEffectBuilder.h

Issue 2349183002: Turn FilterEffectBuilder into a stack-allocated helper (Closed)
Patch Set: Created 4 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: third_party/WebKit/Source/core/paint/FilterEffectBuilder.h
diff --git a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.h b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.h
index c240b62a377a3aa675289a35ece36c7c75c0ca6e..7e7aa2bf88b6add682c70eadfb7e3dd3e9a06232 100644
--- a/third_party/WebKit/Source/core/paint/FilterEffectBuilder.h
+++ b/third_party/WebKit/Source/core/paint/FilterEffectBuilder.h
@@ -27,43 +27,44 @@
#define FilterEffectBuilder_h
#include "core/CoreExport.h"
-#include "platform/graphics/filters/FilterEffect.h"
+#include "platform/geometry/FloatRect.h"
#include "platform/heap/Handle.h"
+#include "wtf/Allocator.h"
class SkPaint;
namespace blink {
class Element;
+class Filter;
+class FilterEffect;
class FilterOperations;
+class FloatRect;
class ReferenceFilterOperation;
class SVGFilterElement;
class SVGFilterGraphNodeMap;
-class CORE_EXPORT FilterEffectBuilder final : public GarbageCollectedFinalized<FilterEffectBuilder> {
+class CORE_EXPORT FilterEffectBuilder final {
+ STACK_ALLOCATED();
public:
- static FilterEffectBuilder* create()
- {
- return new FilterEffectBuilder();
- }
+ FilterEffectBuilder(
+ Element*,
+ const FloatRect& zoomedReferenceBox,
+ float zoom,
+ const SkPaint* fillPaint = nullptr,
+ const SkPaint* strokePaint = nullptr);
- virtual ~FilterEffectBuilder();
- DECLARE_TRACE();
+ Filter* buildReferenceFilter(SVGFilterElement&, FilterEffect* previousEffect, SVGFilterGraphNodeMap* = nullptr) const;
+ Filter* buildReferenceFilter(const ReferenceFilterOperation&, FilterEffect* previousEffect = nullptr) const;
- static Filter* buildReferenceFilter(const ReferenceFilterOperation&, const FloatRect& zoomedReferenceBox, const SkPaint* fillPaint, const SkPaint* strokePaint, Element&, FilterEffect* previousEffect, float zoom);
- static Filter* buildReferenceFilter(SVGFilterElement&, const FloatRect& referenceBox, const SkPaint* fillPaint, const SkPaint* strokePaint, FilterEffect* previousEffect, float zoom, SVGFilterGraphNodeMap* = nullptr);
-
- bool build(Element*, const FilterOperations&, float zoom, const FloatRect& zoomedReferenceBox, const SkPaint* fillPaint = nullptr, const SkPaint* strokePaint = nullptr);
-
- FilterEffect* lastEffect() const
- {
- return m_lastEffect;
- }
+ FilterEffect* buildFilterEffect(const FilterOperations&) const;
private:
- FilterEffectBuilder();
-
- Member<FilterEffect> m_lastEffect;
+ Member<Element> m_targetContext;
+ FloatRect m_referenceBox;
+ float m_zoom;
+ const SkPaint* m_fillPaint;
+ const SkPaint* m_strokePaint;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698