Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(719)

Side by Side Diff: cc/output/begin_frame_args.cc

Issue 2493853002: cc/blimp: Proto Cleanup. (Closed)
Patch Set: Rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/begin_frame_args.h ('k') | cc/output/begin_frame_args_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/begin_frame_args.h" 5 #include "cc/output/begin_frame_args.h"
6 6
7 #include "base/trace_event/trace_event_argument.h" 7 #include "base/trace_event/trace_event_argument.h"
8 #include "cc/proto/base_conversions.h" 8 #include "cc/proto/base_conversions.h"
9 #include "cc/proto/begin_main_frame_and_commit_state.pb.h"
10 9
11 namespace cc { 10 namespace cc {
12 11
13 const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) { 12 const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) {
14 switch (type) { 13 switch (type) {
15 case BeginFrameArgs::INVALID: 14 case BeginFrameArgs::INVALID:
16 return "INVALID"; 15 return "INVALID";
17 case BeginFrameArgs::NORMAL: 16 case BeginFrameArgs::NORMAL:
18 return "NORMAL"; 17 return "NORMAL";
19 case BeginFrameArgs::MISSED: 18 case BeginFrameArgs::MISSED:
20 return "MISSED"; 19 return "MISSED";
21 case BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX: 20 case BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX:
22 return "BEGIN_FRAME_ARGS_TYPE_MAX"; 21 return "BEGIN_FRAME_ARGS_TYPE_MAX";
23 } 22 }
24 NOTREACHED(); 23 NOTREACHED();
25 return "???"; 24 return "???";
26 } 25 }
27 26
28 void BeginFrameArgs::BeginFrameArgsTypeToProtobuf(
29 proto::BeginFrameArgs* proto) const {
30 switch (type) {
31 case BeginFrameArgs::INVALID:
32 proto->set_type(proto::BeginFrameArgs::INVALID);
33 return;
34 case BeginFrameArgs::NORMAL:
35 proto->set_type(proto::BeginFrameArgs::NORMAL);
36 return;
37 case BeginFrameArgs::MISSED:
38 proto->set_type(proto::BeginFrameArgs::MISSED);
39 return;
40 case BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX:
41 proto->set_type(proto::BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX);
42 return;
43 }
44 NOTREACHED();
45 }
46
47 void BeginFrameArgs::BeginFrameArgsTypeFromProtobuf(
48 const proto::BeginFrameArgs& proto) {
49 switch (proto.type()) {
50 case proto::BeginFrameArgs::INVALID:
51 type = BeginFrameArgs::INVALID;
52 return;
53 case proto::BeginFrameArgs::NORMAL:
54 type = BeginFrameArgs::NORMAL;
55 return;
56 case proto::BeginFrameArgs::MISSED:
57 type = BeginFrameArgs::MISSED;
58 return;
59 case proto::BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX:
60 type = BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX;
61 return;
62 }
63 NOTREACHED();
64 }
65
66 BeginFrameArgs::BeginFrameArgs() 27 BeginFrameArgs::BeginFrameArgs()
67 : frame_time(base::TimeTicks()), 28 : frame_time(base::TimeTicks()),
68 deadline(base::TimeTicks()), 29 deadline(base::TimeTicks()),
69 interval(base::TimeDelta::FromMicroseconds(-1)), 30 interval(base::TimeDelta::FromMicroseconds(-1)),
70 type(BeginFrameArgs::INVALID), 31 type(BeginFrameArgs::INVALID),
71 on_critical_path(true) { 32 on_critical_path(true) {
72 } 33 }
73 34
74 BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time, 35 BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time,
75 base::TimeTicks deadline, 36 base::TimeTicks deadline,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 state->SetString("subtype", TypeToString(type)); 72 state->SetString("subtype", TypeToString(type));
112 state->SetDouble("frame_time_us", frame_time.ToInternalValue()); 73 state->SetDouble("frame_time_us", frame_time.ToInternalValue());
113 state->SetDouble("deadline_us", deadline.ToInternalValue()); 74 state->SetDouble("deadline_us", deadline.ToInternalValue());
114 state->SetDouble("interval_us", interval.InMicroseconds()); 75 state->SetDouble("interval_us", interval.InMicroseconds());
115 #ifndef NDEBUG 76 #ifndef NDEBUG
116 state->SetString("created_from", created_from.ToString()); 77 state->SetString("created_from", created_from.ToString());
117 #endif 78 #endif
118 state->SetBoolean("on_critical_path", on_critical_path); 79 state->SetBoolean("on_critical_path", on_critical_path);
119 } 80 }
120 81
121 void BeginFrameArgs::ToProtobuf(proto::BeginFrameArgs* proto) const {
122 proto->set_frame_time(TimeTicksToProto(frame_time));
123 proto->set_deadline(TimeTicksToProto(deadline));
124 proto->set_interval(interval.ToInternalValue());
125 BeginFrameArgsTypeToProtobuf(proto);
126 proto->set_on_critical_path(on_critical_path);
127 }
128
129 void BeginFrameArgs::FromProtobuf(const proto::BeginFrameArgs& proto) {
130 frame_time = ProtoToTimeTicks(proto.frame_time());
131 deadline = ProtoToTimeTicks(proto.deadline());
132 interval = base::TimeDelta::FromInternalValue(proto.interval());
133 BeginFrameArgsTypeFromProtobuf(proto);
134 on_critical_path = proto.on_critical_path();
135 }
136
137 // This is a hard-coded deadline adjustment that assumes 60Hz, to be used in 82 // This is a hard-coded deadline adjustment that assumes 60Hz, to be used in
138 // cases where a good estimated draw time is not known. Using 1/3 of the vsync 83 // cases where a good estimated draw time is not known. Using 1/3 of the vsync
139 // as the default adjustment gives the Browser the last 1/3 of a frame to 84 // as the default adjustment gives the Browser the last 1/3 of a frame to
140 // produce output, the Renderer Impl thread the middle 1/3 of a frame to produce 85 // produce output, the Renderer Impl thread the middle 1/3 of a frame to produce
141 // ouput, and the Renderer Main thread the first 1/3 of a frame to produce 86 // ouput, and the Renderer Main thread the first 1/3 of a frame to produce
142 // output. 87 // output.
143 base::TimeDelta BeginFrameArgs::DefaultEstimatedParentDrawTime() { 88 base::TimeDelta BeginFrameArgs::DefaultEstimatedParentDrawTime() {
144 return base::TimeDelta::FromMicroseconds(16666 / 3); 89 return base::TimeDelta::FromMicroseconds(16666 / 3);
145 } 90 }
146 91
147 base::TimeDelta BeginFrameArgs::DefaultInterval() { 92 base::TimeDelta BeginFrameArgs::DefaultInterval() {
148 return base::TimeDelta::FromMicroseconds(16666); 93 return base::TimeDelta::FromMicroseconds(16666);
149 } 94 }
150 95
151 } // namespace cc 96 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/begin_frame_args.h ('k') | cc/output/begin_frame_args_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698