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

Unified Diff: trunk/Source/core/platform/graphics/filters/FilterEffect.cpp

Issue 14852010: Revert 150342 "Implement filter primitive subregion for referenc..." (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 7 years, 7 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: trunk/Source/core/platform/graphics/filters/FilterEffect.cpp
===================================================================
--- trunk/Source/core/platform/graphics/filters/FilterEffect.cpp (revision 150368)
+++ trunk/Source/core/platform/graphics/filters/FilterEffect.cpp (working copy)
@@ -77,45 +77,6 @@
}
-FloatRect FilterEffect::mapRectRecursive(const FloatRect& rect)
-{
- FloatRect result;
- if (m_inputEffects.size() > 0) {
- result = m_inputEffects.at(0)->mapRectRecursive(rect);
- for (unsigned i = 1; i < m_inputEffects.size(); ++i)
- result.unite(m_inputEffects.at(i)->mapRectRecursive(rect));
- } else
- result = rect;
- return mapRect(result);
-}
-
-FloatRect FilterEffect::getSourceRect(const FloatRect& destRect, const FloatRect& destClipRect)
-{
- FloatRect sourceRect = mapRect(destRect, false);
- FloatRect sourceClipRect = mapRect(destClipRect, false);
-
- FloatRect boundaries = effectBoundaries();
- if (hasX())
- sourceClipRect.setX(boundaries.x());
- if (hasY())
- sourceClipRect.setY(boundaries.y());
- if (hasWidth())
- sourceClipRect.setWidth(boundaries.width());
- if (hasHeight())
- sourceClipRect.setHeight(boundaries.height());
-
- FloatRect result;
- if (m_inputEffects.size() > 0) {
- result = m_inputEffects.at(0)->getSourceRect(sourceRect, sourceClipRect);
- for (unsigned i = 1; i < m_inputEffects.size(); ++i)
- result.unite(m_inputEffects.at(i)->getSourceRect(sourceRect, sourceClipRect));
- } else {
- result = sourceRect;
- result.intersect(sourceClipRect);
- }
- return result;
-}
-
IntRect FilterEffect::requestedRegionOfInputImageData(const IntRect& effectRect) const
{
ASSERT(hasResult());
@@ -437,43 +398,4 @@
return ts;
}
-FloatRect FilterEffect::determineFilterPrimitiveSubregion()
-{
- ASSERT(filter());
-
- // FETile, FETurbulence, FEFlood don't have input effects, take the filter region as unite rect.
- FloatRect subregion;
- if (unsigned numberOfInputEffects = inputEffects().size()) {
- subregion = inputEffect(0)->determineFilterPrimitiveSubregion();
- for (unsigned i = 1; i < numberOfInputEffects; ++i)
- subregion.unite(inputEffect(i)->determineFilterPrimitiveSubregion());
- } else
- subregion = filter()->filterRegion();
-
- // After calling determineFilterPrimitiveSubregion on the target effect, reset the subregion again for <feTile>.
- if (filterEffectType() == FilterEffectTypeTile)
- subregion = filter()->filterRegion();
-
- subregion = mapRect(subregion);
-
- FloatRect boundaries = effectBoundaries();
- if (hasX())
- subregion.setX(boundaries.x());
- if (hasY())
- subregion.setY(boundaries.y());
- if (hasWidth())
- subregion.setWidth(boundaries.width());
- if (hasHeight())
- subregion.setHeight(boundaries.height());
-
- setFilterPrimitiveSubregion(subregion);
-
- FloatRect absoluteSubregion = filter()->absoluteTransform().mapRect(subregion);
- FloatSize filterResolution = filter()->filterResolution();
- absoluteSubregion.scale(filterResolution.width(), filterResolution.height());
-
- setMaxEffectRect(absoluteSubregion);
- return subregion;
-}
-
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698