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

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

Issue 644713004: Further cleanup in FilterEffectRenderer. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove inverseScale() per review. Remove useless #includes. Created 6 years, 2 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/platform/graphics/filters/Filter.h
diff --git a/Source/platform/graphics/filters/Filter.h b/Source/platform/graphics/filters/Filter.h
index ea7b533de3e170c7322ac598aa2309f97933544e..4f8bde8adb84e04656384f18f239ee995dd5fc75 100644
--- a/Source/platform/graphics/filters/Filter.h
+++ b/Source/platform/graphics/filters/Filter.h
@@ -30,39 +30,16 @@ namespace blink {
class PLATFORM_EXPORT Filter : public RefCounted<Filter> {
public:
- Filter(const AffineTransform& absoluteTransform)
- : m_absoluteTransform(absoluteTransform)
- , m_inverseTransform(absoluteTransform.inverse())
- {
- // Filters can only accept scaling and translating transformations, as coordinates
- // in most primitives are given in horizontal and vertical directions.
- ASSERT(!absoluteTransform.b() && !absoluteTransform.c());
- }
+ Filter(float scale)
+ : m_scale(scale) { }
virtual ~Filter() { }
- const AffineTransform& absoluteTransform() const { return m_absoluteTransform; }
-
- void setAbsoluteTransform(const AffineTransform& absoluteTransform)
- {
- // Filters can only accept scaling and translating transformations, as coordinates
- // in most primitives are given in horizontal and vertical directions.
- ASSERT(!absoluteTransform.b() && !absoluteTransform.c());
- m_absoluteTransform = absoluteTransform;
- m_inverseTransform = absoluteTransform.inverse();
- m_absoluteFilterRegion = m_absoluteTransform.mapRect(m_filterRegion);
- }
- FloatPoint mapAbsolutePointToLocalPoint(const FloatPoint& point) const { return m_inverseTransform.mapPoint(point); }
- FloatRect mapLocalRectToAbsoluteRect(const FloatRect& rect) const { return m_absoluteTransform.mapRect(rect); }
- FloatRect mapAbsoluteRectToLocalRect(const FloatRect& rect) const { return m_inverseTransform.mapRect(rect); }
+ 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; }
+ virtual float applyHorizontalScale(float value) const { return m_scale * value; }
+ virtual float applyVerticalScale(float value) const { return m_scale * value; }
- virtual float applyHorizontalScale(float value) const
- {
- return value * m_absoluteTransform.a();
- }
- virtual float applyVerticalScale(float value) const
- {
- return value * m_absoluteTransform.d();
- }
virtual FloatPoint3D resolve3dPoint(const FloatPoint3D& point) const { return point; }
virtual IntRect sourceImageRect() const = 0;
@@ -73,12 +50,12 @@ public:
void setFilterRegion(const FloatRect& rect)
{
m_filterRegion = rect;
- m_absoluteFilterRegion = m_absoluteTransform.mapRect(m_filterRegion);
+ m_absoluteFilterRegion = rect;
+ m_absoluteFilterRegion.scale(m_scale);
}
private:
- AffineTransform m_absoluteTransform;
- AffineTransform m_inverseTransform;
+ float m_scale;
FloatRect m_absoluteFilterRegion;
FloatRect m_filterRegion;
};
« no previous file with comments | « Source/platform/graphics/filters/FETurbulence.cpp ('k') | Source/platform/graphics/filters/FilterEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698