Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 56 #include "core/paint/TransformRecorder.h" | 56 #include "core/paint/TransformRecorder.h" |
| 57 #include "platform/RuntimeEnabledFeatures.h" | 57 #include "platform/RuntimeEnabledFeatures.h" |
| 58 #include "platform/ScriptForbiddenScope.h" | 58 #include "platform/ScriptForbiddenScope.h" |
| 59 #include "platform/TraceEvent.h" | 59 #include "platform/TraceEvent.h" |
| 60 #include "platform/graphics/GraphicsLayer.h" | 60 #include "platform/graphics/GraphicsLayer.h" |
| 61 #include "platform/graphics/paint/CullRect.h" | 61 #include "platform/graphics/paint/CullRect.h" |
| 62 #include "platform/graphics/paint/DrawingRecorder.h" | 62 #include "platform/graphics/paint/DrawingRecorder.h" |
| 63 #include "platform/graphics/paint/PaintController.h" | 63 #include "platform/graphics/paint/PaintController.h" |
| 64 #include "platform/graphics/paint/TransformDisplayItem.h" | 64 #include "platform/graphics/paint/TransformDisplayItem.h" |
| 65 #include "public/platform/Platform.h" | 65 #include "public/platform/Platform.h" |
| 66 #include "public/platform/WebCompositorMutableProperties.h" | |
| 66 | 67 |
| 67 namespace blink { | 68 namespace blink { |
| 68 | 69 |
| 69 PaintLayerCompositor::PaintLayerCompositor(LayoutView& layoutView) | 70 PaintLayerCompositor::PaintLayerCompositor(LayoutView& layoutView) |
| 70 : m_layoutView(layoutView) | 71 : m_layoutView(layoutView) |
| 71 , m_compositingReasonFinder(layoutView) | 72 , m_compositingReasonFinder(layoutView) |
| 72 , m_pendingUpdateType(CompositingUpdateNone) | 73 , m_pendingUpdateType(CompositingUpdateNone) |
| 73 , m_hasAcceleratedCompositing(true) | 74 , m_hasAcceleratedCompositing(true) |
| 74 , m_compositing(false) | 75 , m_compositing(false) |
| 75 , m_rootShouldAlwaysCompositeDirty(true) | 76 , m_rootShouldAlwaysCompositeDirty(true) |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 384 for (ScrollableArea* scrollableArea : *scrollableAreas) | 385 for (ScrollableArea* scrollableArea : *scrollableAreas) |
| 385 layersChanged |= scrollableArea->updateAfterCompositingChang e(); | 386 layersChanged |= scrollableArea->updateAfterCompositingChang e(); |
| 386 } | 387 } |
| 387 } | 388 } |
| 388 | 389 |
| 389 if (layersChanged) | 390 if (layersChanged) |
| 390 updateType = std::max(updateType, CompositingUpdateRebuildTree); | 391 updateType = std::max(updateType, CompositingUpdateRebuildTree); |
| 391 } | 392 } |
| 392 | 393 |
| 393 if (updateType != CompositingUpdateNone) { | 394 if (updateType != CompositingUpdateNone) { |
| 395 if (RuntimeEnabledFeatures::compositorWorkerEnabled() && m_scrollLayer) { | |
| 396 if (Element* scrollingElement = m_layoutView.document().scrollingEle ment()) { | |
|
esprehn
2015/12/02 03:28:49
why do we need special treatment for the document
Ian Vollick
2015/12/03 17:54:43
Once we have skobes' root layer scrolling, this sh
| |
| 397 uint64_t elementId = 0; | |
| 398 uint32_t mutableProperties = WebCompositorMutablePropertyNone; | |
| 399 if (scrollingElement->hasCompositorProxy()) { | |
| 400 elementId = DOMNodeIds::idForNode(scrollingElement); | |
| 401 mutableProperties = (WebCompositorMutablePropertyScrollLeft | WebCompositorMutablePropertyScrollTop) & scrollingElement->compositorMutablePr operties(); | |
| 402 } | |
| 403 m_scrollLayer->setElementId(elementId); | |
| 404 m_scrollLayer->setCompositorMutableProperties(mutableProperties) ; | |
| 405 } | |
| 406 } | |
| 407 | |
| 394 GraphicsLayerUpdater updater; | 408 GraphicsLayerUpdater updater; |
| 395 updater.update(*updateRoot, layersNeedingPaintInvalidation); | 409 updater.update(*updateRoot, layersNeedingPaintInvalidation); |
| 396 | 410 |
| 397 if (updater.needsRebuildTree()) | 411 if (updater.needsRebuildTree()) |
| 398 updateType = std::max(updateType, CompositingUpdateRebuildTree); | 412 updateType = std::max(updateType, CompositingUpdateRebuildTree); |
| 399 | 413 |
| 400 #if ENABLE(ASSERT) | 414 #if ENABLE(ASSERT) |
| 401 // FIXME: Move this check to the end of the compositing update. | 415 // FIXME: Move this check to the end of the compositing update. |
| 402 GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(*updat eRoot); | 416 GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(*updat eRoot); |
| 403 #endif | 417 #endif |
| (...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1192 } else if (graphicsLayer == m_scrollLayer.get()) { | 1206 } else if (graphicsLayer == m_scrollLayer.get()) { |
| 1193 name = "Frame Scrolling Layer"; | 1207 name = "Frame Scrolling Layer"; |
| 1194 } else { | 1208 } else { |
| 1195 ASSERT_NOT_REACHED(); | 1209 ASSERT_NOT_REACHED(); |
| 1196 } | 1210 } |
| 1197 | 1211 |
| 1198 return name; | 1212 return name; |
| 1199 } | 1213 } |
| 1200 | 1214 |
| 1201 } // namespace blink | 1215 } // namespace blink |
| OLD | NEW |