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

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: Addressing review comments 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 1691 matching lines...) Expand 10 before | Expand all | Expand 10 after
1702 if (layer->isRootLayer() 1702 if (layer->isRootLayer()
1703 || layer->transform() // note: excludes perspective and transformStyle3D . 1703 || layer->transform() // note: excludes perspective and transformStyle3D .
1704 || requiresCompositingForVideo(renderer) 1704 || requiresCompositingForVideo(renderer)
1705 || requiresCompositingForCanvas(renderer) 1705 || requiresCompositingForCanvas(renderer)
1706 || requiresCompositingForPlugin(renderer) 1706 || requiresCompositingForPlugin(renderer)
1707 || requiresCompositingForFrame(renderer) 1707 || requiresCompositingForFrame(renderer)
1708 || requiresCompositingForBackfaceVisibilityHidden(renderer) 1708 || requiresCompositingForBackfaceVisibilityHidden(renderer)
1709 || requiresCompositingForAnimation(renderer) 1709 || requiresCompositingForAnimation(renderer)
1710 || requiresCompositingForTransition(renderer) 1710 || requiresCompositingForTransition(renderer)
1711 || requiresCompositingForFilters(renderer) 1711 || requiresCompositingForFilters(renderer)
1712 || requiresCompositingForBlending(renderer)
1713 || requiresCompositingForPosition(renderer, layer) 1712 || requiresCompositingForPosition(renderer, layer)
1714 || requiresCompositingForOverflowScrolling(layer) 1713 || requiresCompositingForOverflowScrolling(layer)
1715 || requiresCompositingForOverflowScrollingParent(layer) 1714 || requiresCompositingForOverflowScrollingParent(layer)
1716 || requiresCompositingForOutOfFlowClipping(layer) 1715 || requiresCompositingForOutOfFlowClipping(layer)
1717 || renderer->isTransparent() 1716 || renderer->isTransparent()
1718 || renderer->hasMask() 1717 || renderer->hasMask()
1719 || renderer->hasReflection() 1718 || renderer->hasReflection()
1720 || renderer->hasFilter()) 1719 || renderer->hasFilter())
1721 return true; 1720 return true;
1722 1721
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1761 1760
1762 if (requiresCompositingForFilters(renderer)) 1761 if (requiresCompositingForFilters(renderer))
1763 directReasons |= CompositingReasonFilters; 1762 directReasons |= CompositingReasonFilters;
1764 1763
1765 if (requiresCompositingForPosition(renderer, layer)) 1764 if (requiresCompositingForPosition(renderer, layer))
1766 directReasons |= renderer->style()->position() == FixedPosition ? Compos itingReasonPositionFixed : CompositingReasonPositionSticky; 1765 directReasons |= renderer->style()->position() == FixedPosition ? Compos itingReasonPositionFixed : CompositingReasonPositionSticky;
1767 1766
1768 if (requiresCompositingForOverflowScrolling(layer)) 1767 if (requiresCompositingForOverflowScrolling(layer))
1769 directReasons |= CompositingReasonOverflowScrollingTouch; 1768 directReasons |= CompositingReasonOverflowScrollingTouch;
1770 1769
1771 if (requiresCompositingForBlending(renderer))
1772 directReasons |= CompositingReasonBlending;
1773
1774 if (requiresCompositingForOverflowScrollingParent(layer)) 1770 if (requiresCompositingForOverflowScrollingParent(layer))
1775 directReasons |= CompositingReasonOverflowScrollingParent; 1771 directReasons |= CompositingReasonOverflowScrollingParent;
1776 1772
1777 if (requiresCompositingForOutOfFlowClipping(layer)) 1773 if (requiresCompositingForOutOfFlowClipping(layer))
1778 directReasons |= CompositingReasonOutOfFlowClipping; 1774 directReasons |= CompositingReasonOutOfFlowClipping;
1779 1775
1780 return directReasons; 1776 return directReasons;
1781 } 1777 }
1782 1778
1783 CompositingReasons RenderLayerCompositor::reasonsForCompositing(const RenderLaye r* layer) const 1779 CompositingReasons RenderLayerCompositor::reasonsForCompositing(const RenderLaye r* layer) const
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
2090 } 2086 }
2091 2087
2092 bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer ) const 2088 bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer ) const
2093 { 2089 {
2094 if (!(m_compositingTriggers & ChromeClient::FilterTrigger)) 2090 if (!(m_compositingTriggers & ChromeClient::FilterTrigger))
2095 return false; 2091 return false;
2096 2092
2097 return renderer->hasFilter(); 2093 return renderer->hasFilter();
2098 } 2094 }
2099 2095
2100 bool RenderLayerCompositor::requiresCompositingForBlending(RenderObject* rendere r) const
2101 {
2102 return renderer->hasBlendMode();
2103 }
2104
2105 bool RenderLayerCompositor::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const 2096 bool RenderLayerCompositor::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const
2106 { 2097 {
2107 return !!layer->scrollParent(); 2098 return !!layer->scrollParent();
2108 } 2099 }
2109 2100
2110 bool RenderLayerCompositor::requiresCompositingForOutOfFlowClipping(const Render Layer* layer) const 2101 bool RenderLayerCompositor::requiresCompositingForOutOfFlowClipping(const Render Layer* layer) const
2111 { 2102 {
2112 return layer->compositorDrivenAcceleratedScrollingEnabled() && layer->isUncl ippedDescendant(); 2103 return layer->compositorDrivenAcceleratedScrollingEnabled() && layer->isUncl ippedDescendant();
2113 } 2104 }
2114 2105
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
2834 } else if (graphicsLayer == m_scrollLayer.get()) { 2825 } else if (graphicsLayer == m_scrollLayer.get()) {
2835 name = "Frame Scrolling Layer"; 2826 name = "Frame Scrolling Layer";
2836 } else { 2827 } else {
2837 ASSERT_NOT_REACHED(); 2828 ASSERT_NOT_REACHED();
2838 } 2829 }
2839 2830
2840 return name; 2831 return name;
2841 } 2832 }
2842 2833
2843 } // namespace WebCore 2834 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698