OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2014 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. | |
4 | |
5 #include "cc/debug/performance_draw_timing_counter.h" | |
6 | |
7 #include <algorithm> | |
8 #include <limits> | |
9 | |
10 #include "base/metrics/histogram.h" | |
11 #include "cc/trees/proxy.h" | |
12 | |
13 namespace cc { | |
14 | |
15 // static | |
16 scoped_ptr<PerformanceDrawTimingCounter> | |
17 PerformanceDrawTimingCounter::Create() { | |
18 return make_scoped_ptr(new PerformanceDrawTimingCounter); | |
19 } | |
20 | |
21 PerformanceDrawTimingCounter::PerformanceDrawTimingCounter() { | |
22 } | |
23 | |
24 void PerformanceDrawTimingCounter::SaveTimeStamp(int frame_id, int64_t rect_id, | |
25 base::TimeTicks timestamp) { | |
26 struct DrawEvent drawEvent(frame_id, rect_id, timestamp); | |
27 ring_buffer_.SaveToBuffer(drawEvent); | |
28 } | |
29 | |
30 void PerformanceDrawTimingCounter::SaveTimeStamps(base::TimeTicks timestamp, | |
31 const std::vector<std::pair<int, int64_t> > &frame_ids) { | |
32 for (std::vector<std::pair<int, int64_t> >::const_iterator it = | |
33 frame_ids.begin(); it != frame_ids.end(); ++it) { | |
34 struct DrawEvent drawEvent(it->first, it->second, timestamp); | |
enne (OOO)
2014/07/22 20:44:24
style nit: draw_event, no struct
bikeshed: Maybe
Mike B
2014/07/25 23:09:40
Done.
| |
35 ring_buffer_.SaveToBuffer(drawEvent); | |
36 } | |
37 } | |
38 | |
39 scoped_ptr<DrawTimingSet> PerformanceDrawTimingCounter::getDrawTimingCounts() { | |
40 typedef base::hash_map | |
41 <int64_t, std::vector<std::pair<int, base::TimeTicks> > > DrawsByRectId; | |
42 DrawsByRectId id_map; | |
43 for (RingBufferType::Iterator it = begin(); it; ++it) { | |
44 id_map[it->rect_id_].push_back(std::make_pair(it->frame_id_, | |
45 it->timestamp_)); | |
46 } | |
47 scoped_ptr<DrawTimingSet> draws_info(new DrawTimingSet); | |
48 for (DrawsByRectId::iterator id = id_map.begin(); id != id_map.end(); ++id) { | |
49 LayerTreeHostCommon::DrawTimingInfo draw; | |
50 draw.rect_id = id->first; | |
51 draw.timestamps = id->second; | |
52 std::sort(draw.timestamps.begin(), draw.timestamps.end()); | |
53 draws_info->draws.push_back(draw); | |
54 } | |
55 return draws_info.Pass(); | |
56 } | |
57 | |
58 } // namespace cc | |
OLD | NEW |