Chromium Code Reviews| Index: cc/rendering_stats_recorder.h |
| diff --git a/cc/rendering_stats_recorder.h b/cc/rendering_stats_recorder.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a10d9e919baae0a55e2f24100e7468e0053537c3 |
| --- /dev/null |
| +++ b/cc/rendering_stats_recorder.h |
| @@ -0,0 +1,68 @@ |
| +// Copyright 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CC_RENDERING_STATS_RECORDER_H_ |
| +#define CC_RENDERING_STATS_RECORDER_H_ |
| + |
| +#include "base/memory/scoped_ptr.h" |
| +#include "base/synchronization/lock.h" |
| +#include "cc/rendering_stats.h" |
| + |
| +namespace cc { |
| + |
| +// RenderingStatsRecorder is shared among threads and manages conditional |
| +// recording of rendering stats into a private RenderingStats instance. |
| +class CC_EXPORT RenderingStatsRecorder { |
|
egraether
2013/03/12 19:31:42
Nat suggested to name the class RenderingStatsInst
danakj
2013/03/13 17:25:41
I'm okay with either, so I think go with Nat's pre
egraether
2013/03/14 18:58:07
Done.
|
| + public: |
| + static scoped_ptr<RenderingStatsRecorder> create(); |
| + |
| + RenderingStats GetRenderingStats(); |
| + |
| + // Read and write access to the record_rendering_stats_ flag is not locked to |
| + // improve performance. The flag is commonly turned off and hardly changes |
| + // it's value during runtime. |
| + bool record_rendering_stats() const; |
| + void set_record_rendering_stats(bool record_rendering_stats); |
| + |
| + base::TimeTicks StartRecording() const; |
| + base::TimeDelta EndRecording(base::TimeTicks start_time) const; |
| + |
| + // TODO: Remove after switching Layer::update() to use this class. |
| + // Used in LayerTreeHost::paintLayerContents(). |
| + void AddStats(const RenderingStats& other); |
| + |
| + void IncrementAnimationFrameCount(); |
| + void SetScreenAndDroppedFrameCount(int64 screen_total, int64 dropped_total); |
| + |
| + void AddCommit(base::TimeDelta duration); |
| + void AddPaint(base::TimeDelta duration, int64 pixels); |
| + void AddRaster(base::TimeDelta duration, |
| + int64 pixels, |
| + bool is_in_pending_tree_now_bin); |
| + |
| + void IncrementImplThreadScrolls(); |
| + void IncrementMainThreadScrolls(); |
| + |
| + void AddLayersDrawn(int64 amount); |
| + void AddMissingTiles(int64 amount); |
| + |
| + void AddDeferredImageDecode(base::TimeDelta duration); |
| + void AddImageGathering(base::TimeDelta duration); |
| + |
| + void IncrementDeferredImageCacheHitCount(); |
| + |
| + private: |
| + RenderingStatsRecorder(); |
| + |
| + RenderingStats rendering_stats_; |
| + bool record_rendering_stats_; |
| + |
| + base::Lock lock_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(RenderingStatsRecorder); |
| +}; |
| + |
| +} // namespace cc |
| + |
| +#endif // CC_RENDERING_STATS_RECORDER_H_ |