Chromium Code Reviews| Index: cc/layer_tree_host_impl.cc |
| diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
| index 8c2df3c2052a7f927423534bf3c84204da99f5fc..388a78bdec76e86bdc5277f373c85a2f25945a55 100644 |
| --- a/cc/layer_tree_host_impl.cc |
| +++ b/cc/layer_tree_host_impl.cc |
| @@ -12,7 +12,6 @@ |
| #include "cc/damage_tracker.h" |
| #include "cc/debug_rect_history.h" |
| #include "cc/delay_based_time_source.h" |
| -#include "cc/font_atlas.h" |
| #include "cc/frame_rate_counter.h" |
| #include "cc/geometry.h" |
| #include "cc/gl_renderer.h" |
| @@ -402,10 +401,12 @@ bool LayerTreeHostImpl::calculateRenderPasses(FrameData& frame) |
| OcclusionTrackerImpl occlusionTracker(m_rootLayerImpl->renderSurface()->contentRect(), recordMetricsForFrame); |
| occlusionTracker.setMinimumTrackingSize(m_settings.minimumOcclusionTrackingSize); |
| - if (settings().showOccludingRects) |
| - occlusionTracker.setOccludingScreenSpaceRectsContainer(&frame.occludingScreenSpaceRects); |
| - if (settings().showNonOccludingRects) |
| - occlusionTracker.setNonOccludingScreenSpaceRectsContainer(&frame.nonOccludingScreenSpaceRects); |
| + if (m_hudLayerImpl) { |
| + if (m_hudLayerImpl->settings().showOccludingRects) |
| + occlusionTracker.setOccludingScreenSpaceRectsContainer(&frame.occludingScreenSpaceRects); |
| + if (m_hudLayerImpl->settings().showNonOccludingRects) |
| + occlusionTracker.setNonOccludingScreenSpaceRectsContainer(&frame.nonOccludingScreenSpaceRects); |
| + } |
| // Add quads to the Render passes in FrontToBack order to allow for testing occlusion and performing culling during the tree walk. |
| typedef LayerIterator<LayerImpl, std::vector<LayerImpl*>, RenderSurfaceImpl, LayerIteratorActions::FrontToBack> LayerIteratorType; |
| @@ -711,13 +712,13 @@ void LayerTreeHostImpl::drawLayers(const FrameData& frame) |
| // RenderWidget. |
| m_fpsCounter->markBeginningOfFrame(base::TimeTicks::Now()); |
| - if (m_settings.showDebugRects()) |
| - m_debugRectHistory->saveDebugRectsForCurrentFrame(m_rootLayerImpl.get(), *frame.renderSurfaceLayerList, frame.occludingScreenSpaceRects, frame.nonOccludingScreenSpaceRects, settings()); |
| - |
| // Because the contents of the HUD depend on everything else in the frame, the contents |
| // of its texture are updated as the last thing before the frame is drawn. |
| - if (m_hudLayerImpl) |
| + if (m_hudLayerImpl && m_hudLayerImpl->settings().showDebugInfo()) { |
|
egraether
2012/11/20 21:30:30
prevent updating when nothing is displayed.
|
| + if (m_hudLayerImpl->settings().showDebugRects()) |
| + m_debugRectHistory->saveDebugRectsForCurrentFrame(m_rootLayerImpl.get(), *frame.renderSurfaceLayerList, frame.occludingScreenSpaceRects, frame.nonOccludingScreenSpaceRects, m_hudLayerImpl->settings()); |
| m_hudLayerImpl->updateHudTexture(m_resourceProvider.get()); |
| + } |
| m_renderer->drawFrame(frame.renderPasses, frame.renderPassesById); |