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),
37 visible_content_area(0),
38 approximated_visible_content_area(0) {
41 scoped_refptr
<base::debug::ConvertableToTraceFormat
>
42 ImplThreadRenderingStats::AsTraceableData() const {
43 scoped_ptr
<base::DictionaryValue
> record_data(new base::DictionaryValue());
44 record_data
->SetInteger("frame_count", frame_count
);
45 record_data
->SetDouble("rasterize_time", rasterize_time
.InSecondsF());
46 record_data
->SetInteger("rasterized_pixel_count", rasterized_pixel_count
);
47 record_data
->SetInteger("visible_content_area", visible_content_area
);
48 record_data
->SetInteger("approximated_visible_content_area",
49 approximated_visible_content_area
);
50 return TracedValue::FromValue(record_data
.release());
53 void ImplThreadRenderingStats::Add(const ImplThreadRenderingStats
& other
) {
54 frame_count
+= other
.frame_count
;
55 rasterize_time
+= other
.rasterize_time
;
56 analysis_time
+= other
.analysis_time
;
57 rasterized_pixel_count
+= other
.rasterized_pixel_count
;
58 visible_content_area
+= other
.visible_content_area
;
59 approximated_visible_content_area
+= other
.approximated_visible_content_area
;
62 void RenderingStats::Add(const RenderingStats
& other
) {
63 main_stats
.Add(other
.main_stats
);
64 impl_stats
.Add(other
.impl_stats
);