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

Unified Diff: Source/platform/graphics/filters/Filter.h

Issue 1326183002: Merge ReferenceFilter into Filter (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Touchups; Rebase. Created 5 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
« no previous file with comments | « Source/platform/blink_platform.gypi ('k') | Source/platform/graphics/filters/Filter.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/graphics/filters/Filter.h
diff --git a/Source/platform/graphics/filters/Filter.h b/Source/platform/graphics/filters/Filter.h
index bc6ded50da1361324e5edcf150d2cc9cfe5228e7..cd03654e318dbe4666275f4ad8e23f833b152517 100644
--- a/Source/platform/graphics/filters/Filter.h
+++ b/Source/platform/graphics/filters/Filter.h
@@ -30,38 +30,55 @@
namespace blink {
+class SourceGraphic;
+class FilterEffect;
+
class PLATFORM_EXPORT Filter : public RefCountedWillBeGarbageCollectedFinalized<Filter> {
public:
- virtual ~Filter() { }
- DEFINE_INLINE_VIRTUAL_TRACE() { }
+ static PassRefPtrWillBeRawPtr<Filter> create(const FloatRect& referenceBox, const FloatRect& filterRegion, float scale)
+ {
+ return adoptRefWillBeNoop(new Filter(referenceBox, filterRegion, scale));
+ }
+
+ static PassRefPtrWillBeRawPtr<Filter> create(float scale)
+ {
+ return adoptRefWillBeNoop(new Filter(FloatRect(), FloatRect(), scale));
+ }
+
+ virtual ~Filter();
+ DECLARE_VIRTUAL_TRACE();
float scale() const { return m_scale; }
- FloatRect mapLocalRectToAbsoluteRect(const FloatRect& rect) const { FloatRect result(rect); result.scale(m_scale); return result; }
- FloatRect mapAbsoluteRectToLocalRect(const FloatRect& rect) const { FloatRect result(rect); result.scale(1.0f / m_scale); return result; }
+ FloatRect mapLocalRectToAbsoluteRect(const FloatRect&) const;
+ FloatRect mapAbsoluteRectToLocalRect(const FloatRect&) const;
+
virtual float applyHorizontalScale(float value) const { return m_scale * value; }
virtual float applyVerticalScale(float value) const { return m_scale * value; }
virtual FloatPoint3D resolve3dPoint(const FloatPoint3D& point) const { return point; }
- virtual IntRect sourceImageRect() const = 0;
+ virtual IntRect sourceImageRect() const { return IntRect(); }
- FloatRect absoluteFilterRegion() const { FloatRect result = m_filterRegion; result.scale(m_scale); return result; }
+ FloatRect absoluteFilterRegion() const { return mapLocalRectToAbsoluteRect(m_filterRegion); }
const FloatRect& filterRegion() const { return m_filterRegion; }
- const FloatRect& targetBoundingBox() const { return m_targetBoundingBox; }
+ const FloatRect& referenceBox() const { return m_referenceBox; }
+
+ void setLastEffect(PassRefPtrWillBeRawPtr<FilterEffect>);
+ FilterEffect* lastEffect() const { return m_lastEffect.get(); }
+
+ SourceGraphic* sourceGraphic() const { return m_sourceGraphic.get(); }
protected:
- Filter(const FloatRect& targetBoundingBox, const FloatRect& filterRegion, float scale)
- : m_targetBoundingBox(targetBoundingBox)
- , m_filterRegion(filterRegion)
- , m_scale(scale)
- {
- }
+ Filter(const FloatRect& referenceBox, const FloatRect& filterRegion, float scale);
private:
- FloatRect m_targetBoundingBox;
+ FloatRect m_referenceBox;
FloatRect m_filterRegion;
float m_scale;
+
+ RefPtrWillBeMember<SourceGraphic> m_sourceGraphic;
+ RefPtrWillBeMember<FilterEffect> m_lastEffect;
};
} // namespace blink
« no previous file with comments | « Source/platform/blink_platform.gypi ('k') | Source/platform/graphics/filters/Filter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698