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
3 // found in the LICENSE file.
5 #include "base/values.h"
6 #include "cc/debug/rendering_stats.h"
10 MainThreadRenderingStats::MainThreadRenderingStats()
12 painted_pixel_count(0),
13 recorded_pixel_count(0) {}
15 scoped_refptr<base::debug::ConvertableToTraceFormat>
16 MainThreadRenderingStats::AsTraceableData() const {
17 scoped_ptr<base::DictionaryValue> record_data(new base::DictionaryValue());
18 record_data->SetInteger("frame_count", frame_count);
19 record_data->SetDouble("paint_time", paint_time.InSecondsF());
20 record_data->SetInteger("painted_pixel_count", painted_pixel_count);
21 record_data->SetDouble("record_time", record_time.InSecondsF());
22 record_data->SetInteger("recorded_pixel_count", recorded_pixel_count);
23 return TracedValue::FromValue(record_data.release());
26 void MainThreadRenderingStats::Add(const MainThreadRenderingStats& other) {
27 frame_count += other.frame_count;
28 paint_time += other.paint_time;
29 painted_pixel_count += other.painted_pixel_count;
30 record_time += other.record_time;
31 recorded_pixel_count += other.recorded_pixel_count;
34 ImplThreadRenderingStats::ImplThreadRenderingStats()
36 rasterized_pixel_count(0) {}
38 scoped_refptr<base::debug::ConvertableToTraceFormat>
39 ImplThreadRenderingStats::AsTraceableData() const {
40 scoped_ptr<base::DictionaryValue> record_data(new base::DictionaryValue());
41 record_data->SetInteger("frame_count", frame_count);
42 record_data->SetDouble("rasterize_time", rasterize_time.InSecondsF());
43 record_data->SetInteger("rasterized_pixel_count", rasterized_pixel_count);
44 return TracedValue::FromValue(record_data.release());
47 void ImplThreadRenderingStats::Add(const ImplThreadRenderingStats& other) {
48 frame_count += other.frame_count;
49 rasterize_time += other.rasterize_time;
50 rasterized_pixel_count += other.rasterized_pixel_count;
53 void RenderingStats::EnumerateFields(Enumerator* enumerator) const {
54 enumerator->AddInt64("frameCount",
55 main_stats.frame_count + impl_stats.frame_count);
56 enumerator->AddDouble("paintTime",
57 main_stats.paint_time.InSecondsF());
58 enumerator->AddInt64("paintedPixelCount",
59 main_stats.painted_pixel_count);
60 enumerator->AddDouble("recordTime",
61 main_stats.record_time.InSecondsF());
62 enumerator->AddInt64("recordedPixelCount",
63 main_stats.recorded_pixel_count);
64 enumerator->AddDouble("rasterizeTime",
65 impl_stats.rasterize_time.InSecondsF());
66 enumerator->AddInt64("rasterizedPixelCount",
67 impl_stats.rasterized_pixel_count);
70 void RenderingStats::Add(const RenderingStats& other) {
71 main_stats.Add(other.main_stats);
72 impl_stats.Add(other.impl_stats);