| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/heads_up_display_layer_impl.h" | 5 #include "cc/heads_up_display_layer_impl.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "cc/debug_colors.h" | 10 #include "cc/debug_colors.h" |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 | 208 |
| 209 drawFPSCounterText(canvas, paint, fpsCounter, textBounds); | 209 drawFPSCounterText(canvas, paint, fpsCounter, textBounds); |
| 210 drawFPSCounterGraphAndHistogram(canvas, paint, fpsCounter, graphBounds, hist
ogramBounds); | 210 drawFPSCounterGraphAndHistogram(canvas, paint, fpsCounter, graphBounds, hist
ogramBounds); |
| 211 | 211 |
| 212 return top + height; | 212 return top + height; |
| 213 } | 213 } |
| 214 | 214 |
| 215 void HeadsUpDisplayLayerImpl::drawFPSCounterText(SkCanvas* canvas, SkPaint& pain
t, FrameRateCounter* fpsCounter, SkRect bounds) | 215 void HeadsUpDisplayLayerImpl::drawFPSCounterText(SkCanvas* canvas, SkPaint& pain
t, FrameRateCounter* fpsCounter, SkRect bounds) |
| 216 { | 216 { |
| 217 // Update FPS text - not every frame so text is readable | 217 // Update FPS text - not every frame so text is readable |
| 218 if (base::TimeDelta(fpsCounter->timeStampOfRecentFrame(0) - textUpdateTime).
InSecondsF() > 0.25) { | 218 base::TimeTicks now = base::TimeTicks::Now(); |
| 219 if (base::TimeDelta(now - textUpdateTime).InSecondsF() > 0.25) { |
| 219 m_averageFPS = fpsCounter->getAverageFPS(); | 220 m_averageFPS = fpsCounter->getAverageFPS(); |
| 220 textUpdateTime = fpsCounter->timeStampOfRecentFrame(0); | 221 textUpdateTime = now; |
| 221 } | 222 } |
| 222 | 223 |
| 223 // Draw FPS text. | 224 // Draw FPS text. |
| 224 if (m_fontAtlas.get()) { | 225 if (m_fontAtlas.get()) { |
| 225 std::string fpsText = base::StringPrintf("FPS:%5.1f", m_averageFPS); | 226 std::string fpsText = base::StringPrintf("FPS:%5.1f", m_averageFPS); |
| 226 std::string minMaxText = base::StringPrintf("%.0f-%.0f", std::min( m_min
FPS, m_maxFPS), m_maxFPS); | 227 std::string minMaxText = base::StringPrintf("%.0f-%.0f", std::min( m_min
FPS, m_maxFPS), m_maxFPS); |
| 227 | 228 |
| 228 int minMaxWidth = m_fontAtlas->textSize(minMaxText).width(); | 229 int minMaxWidth = m_fontAtlas->textSize(minMaxText).width(); |
| 229 gfx::Size textArea(bounds.width(), bounds.height()); | 230 gfx::Size textArea(bounds.width(), bounds.height()); |
| 230 | 231 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 253 int x = 0; | 254 int x = 0; |
| 254 SkPath path; | 255 SkPath path; |
| 255 | 256 |
| 256 m_minFPS = std::numeric_limits<double>::max(); | 257 m_minFPS = std::numeric_limits<double>::max(); |
| 257 m_maxFPS = 0; | 258 m_maxFPS = 0; |
| 258 | 259 |
| 259 const int histogramSize = 20; | 260 const int histogramSize = 20; |
| 260 double histogram[histogramSize] = {0}; | 261 double histogram[histogramSize] = {0}; |
| 261 double maxBucketValue = 0; | 262 double maxBucketValue = 0; |
| 262 | 263 |
| 263 for (int i = 1; i < fpsCounter->timeStampHistorySize() - 1; ++i) { | 264 for (size_t i = 1; i < fpsCounter->timeStampHistorySize() - 1; ++i) { |
| 264 base::TimeDelta delta = fpsCounter->timeStampOfRecentFrame(i + 1) - fpsC
ounter->timeStampOfRecentFrame(i); | 265 base::TimeDelta delta = fpsCounter->timeStampOfRecentFrame(i + 1) - fpsC
ounter->timeStampOfRecentFrame(i); |
| 265 | 266 |
| 266 // Skip this particular instantaneous frame rate if it is not likely to
have been valid. | 267 // Skip this particular instantaneous frame rate if it is not likely to
have been valid. |
| 267 if (!fpsCounter->isBadFrameInterval(delta)) { | 268 if (!fpsCounter->isBadFrameInterval(delta)) { |
| 268 | 269 |
| 269 double fps = 1.0 / delta.InSecondsF(); | 270 double fps = 1.0 / delta.InSecondsF(); |
| 270 | 271 |
| 271 m_minFPS = std::min(fps, m_minFPS); | 272 m_minFPS = std::min(fps, m_minFPS); |
| 272 m_maxFPS = std::max(fps, m_maxFPS); | 273 m_maxFPS = std::max(fps, m_maxFPS); |
| 273 | 274 |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 | 385 |
| 385 canvas->restore(); | 386 canvas->restore(); |
| 386 } | 387 } |
| 387 | 388 |
| 388 const char* HeadsUpDisplayLayerImpl::layerTypeAsString() const | 389 const char* HeadsUpDisplayLayerImpl::layerTypeAsString() const |
| 389 { | 390 { |
| 390 return "HeadsUpDisplayLayer"; | 391 return "HeadsUpDisplayLayer"; |
| 391 } | 392 } |
| 392 | 393 |
| 393 } // namespace cc | 394 } // namespace cc |
| OLD | NEW |