| Index: cc/debug/rendering_stats.h
|
| diff --git a/cc/debug/rendering_stats.h b/cc/debug/rendering_stats.h
|
| index eb01a571b11359baeb7d436bfd9691cd6d49f7fb..8b9455d3f77974d7d834cfaafb0df03653d51475 100644
|
| --- a/cc/debug/rendering_stats.h
|
| +++ b/cc/debug/rendering_stats.h
|
| @@ -8,55 +8,79 @@
|
| #include "base/basictypes.h"
|
| #include "base/time/time.h"
|
| #include "cc/base/cc_export.h"
|
| +#include "cc/debug/traced_value.h"
|
|
|
| namespace cc {
|
|
|
| -struct CC_EXPORT RenderingStats {
|
| +// In conjunction with EnumerateFields, this allows the embedder to
|
| +// enumerate the values in this structure without
|
| +// having to embed references to its specific member variables. This
|
| +// simplifies the addition of new fields to this type.
|
| +class RenderingStatsEnumerator {
|
| + public:
|
| + virtual void AddInt64(const char* name, int64 value) = 0;
|
| + virtual void AddDouble(const char* name, double value) = 0;
|
| + virtual void AddInt(const char* name, int value) = 0;
|
| + virtual void AddTimeDeltaInSecondsF(const char* name,
|
| + const base::TimeDelta& value) = 0;
|
| +
|
| + protected:
|
| + virtual ~RenderingStatsEnumerator() {}
|
| +};
|
| +
|
| +struct CC_EXPORT MainThreadRenderingStats {
|
| + // Note: when adding new members, please remember to update EnumerateFields
|
| + // and Add in rendering_stats.cc.
|
| +
|
| int64 animation_frame_count;
|
| int64 screen_frame_count;
|
| - int64 dropped_frame_count;
|
| - base::TimeDelta total_paint_time;
|
| - base::TimeDelta total_record_time;
|
| - base::TimeDelta total_rasterize_time;
|
| - base::TimeDelta total_rasterize_time_for_now_bins_on_pending_tree;
|
| - base::TimeDelta total_commit_time;
|
| - base::TimeDelta best_rasterize_time;
|
| - int64 total_commit_count;
|
| - int64 total_pixels_painted;
|
| - int64 total_pixels_recorded;
|
| - int64 total_pixels_rasterized;
|
| - int64 num_impl_thread_scrolls;
|
| - int64 num_main_thread_scrolls;
|
| - int64 num_layers_drawn;
|
| - int64 num_missing_tiles;
|
| - int64 total_deferred_image_decode_count;
|
| - int64 total_deferred_image_cache_hit_count;
|
| - int64 total_image_gathering_count;
|
| - int64 total_tiles_analyzed;
|
| - int64 solid_color_tiles_analyzed;
|
| - base::TimeDelta total_deferred_image_decode_time;
|
| - base::TimeDelta total_image_gathering_time;
|
| - base::TimeDelta total_tile_analysis_time;
|
| + base::TimeDelta paint_time;
|
| + base::TimeDelta record_time;
|
| + base::TimeDelta commit_time;
|
| + int64 commit_count;
|
| + int64 painted_pixel_count;
|
| + int64 recorded_pixel_count;
|
| + int64 image_gathering_count;
|
| + base::TimeDelta image_gathering_time;
|
| +
|
| + MainThreadRenderingStats();
|
| + void EnumerateFields(RenderingStatsEnumerator* enumerator) const;
|
| + scoped_ptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const;
|
| + void Add(const MainThreadRenderingStats& other);
|
| +};
|
| +
|
| +struct CC_EXPORT ImplThreadRenderingStats {
|
| // Note: when adding new members, please remember to update EnumerateFields
|
| // and Add in rendering_stats.cc.
|
|
|
| - RenderingStats();
|
| -
|
| - // In conjunction with EnumerateFields, this allows the embedder to
|
| - // enumerate the values in this structure without
|
| - // having to embed references to its specific member variables. This
|
| - // simplifies the addition of new fields to this type.
|
| - class Enumerator {
|
| - public:
|
| - virtual void AddInt64(const char* name, int64 value) = 0;
|
| - virtual void AddDouble(const char* name, double value) = 0;
|
| - virtual void AddInt(const char* name, int value) = 0;
|
| - virtual void AddTimeDeltaInSecondsF(const char* name,
|
| - const base::TimeDelta& value) = 0;
|
| -
|
| - protected:
|
| - virtual ~Enumerator() {}
|
| - };
|
| + int64 screen_frame_count;
|
| + int64 dropped_frame_count;
|
| + base::TimeDelta rasterize_time;
|
| + base::TimeDelta rasterize_time_for_now_bins_on_pending_tree;
|
| + base::TimeDelta best_rasterize_time;
|
| + int64 rasterized_pixel_count;
|
| + int64 impl_thread_scroll_count;
|
| + int64 main_thread_scroll_count;
|
| + int64 drawn_layer_count;
|
| + int64 missing_tile_count;
|
| + int64 deferred_image_decode_count;
|
| + int64 deferred_image_cache_hit_count;
|
| + int64 tile_analysis_count;
|
| + int64 solid_color_tile_analysis_count;
|
| + base::TimeDelta deferred_image_decode_time;
|
| + base::TimeDelta tile_analysis_time;
|
| +
|
| + ImplThreadRenderingStats();
|
| + void EnumerateFields(RenderingStatsEnumerator* enumerator) const;
|
| + scoped_ptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const;
|
| + void Add(const ImplThreadRenderingStats& other);
|
| +};
|
| +
|
| +struct CC_EXPORT RenderingStats {
|
| + typedef RenderingStatsEnumerator Enumerator;
|
| +
|
| + MainThreadRenderingStats main_stats;
|
| + ImplThreadRenderingStats impl_stats;
|
|
|
| // Outputs the fields in this structure to the provided enumerator.
|
| void EnumerateFields(Enumerator* enumerator) const;
|
|
|