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); |