| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 #include "sky/engine/core/rendering/RenderLayer.h" | 45 #include "sky/engine/core/rendering/RenderLayer.h" |
| 46 | 46 |
| 47 #include "gen/sky/core/CSSPropertyNames.h" | 47 #include "gen/sky/core/CSSPropertyNames.h" |
| 48 #include "gen/sky/platform/RuntimeEnabledFeatures.h" | 48 #include "gen/sky/platform/RuntimeEnabledFeatures.h" |
| 49 #include "sky/engine/core/dom/Document.h" | 49 #include "sky/engine/core/dom/Document.h" |
| 50 #include "sky/engine/core/dom/shadow/ShadowRoot.h" | 50 #include "sky/engine/core/dom/shadow/ShadowRoot.h" |
| 51 #include "sky/engine/core/frame/FrameView.h" | 51 #include "sky/engine/core/frame/FrameView.h" |
| 52 #include "sky/engine/core/frame/LocalFrame.h" | 52 #include "sky/engine/core/frame/LocalFrame.h" |
| 53 #include "sky/engine/core/frame/Settings.h" | 53 #include "sky/engine/core/frame/Settings.h" |
| 54 #include "sky/engine/core/page/Page.h" | 54 #include "sky/engine/core/page/Page.h" |
| 55 #include "sky/engine/core/rendering/FilterEffectRenderer.h" | |
| 56 #include "sky/engine/core/rendering/HitTestRequest.h" | 55 #include "sky/engine/core/rendering/HitTestRequest.h" |
| 57 #include "sky/engine/core/rendering/HitTestResult.h" | 56 #include "sky/engine/core/rendering/HitTestResult.h" |
| 58 #include "sky/engine/core/rendering/HitTestingTransformState.h" | 57 #include "sky/engine/core/rendering/HitTestingTransformState.h" |
| 59 #include "sky/engine/core/rendering/RenderGeometryMap.h" | 58 #include "sky/engine/core/rendering/RenderGeometryMap.h" |
| 60 #include "sky/engine/core/rendering/RenderInline.h" | 59 #include "sky/engine/core/rendering/RenderInline.h" |
| 61 #include "sky/engine/core/rendering/RenderTreeAsText.h" | 60 #include "sky/engine/core/rendering/RenderTreeAsText.h" |
| 62 #include "sky/engine/core/rendering/RenderView.h" | 61 #include "sky/engine/core/rendering/RenderView.h" |
| 63 #include "sky/engine/platform/LengthFunctions.h" | 62 #include "sky/engine/platform/LengthFunctions.h" |
| 64 #include "sky/engine/platform/Partitions.h" | 63 #include "sky/engine/platform/Partitions.h" |
| 65 #include "sky/engine/platform/TraceEvent.h" | 64 #include "sky/engine/platform/TraceEvent.h" |
| (...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 convertToLayerCoords(ancestorLayer, delta); | 599 convertToLayerCoords(ancestorLayer, delta); |
| 601 result.moveBy(delta); | 600 result.moveBy(delta); |
| 602 return result; | 601 return result; |
| 603 } | 602 } |
| 604 | 603 |
| 605 bool RenderLayer::shouldBeSelfPaintingLayer() const | 604 bool RenderLayer::shouldBeSelfPaintingLayer() const |
| 606 { | 605 { |
| 607 return m_layerType == NormalLayer; | 606 return m_layerType == NormalLayer; |
| 608 } | 607 } |
| 609 | 608 |
| 610 void RenderLayer::updateFilters(const RenderStyle* oldStyle, const RenderStyle*
newStyle) | |
| 611 { | |
| 612 if (!newStyle->hasFilter() && (!oldStyle || !oldStyle->hasFilter())) | |
| 613 return; | |
| 614 | |
| 615 if (!renderer()->hasFilter()) { | |
| 616 m_filterRenderer = nullptr; | |
| 617 return; | |
| 618 } | |
| 619 | |
| 620 m_filterRenderer = FilterEffectRenderer::create(); | |
| 621 | |
| 622 // If the filter fails to build, remove it from the layer. It will still att
empt to | |
| 623 // go through regular processing (e.g. compositing), but never apply anythin
g. | |
| 624 if (!m_filterRenderer->build(renderer(), renderer()->style()->filter())) | |
| 625 m_filterRenderer = nullptr; | |
| 626 } | |
| 627 | |
| 628 void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle* oldStyle
) | 609 void RenderLayer::styleChanged(StyleDifference diff, const RenderStyle* oldStyle
) |
| 629 { | 610 { |
| 630 m_stackingNode->updateIsNormalFlowOnly(); | 611 m_stackingNode->updateIsNormalFlowOnly(); |
| 631 m_stackingNode->updateStackingNodesAfterStyleChange(oldStyle); | 612 m_stackingNode->updateStackingNodesAfterStyleChange(oldStyle); |
| 632 | 613 |
| 633 // Overlay scrollbars can make this layer self-painting so we need | 614 // Overlay scrollbars can make this layer self-painting so we need |
| 634 // to recompute the bit once scrollbars have been updated. | 615 // to recompute the bit once scrollbars have been updated. |
| 635 m_isSelfPaintingLayer = shouldBeSelfPaintingLayer(); | 616 m_isSelfPaintingLayer = shouldBeSelfPaintingLayer(); |
| 636 | 617 |
| 637 updateTransform(oldStyle, renderer()->style()); | 618 updateTransform(oldStyle, renderer()->style()); |
| 638 updateFilters(oldStyle, renderer()->style()); | |
| 639 } | 619 } |
| 640 | 620 |
| 641 } // namespace blink | 621 } // namespace blink |
| OLD | NEW |