| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 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 #ifndef CC_DEBUG_LATENCY_INFO_H_ | |
| 6 #define CC_DEBUG_LATENCY_INFO_H_ | |
| 7 | |
| 8 #include <map> | |
| 9 #include <utility> | |
| 10 | |
| 11 #include "base/basictypes.h" | |
| 12 #include "base/time.h" | |
| 13 #include "cc/base/cc_export.h" | |
| 14 | |
| 15 namespace cc { | |
| 16 | |
| 17 enum LatencyComponentType { | |
| 18 kRendererMainThread, | |
| 19 kRendererImplThread, | |
| 20 kBrowserMainThread, | |
| 21 kBrowserImplThread, | |
| 22 kInputEvent, | |
| 23 }; | |
| 24 | |
| 25 struct CC_EXPORT LatencyInfo { | |
| 26 struct LatencyComponent { | |
| 27 // Nondecreasing number that can be used to determine what events happened | |
| 28 // in the component at the time this struct was sent on to the next | |
| 29 // component. | |
| 30 int64 sequence_number; | |
| 31 // Average time of events that happened in this component. | |
| 32 base::TimeTicks event_time; | |
| 33 // Count of events that happened in this component | |
| 34 uint32 event_count; | |
| 35 }; | |
| 36 | |
| 37 // Map a Latency Component (with a component-specific int64 id) to a | |
| 38 // component info. | |
| 39 typedef std::map<std::pair<LatencyComponentType, int64>, LatencyComponent> | |
| 40 LatencyMap; | |
| 41 | |
| 42 LatencyMap latency_components; | |
| 43 | |
| 44 // This represents the final time that a frame is displayed it. | |
| 45 base::TimeTicks swap_timestamp; | |
| 46 | |
| 47 LatencyInfo(); | |
| 48 | |
| 49 ~LatencyInfo(); | |
| 50 | |
| 51 void MergeWith(const LatencyInfo& other); | |
| 52 | |
| 53 void AddLatencyNumber(LatencyComponentType component, int64 id, | |
| 54 int64 component_sequence_number); | |
| 55 void AddLatencyNumberWithTimestamp(LatencyComponentType component, | |
| 56 int64 id, int64 component_sequence_number, | |
| 57 base::TimeTicks time, | |
| 58 uint32 event_count); | |
| 59 | |
| 60 void Clear(); | |
| 61 }; | |
| 62 | |
| 63 } // namespace cc | |
| 64 | |
| 65 #endif // CC_DEBUG_LATENCY_INFO_H_ | |
| 66 | |
| OLD | NEW |