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

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: Rebase Created 7 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 unified diff | Download patch
« no previous file with comments | « Source/core/rendering/RenderLayerCompositor.h ('k') | Source/web/AssertMatchingEnums.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1640 matching lines...) Expand 10 before | Expand all | Expand 10 after
1651 if (layer->isRootLayer() 1651 if (layer->isRootLayer()
1652 || layer->transform() // note: excludes perspective and transformStyle3D . 1652 || layer->transform() // note: excludes perspective and transformStyle3D .
1653 || requiresCompositingForVideo(renderer) 1653 || requiresCompositingForVideo(renderer)
1654 || requiresCompositingForCanvas(renderer) 1654 || requiresCompositingForCanvas(renderer)
1655 || requiresCompositingForPlugin(renderer) 1655 || requiresCompositingForPlugin(renderer)
1656 || requiresCompositingForFrame(renderer) 1656 || requiresCompositingForFrame(renderer)
1657 || requiresCompositingForBackfaceVisibilityHidden(renderer) 1657 || requiresCompositingForBackfaceVisibilityHidden(renderer)
1658 || requiresCompositingForAnimation(renderer) 1658 || requiresCompositingForAnimation(renderer)
1659 || requiresCompositingForTransition(renderer) 1659 || requiresCompositingForTransition(renderer)
1660 || requiresCompositingForFilters(renderer) 1660 || requiresCompositingForFilters(renderer)
1661 || requiresCompositingForBlending(renderer)
1662 || requiresCompositingForPosition(renderer, layer) 1661 || requiresCompositingForPosition(renderer, layer)
1663 || requiresCompositingForOverflowScrolling(layer) 1662 || requiresCompositingForOverflowScrolling(layer)
1664 || requiresCompositingForOverflowScrollingParent(layer) 1663 || requiresCompositingForOverflowScrollingParent(layer)
1665 || requiresCompositingForOutOfFlowClipping(layer) 1664 || requiresCompositingForOutOfFlowClipping(layer)
1666 || renderer->isTransparent() 1665 || renderer->isTransparent()
1667 || renderer->hasMask() 1666 || renderer->hasMask()
1668 || renderer->hasReflection() 1667 || renderer->hasReflection()
1669 || renderer->hasFilter()) 1668 || renderer->hasFilter())
1670 return true; 1669 return true;
1671 1670
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1710 1709
1711 if (requiresCompositingForFilters(renderer)) 1710 if (requiresCompositingForFilters(renderer))
1712 directReasons |= CompositingReasonFilters; 1711 directReasons |= CompositingReasonFilters;
1713 1712
1714 if (requiresCompositingForPosition(renderer, layer)) 1713 if (requiresCompositingForPosition(renderer, layer))
1715 directReasons |= renderer->style()->position() == FixedPosition ? Compos itingReasonPositionFixed : CompositingReasonPositionSticky; 1714 directReasons |= renderer->style()->position() == FixedPosition ? Compos itingReasonPositionFixed : CompositingReasonPositionSticky;
1716 1715
1717 if (requiresCompositingForOverflowScrolling(layer)) 1716 if (requiresCompositingForOverflowScrolling(layer))
1718 directReasons |= CompositingReasonOverflowScrollingTouch; 1717 directReasons |= CompositingReasonOverflowScrollingTouch;
1719 1718
1720 if (requiresCompositingForBlending(renderer))
1721 directReasons |= CompositingReasonBlending;
1722
1723 if (requiresCompositingForOverflowScrollingParent(layer)) 1719 if (requiresCompositingForOverflowScrollingParent(layer))
1724 directReasons |= CompositingReasonOverflowScrollingParent; 1720 directReasons |= CompositingReasonOverflowScrollingParent;
1725 1721
1726 if (requiresCompositingForOutOfFlowClipping(layer)) 1722 if (requiresCompositingForOutOfFlowClipping(layer))
1727 directReasons |= CompositingReasonOutOfFlowClipping; 1723 directReasons |= CompositingReasonOutOfFlowClipping;
1728 1724
1729 return directReasons; 1725 return directReasons;
1730 } 1726 }
1731 1727
1732 CompositingReasons RenderLayerCompositor::reasonsForCompositing(const RenderLaye r* layer) const 1728 CompositingReasons RenderLayerCompositor::reasonsForCompositing(const RenderLaye r* layer) const
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 } 2037 }
2042 2038
2043 bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer ) const 2039 bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer ) const
2044 { 2040 {
2045 if (!(m_compositingTriggers & ChromeClient::FilterTrigger)) 2041 if (!(m_compositingTriggers & ChromeClient::FilterTrigger))
2046 return false; 2042 return false;
2047 2043
2048 return renderer->hasFilter(); 2044 return renderer->hasFilter();
2049 } 2045 }
2050 2046
2051 bool RenderLayerCompositor::requiresCompositingForBlending(RenderObject* rendere r) const
2052 {
2053 return renderer->hasBlendMode();
2054 }
2055
2056 bool RenderLayerCompositor::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const 2047 bool RenderLayerCompositor::requiresCompositingForOverflowScrollingParent(const RenderLayer* layer) const
2057 { 2048 {
2058 return !!layer->scrollParent(); 2049 return !!layer->scrollParent();
2059 } 2050 }
2060 2051
2061 bool RenderLayerCompositor::requiresCompositingForOutOfFlowClipping(const Render Layer* layer) const 2052 bool RenderLayerCompositor::requiresCompositingForOutOfFlowClipping(const Render Layer* layer) const
2062 { 2053 {
2063 return layer->compositorDrivenAcceleratedScrollingEnabled() && layer->isUncl ippedDescendant(); 2054 return layer->compositorDrivenAcceleratedScrollingEnabled() && layer->isUncl ippedDescendant();
2064 } 2055 }
2065 2056
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after
2788 } else if (graphicsLayer == m_scrollLayer.get()) { 2779 } else if (graphicsLayer == m_scrollLayer.get()) {
2789 name = "Frame Scrolling Layer"; 2780 name = "Frame Scrolling Layer";
2790 } else { 2781 } else {
2791 ASSERT_NOT_REACHED(); 2782 ASSERT_NOT_REACHED();
2792 } 2783 }
2793 2784
2794 return name; 2785 return name;
2795 } 2786 }
2796 2787
2797 } // namespace WebCore 2788 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderLayerCompositor.h ('k') | Source/web/AssertMatchingEnums.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698