| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/layer_impl.h" | 5 #include "cc/layer_impl.h" |
| 6 | 6 |
| 7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
| 9 #include "cc/debug_border_draw_quad.h" | 9 #include "cc/debug_border_draw_quad.h" |
| 10 #include "cc/geometry.h" | 10 #include "cc/geometry.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 , m_drawCheckerboardForMissingTiles(false) | 47 , m_drawCheckerboardForMissingTiles(false) |
| 48 , m_useLCDText(false) | 48 , m_useLCDText(false) |
| 49 , m_drawsContent(false) | 49 , m_drawsContent(false) |
| 50 , m_forceRenderSurface(false) | 50 , m_forceRenderSurface(false) |
| 51 , m_isContainerForFixedPositionLayers(false) | 51 , m_isContainerForFixedPositionLayers(false) |
| 52 , m_fixedToContainerLayer(false) | 52 , m_fixedToContainerLayer(false) |
| 53 , m_renderTarget(0) | 53 , m_renderTarget(0) |
| 54 , m_drawDepth(0) | 54 , m_drawDepth(0) |
| 55 , m_drawOpacity(0) | 55 , m_drawOpacity(0) |
| 56 , m_drawOpacityIsAnimating(false) | 56 , m_drawOpacityIsAnimating(false) |
| 57 , m_debugBorderColor(0) | |
| 58 , m_debugBorderWidth(0) | |
| 59 , m_filter(0) | 57 , m_filter(0) |
| 60 , m_drawTransformIsAnimating(false) | 58 , m_drawTransformIsAnimating(false) |
| 61 , m_screenSpaceTransformIsAnimating(false) | 59 , m_screenSpaceTransformIsAnimating(false) |
| 62 #ifndef NDEBUG | 60 #ifndef NDEBUG |
| 63 , m_betweenWillDrawAndDidDraw(false) | 61 , m_betweenWillDrawAndDidDraw(false) |
| 64 #endif | 62 #endif |
| 65 , m_layerAnimationController(LayerAnimationController::create(this)) | 63 , m_layerAnimationController(LayerAnimationController::create(this)) |
| 66 { | 64 { |
| 67 DCHECK(m_layerId > 0); | 65 DCHECK(m_layerId > 0); |
| 68 } | 66 } |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 } | 137 } |
| 140 | 138 |
| 141 void LayerImpl::didDraw(ResourceProvider*) | 139 void LayerImpl::didDraw(ResourceProvider*) |
| 142 { | 140 { |
| 143 #ifndef NDEBUG | 141 #ifndef NDEBUG |
| 144 DCHECK(m_betweenWillDrawAndDidDraw); | 142 DCHECK(m_betweenWillDrawAndDidDraw); |
| 145 m_betweenWillDrawAndDidDraw = false; | 143 m_betweenWillDrawAndDidDraw = false; |
| 146 #endif | 144 #endif |
| 147 } | 145 } |
| 148 | 146 |
| 147 bool LayerImpl::showDebugBorders() const |
| 148 { |
| 149 if (!m_layerTreeHostImpl) |
| 150 return false; |
| 151 return m_layerTreeHostImpl->settings().showDebugBorders; |
| 152 } |
| 153 |
| 154 void LayerImpl::getDebugBorderProperties(SkColor* color, float* width) const |
| 155 { |
| 156 if (m_drawsContent) { |
| 157 // Non-tiled content layers are green. |
| 158 *color = SkColorSetARGB(128, 0, 128, 32); |
| 159 *width = 2; |
| 160 return; |
| 161 } |
| 162 |
| 163 if (m_masksToBounds) { |
| 164 // Masking layers are pale blue. |
| 165 *color = SkColorSetARGB(48, 128, 255, 255); |
| 166 *width = 20; |
| 167 return; |
| 168 } |
| 169 |
| 170 // Other container layers are yellow. |
| 171 *color = SkColorSetARGB(192, 255, 255, 0); |
| 172 *width = 2; |
| 173 } |
| 174 |
| 149 void LayerImpl::appendDebugBorderQuad(QuadSink& quadList, const SharedQuadState*
sharedQuadState, AppendQuadsData& appendQuadsData) const | 175 void LayerImpl::appendDebugBorderQuad(QuadSink& quadList, const SharedQuadState*
sharedQuadState, AppendQuadsData& appendQuadsData) const |
| 150 { | 176 { |
| 151 if (!hasDebugBorders()) | 177 if (!showDebugBorders()) |
| 152 return; | 178 return; |
| 153 | 179 |
| 180 SkColor color; |
| 181 float width; |
| 182 getDebugBorderProperties(&color, &width); |
| 183 |
| 154 gfx::Rect contentRect(gfx::Point(), contentBounds()); | 184 gfx::Rect contentRect(gfx::Point(), contentBounds()); |
| 155 quadList.append(DebugBorderDrawQuad::create(sharedQuadState, contentRect, de
bugBorderColor(), debugBorderWidth()).PassAs<DrawQuad>(), appendQuadsData); | 185 quadList.append(DebugBorderDrawQuad::create(sharedQuadState, contentRect, co
lor, width).PassAs<DrawQuad>(), appendQuadsData); |
| 156 } | 186 } |
| 157 | 187 |
| 158 bool LayerImpl::hasContributingDelegatedRenderPasses() const | 188 bool LayerImpl::hasContributingDelegatedRenderPasses() const |
| 159 { | 189 { |
| 160 return false; | 190 return false; |
| 161 } | 191 } |
| 162 | 192 |
| 163 RenderPass::Id LayerImpl::firstContributingRenderPassId() const | 193 RenderPass::Id LayerImpl::firstContributingRenderPassId() const |
| 164 { | 194 { |
| 165 return RenderPass::Id(0, 0); | 195 return RenderPass::Id(0, 0); |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 | 610 |
| 581 m_transform = transform; | 611 m_transform = transform; |
| 582 m_layerSurfacePropertyChanged = true; | 612 m_layerSurfacePropertyChanged = true; |
| 583 } | 613 } |
| 584 | 614 |
| 585 bool LayerImpl::transformIsAnimating() const | 615 bool LayerImpl::transformIsAnimating() const |
| 586 { | 616 { |
| 587 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Tran
sform); | 617 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Tran
sform); |
| 588 } | 618 } |
| 589 | 619 |
| 590 void LayerImpl::setDebugBorderColor(SkColor debugBorderColor) | |
| 591 { | |
| 592 if (m_debugBorderColor == debugBorderColor) | |
| 593 return; | |
| 594 | |
| 595 m_debugBorderColor = debugBorderColor; | |
| 596 m_layerPropertyChanged = true; | |
| 597 } | |
| 598 | |
| 599 void LayerImpl::setDebugBorderWidth(float debugBorderWidth) | |
| 600 { | |
| 601 if (m_debugBorderWidth == debugBorderWidth) | |
| 602 return; | |
| 603 | |
| 604 m_debugBorderWidth = debugBorderWidth; | |
| 605 m_layerPropertyChanged = true; | |
| 606 } | |
| 607 | |
| 608 bool LayerImpl::hasDebugBorders() const | |
| 609 { | |
| 610 return SkColorGetA(m_debugBorderColor) && debugBorderWidth() > 0; | |
| 611 } | |
| 612 | |
| 613 void LayerImpl::setContentBounds(const gfx::Size& contentBounds) | 620 void LayerImpl::setContentBounds(const gfx::Size& contentBounds) |
| 614 { | 621 { |
| 615 if (m_contentBounds == contentBounds) | 622 if (m_contentBounds == contentBounds) |
| 616 return; | 623 return; |
| 617 | 624 |
| 618 m_contentBounds = contentBounds; | 625 m_contentBounds = contentBounds; |
| 619 m_layerPropertyChanged = true; | 626 m_layerPropertyChanged = true; |
| 620 } | 627 } |
| 621 | 628 |
| 622 void LayerImpl::setContentsScale(float contentsScaleX, float contentsScaleY) | 629 void LayerImpl::setContentsScale(float contentsScaleX, float contentsScaleY) |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 | 712 |
| 706 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer) | 713 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer) |
| 707 { | 714 { |
| 708 if (!m_scrollbarAnimationController) | 715 if (!m_scrollbarAnimationController) |
| 709 m_scrollbarAnimationController = ScrollbarAnimationController::create(th
is); | 716 m_scrollbarAnimationController = ScrollbarAnimationController::create(th
is); |
| 710 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); | 717 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); |
| 711 m_scrollbarAnimationController->updateScrollOffset(this); | 718 m_scrollbarAnimationController->updateScrollOffset(this); |
| 712 } | 719 } |
| 713 | 720 |
| 714 } // namespace cc | 721 } // namespace cc |
| OLD | NEW |