Chromium Code Reviews| 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_tree_host_impl.h" | 5 #include "cc/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 152 , m_memoryHistory(MemoryHistory::create()) | 152 , m_memoryHistory(MemoryHistory::create()) |
| 153 , m_debugRectHistory(DebugRectHistory::create()) | 153 , m_debugRectHistory(DebugRectHistory::create()) |
| 154 , m_numImplThreadScrolls(0) | 154 , m_numImplThreadScrolls(0) |
| 155 , m_numMainThreadScrolls(0) | 155 , m_numMainThreadScrolls(0) |
| 156 , m_cumulativeNumLayersDrawn(0) | 156 , m_cumulativeNumLayersDrawn(0) |
| 157 , m_cumulativeNumMissingTiles(0) | 157 , m_cumulativeNumMissingTiles(0) |
| 158 , m_lastSentMemoryVisibleBytes(0) | 158 , m_lastSentMemoryVisibleBytes(0) |
| 159 , m_lastSentMemoryVisibleAndNearbyBytes(0) | 159 , m_lastSentMemoryVisibleAndNearbyBytes(0) |
| 160 , m_lastSentMemoryUseBytes(0) | 160 , m_lastSentMemoryUseBytes(0) |
| 161 , m_animationRegistrar(AnimationRegistrar::create()) | 161 , m_animationRegistrar(AnimationRegistrar::create()) |
| 162 , m_hardcodedScrollbar(this) | |
| 162 { | 163 { |
| 163 DCHECK(m_proxy->isImplThread()); | 164 DCHECK(m_proxy->isImplThread()); |
| 164 didVisibilityChange(this, m_visible); | 165 didVisibilityChange(this, m_visible); |
| 165 | 166 |
| 166 if (settings.calculateTopControlsPosition) | 167 if (settings.calculateTopControlsPosition) |
| 167 m_topControlsManager = TopControlsManager::Create(this, settings.topCont rolsHeight); | 168 m_topControlsManager = TopControlsManager::Create(this, settings.topCont rolsHeight); |
| 168 | 169 |
| 169 // LTHI always has an active tree. | 170 // LTHI always has an active tree. |
| 170 m_activeTree = LayerTreeImpl::create(this); | 171 m_activeTree = LayerTreeImpl::create(this); |
| 171 } | 172 } |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 237 return m_outputSurface.get(); | 238 return m_outputSurface.get(); |
| 238 } | 239 } |
| 239 | 240 |
| 240 void LayerTreeHostImpl::animate(base::TimeTicks monotonicTime, base::Time wallCl ockTime) | 241 void LayerTreeHostImpl::animate(base::TimeTicks monotonicTime, base::Time wallCl ockTime) |
| 241 { | 242 { |
| 242 animatePageScale(monotonicTime); | 243 animatePageScale(monotonicTime); |
| 243 animateLayers(monotonicTime, wallClockTime); | 244 animateLayers(monotonicTime, wallClockTime); |
| 244 animateScrollbars(monotonicTime); | 245 animateScrollbars(monotonicTime); |
| 245 if (m_topControlsManager) | 246 if (m_topControlsManager) |
| 246 m_topControlsManager->Animate(monotonicTime); | 247 m_topControlsManager->Animate(monotonicTime); |
| 248 m_hardcodedScrollbar.Animate(monotonicTime); | |
|
danakj
2013/02/05 17:55:02
why isn't this in animateScrollbars?
| |
| 247 } | 249 } |
| 248 | 250 |
| 249 void LayerTreeHostImpl::manageTiles() | 251 void LayerTreeHostImpl::manageTiles() |
| 250 { | 252 { |
| 251 DCHECK(m_tileManager); | 253 DCHECK(m_tileManager); |
| 252 m_tileManager->ManageTiles(); | 254 m_tileManager->ManageTiles(); |
| 253 | 255 |
| 254 size_t memoryRequiredBytes; | 256 size_t memoryRequiredBytes; |
| 255 size_t memoryNiceToHaveBytes; | 257 size_t memoryNiceToHaveBytes; |
| 256 size_t memoryUsedBytes; | 258 size_t memoryUsedBytes; |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 520 != frame.renderPassesById.end()); | 522 != frame.renderPassesById.end()); |
| 521 } | 523 } |
| 522 #endif | 524 #endif |
| 523 DCHECK(frame.renderPasses.back()->output_rect.origin().IsOrigin()); | 525 DCHECK(frame.renderPasses.back()->output_rect.origin().IsOrigin()); |
| 524 | 526 |
| 525 if (!activeTree()->has_transparent_background()) { | 527 if (!activeTree()->has_transparent_background()) { |
| 526 frame.renderPasses.back()->has_transparent_background = false; | 528 frame.renderPasses.back()->has_transparent_background = false; |
| 527 appendQuadsToFillScreen(frame.renderPasses.back(), rootLayer(), activeTr ee()->background_color(), occlusionTracker); | 529 appendQuadsToFillScreen(frame.renderPasses.back(), rootLayer(), activeTr ee()->background_color(), occlusionTracker); |
| 528 } | 530 } |
| 529 | 531 |
| 532 m_hardcodedScrollbar.PrependQuads(frame.renderPasses.back()); | |
| 533 | |
| 530 if (drawFrame) | 534 if (drawFrame) |
| 531 occlusionTracker.overdrawMetrics().recordMetrics(this); | 535 occlusionTracker.overdrawMetrics().recordMetrics(this); |
| 532 | 536 |
| 533 removeRenderPasses(CullRenderPassesWithNoQuads(), frame); | 537 removeRenderPasses(CullRenderPassesWithNoQuads(), frame); |
| 534 m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses); | 538 m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses); |
| 535 removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame); | 539 removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame); |
| 536 | 540 |
| 537 return drawFrame; | 541 return drawFrame; |
| 538 } | 542 } |
| 539 | 543 |
| (...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1327 pendingDelta = MathUtil::projectVector(pendingDelta, perpendicularAxis); | 1331 pendingDelta = MathUtil::projectVector(pendingDelta, perpendicularAxis); |
| 1328 | 1332 |
| 1329 if (gfx::ToFlooredVector2d(pendingDelta).IsZero()) | 1333 if (gfx::ToFlooredVector2d(pendingDelta).IsZero()) |
| 1330 break; | 1334 break; |
| 1331 } | 1335 } |
| 1332 | 1336 |
| 1333 if (didScroll) { | 1337 if (didScroll) { |
| 1334 m_client->setNeedsCommitOnImplThread(); | 1338 m_client->setNeedsCommitOnImplThread(); |
| 1335 m_client->setNeedsRedrawOnImplThread(); | 1339 m_client->setNeedsRedrawOnImplThread(); |
| 1336 m_client->renewTreePriority(); | 1340 m_client->renewTreePriority(); |
| 1341 m_hardcodedScrollbar.DidUpdateScrollOffset(base::TimeTicks::Now()); | |
| 1337 } | 1342 } |
| 1338 return didScroll; | 1343 return didScroll; |
| 1339 } | 1344 } |
| 1340 | 1345 |
| 1341 void LayerTreeHostImpl::clearCurrentlyScrollingLayer() | 1346 void LayerTreeHostImpl::clearCurrentlyScrollingLayer() |
| 1342 { | 1347 { |
| 1343 m_activeTree->ClearCurrentlyScrollingLayer(); | 1348 m_activeTree->ClearCurrentlyScrollingLayer(); |
| 1344 m_didLockScrollingLayer = false; | 1349 m_didLockScrollingLayer = false; |
| 1345 } | 1350 } |
| 1346 | 1351 |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 1376 | 1381 |
| 1377 m_previousPinchAnchor = anchor; | 1382 m_previousPinchAnchor = anchor; |
| 1378 | 1383 |
| 1379 if (m_settings.pageScalePinchZoomEnabled) | 1384 if (m_settings.pageScalePinchZoomEnabled) |
| 1380 move.Scale(1 / activeTree()->page_scale_factor()); | 1385 move.Scale(1 / activeTree()->page_scale_factor()); |
| 1381 | 1386 |
| 1382 rootScrollLayer()->scrollBy(move); | 1387 rootScrollLayer()->scrollBy(move); |
| 1383 | 1388 |
| 1384 if (rootScrollLayer()->scrollbarAnimationController()) | 1389 if (rootScrollLayer()->scrollbarAnimationController()) |
| 1385 rootScrollLayer()->scrollbarAnimationController()->didPinchGestureUpdate (base::TimeTicks::Now()); | 1390 rootScrollLayer()->scrollbarAnimationController()->didPinchGestureUpdate (base::TimeTicks::Now()); |
| 1391 m_hardcodedScrollbar.DidPinchGestureUpdate(base::TimeTicks::Now()); | |
| 1386 | 1392 |
| 1387 m_client->setNeedsCommitOnImplThread(); | 1393 m_client->setNeedsCommitOnImplThread(); |
| 1388 m_client->setNeedsRedrawOnImplThread(); | 1394 m_client->setNeedsRedrawOnImplThread(); |
| 1389 m_client->renewTreePriority(); | 1395 m_client->renewTreePriority(); |
| 1390 } | 1396 } |
| 1391 | 1397 |
| 1392 void LayerTreeHostImpl::pinchGestureEnd() | 1398 void LayerTreeHostImpl::pinchGestureEnd() |
| 1393 { | 1399 { |
| 1394 m_pinchGestureActive = false; | 1400 m_pinchGestureActive = false; |
| 1395 | 1401 |
| 1396 if (rootScrollLayer() && rootScrollLayer()->scrollbarAnimationController()) | 1402 if (rootScrollLayer() && rootScrollLayer()->scrollbarAnimationController()) |
| 1397 rootScrollLayer()->scrollbarAnimationController()->didPinchGestureEnd(ba se::TimeTicks::Now()); | 1403 rootScrollLayer()->scrollbarAnimationController()->didPinchGestureEnd(ba se::TimeTicks::Now()); |
| 1404 m_hardcodedScrollbar.DidPinchGestureEnd(base::TimeTicks::Now()); | |
| 1398 | 1405 |
| 1399 m_client->setNeedsCommitOnImplThread(); | 1406 m_client->setNeedsCommitOnImplThread(); |
| 1400 } | 1407 } |
| 1401 | 1408 |
| 1402 void LayerTreeHostImpl::computeDoubleTapZoomDeltas(ScrollAndScaleSet* scrollInfo ) | 1409 void LayerTreeHostImpl::computeDoubleTapZoomDeltas(ScrollAndScaleSet* scrollInfo ) |
| 1403 { | 1410 { |
| 1404 gfx::Vector2dF scaledScrollOffset = m_pageScaleAnimation->targetScrollOffset (); | 1411 gfx::Vector2dF scaledScrollOffset = m_pageScaleAnimation->targetScrollOffset (); |
| 1405 if (!m_settings.pageScalePinchZoomEnabled) | 1412 if (!m_settings.pageScalePinchZoomEnabled) |
| 1406 scaledScrollOffset.Scale(activeTree()->page_scale_factor()); | 1413 scaledScrollOffset.Scale(activeTree()->page_scale_factor()); |
| 1407 makeScrollAndScaleSet(scrollInfo, ToFlooredVector2d(scaledScrollOffset), m_p ageScaleAnimation->targetPageScaleFactor()); | 1414 makeScrollAndScaleSet(scrollInfo, ToFlooredVector2d(scaledScrollOffset), m_p ageScaleAnimation->targetPageScaleFactor()); |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1713 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); | 1720 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); |
| 1714 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); | 1721 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); |
| 1715 } | 1722 } |
| 1716 | 1723 |
| 1717 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) | 1724 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) |
| 1718 { | 1725 { |
| 1719 m_paintTimeCounter->SavePaintTime(totalPaintTime); | 1726 m_paintTimeCounter->SavePaintTime(totalPaintTime); |
| 1720 } | 1727 } |
| 1721 | 1728 |
| 1722 } // namespace cc | 1729 } // namespace cc |
| OLD | NEW |