Index: Source/core/rendering/RenderLayerCompositor.cpp |
diff --git a/Source/core/rendering/RenderLayerCompositor.cpp b/Source/core/rendering/RenderLayerCompositor.cpp |
index 5086bf0565a519c69586194f462a344dd3a44dc7..69a41418297996e02ac87e14256aed3cc830e00f 100644 |
--- a/Source/core/rendering/RenderLayerCompositor.cpp |
+++ b/Source/core/rendering/RenderLayerCompositor.cpp |
@@ -1527,6 +1527,7 @@ bool RenderLayerCompositor::requiresOwnBackingStore(const RenderLayer* layer, co |
|| requiresCompositingForFrame(renderer) |
|| requiresCompositingForBackfaceVisibilityHidden(renderer) |
|| requiresCompositingForAnimation(renderer) |
+ || requiresCompositingForTransition(renderer) |
|| requiresCompositingForFilters(renderer) |
|| requiresCompositingForBlending(renderer) |
|| requiresCompositingForPosition(renderer, layer) |
@@ -1575,6 +1576,9 @@ CompositingReasons RenderLayerCompositor::directReasonsForCompositing(const Rend |
if (requiresCompositingForAnimation(renderer)) |
directReasons |= CompositingReasonAnimation; |
+ if (requiresCompositingForTransition(renderer)) |
+ directReasons |= CompositingReasonTransition; |
+ |
if (requiresCompositingForFilters(renderer)) |
directReasons |= CompositingReasonFilters; |
@@ -1629,6 +1633,9 @@ const char* RenderLayerCompositor::logReasonsForCompositing(const RenderLayer* l |
if (reasons & CompositingReasonAnimation) |
return "animation"; |
+ if (reasons & CompositingReasonTransition) |
+ return "transition"; |
+ |
if (reasons & CompositingReasonFilters) |
return "filters"; |
@@ -1842,6 +1849,15 @@ bool RenderLayerCompositor::requiresCompositingForAnimation(RenderObject* render |
return false; |
} |
+bool RenderLayerCompositor::requiresCompositingForTransition(RenderObject* renderer) const |
+{ |
+ if (!(m_compositingTriggers & ChromeClient::AnimationTrigger)) |
+ return false; |
+ |
+ return renderer->style()->transitionForProperty(CSSPropertyOpacity) |
+ || renderer->style()->transitionForProperty(CSSPropertyWebkitTransform); |
shawnsingh
2013/05/15 19:24:43
Would it work to accelerate filter transitions as
ajuma
2013/05/17 17:21:29
Done.
|
+} |
+ |
CompositingReasons RenderLayerCompositor::subtreeReasonsForCompositing(RenderObject* renderer, bool hasCompositedDescendants, bool has3DTransformedDescendants) const |
{ |
CompositingReasons subtreeReasons = CompositingReasonNone; |