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

Side by Side Diff: Source/core/rendering/RenderLayerCompositor.cpp

Issue 23503046: [CSS Blending] Implement mix-blend-mode in software. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Completely remove CompositingReasonBlending Created 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 1673 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 if (layer->isRootLayer() 1684 if (layer->isRootLayer()
1685 || layer->transform() // note: excludes perspective and transformStyle3D . 1685 || layer->transform() // note: excludes perspective and transformStyle3D .
1686 || requiresCompositingForVideo(renderer) 1686 || requiresCompositingForVideo(renderer)
1687 || requiresCompositingForCanvas(renderer) 1687 || requiresCompositingForCanvas(renderer)
1688 || requiresCompositingForPlugin(renderer) 1688 || requiresCompositingForPlugin(renderer)
1689 || requiresCompositingForFrame(renderer) 1689 || requiresCompositingForFrame(renderer)
1690 || requiresCompositingForBackfaceVisibilityHidden(renderer) 1690 || requiresCompositingForBackfaceVisibilityHidden(renderer)
1691 || requiresCompositingForAnimation(renderer) 1691 || requiresCompositingForAnimation(renderer)
1692 || requiresCompositingForTransition(renderer) 1692 || requiresCompositingForTransition(renderer)
1693 || requiresCompositingForFilters(renderer) 1693 || requiresCompositingForFilters(renderer)
1694 || requiresCompositingForBlending(renderer)
1695 || requiresCompositingForPosition(renderer, layer) 1694 || requiresCompositingForPosition(renderer, layer)
1696 || requiresCompositingForOverflowScrolling(layer) 1695 || requiresCompositingForOverflowScrolling(layer)
1697 || requiresCompositingForOverflowScrollingParent(layer) 1696 || requiresCompositingForOverflowScrollingParent(layer)
1698 || requiresCompositingForOutOfFlowClipping(layer) 1697 || requiresCompositingForOutOfFlowClipping(layer)
1699 || renderer->isTransparent() 1698 || renderer->isTransparent()
1700 || renderer->hasMask() 1699 || renderer->hasMask()
1701 || renderer->hasReflection() 1700 || renderer->hasReflection()
1702 || renderer->hasFilter()) 1701 || renderer->hasFilter())
1703 return true; 1702 return true;
1704 1703
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1743 1742
1744 if (requiresCompositingForFilters(renderer)) 1743 if (requiresCompositingForFilters(renderer))
1745 directReasons |= CompositingReasonFilters; 1744 directReasons |= CompositingReasonFilters;
1746 1745
1747 if (requiresCompositingForPosition(renderer, layer)) 1746 if (requiresCompositingForPosition(renderer, layer))
1748 directReasons |= renderer->style()->position() == FixedPosition ? Compos itingReasonPositionFixed : CompositingReasonPositionSticky; 1747 directReasons |= renderer->style()->position() == FixedPosition ? Compos itingReasonPositionFixed : CompositingReasonPositionSticky;
1749 1748
1750 if (requiresCompositingForOverflowScrolling(layer)) 1749 if (requiresCompositingForOverflowScrolling(layer))
1751 directReasons |= CompositingReasonOverflowScrollingTouch; 1750 directReasons |= CompositingReasonOverflowScrollingTouch;
1752 1751
1753 if (requiresCompositingForBlending(renderer))
1754 directReasons |= CompositingReasonBlending;
1755
1756 if (requiresCompositingForOverflowScrollingParent(layer)) 1752 if (requiresCompositingForOverflowScrollingParent(layer))
1757 directReasons |= CompositingReasonOverflowScrollingParent; 1753 directReasons |= CompositingReasonOverflowScrollingParent;
1758 1754
1759 if (requiresCompositingForOutOfFlowClipping(layer)) 1755 if (requiresCompositingForOutOfFlowClipping(layer))
1760 directReasons |= CompositingReasonOutOfFlowClipping; 1756 directReasons |= CompositingReasonOutOfFlowClipping;
1761 1757
1762 return directReasons; 1758 return directReasons;
1763 } 1759 }
1764 1760
1765 CompositingReasons RenderLayerCompositor::reasonsForCompositing(const RenderLaye r* layer) const 1761 CompositingReasons RenderLayerCompositor::reasonsForCompositing(const RenderLaye r* layer) const
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
2072 } 2068 }
2073 2069
2074 bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer ) const 2070 bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer ) const
2075 { 2071 {
2076 if (!(m_compositingTriggers & ChromeClient::FilterTrigger)) 2072 if (!(m_compositingTriggers & ChromeClient::FilterTrigger))
2077 return false; 2073 return false;
2078 2074
2079 return renderer->hasFilter(); 2075 return renderer->hasFilter();
2080 } 2076 }
2081 2077
2082 bool RenderLayerCompositor::requiresCompositingForBlending(RenderObject* rendere r) const
2083 {
2084 return renderer->hasBlendMode();
2085 }
2086
2087 bool RenderLayerCompositor::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const 2078 bool RenderLayerCompositor::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const
2088 { 2079 {
2089 return !!layer->scrollParent(); 2080 return !!layer->scrollParent();
2090 } 2081 }
2091 2082
2092 bool RenderLayerCompositor::requiresCompositingForOutOfFlowClipping(const Render Layer* layer) const 2083 bool RenderLayerCompositor::requiresCompositingForOutOfFlowClipping(const Render Layer* layer) const
2093 { 2084 {
2094 return layer->compositorDrivenAcceleratedScrollingEnabled() && layer->isUncl ippedDescendant(); 2085 return layer->compositorDrivenAcceleratedScrollingEnabled() && layer->isUncl ippedDescendant();
2095 } 2086 }
2096 2087
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
2816 } else if (graphicsLayer == m_scrollLayer.get()) { 2807 } else if (graphicsLayer == m_scrollLayer.get()) {
2817 name = "Frame Scrolling Layer"; 2808 name = "Frame Scrolling Layer";
2818 } else { 2809 } else {
2819 ASSERT_NOT_REACHED(); 2810 ASSERT_NOT_REACHED();
2820 } 2811 }
2821 2812
2822 return name; 2813 return name;
2823 } 2814 }
2824 2815
2825 } // namespace WebCore 2816 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698