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

Unified Diff: cc/output/begin_frame_args.cc

Issue 267783004: Refactoring the way begin frame sources inside scheduler work. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Very minor fixes. Created 6 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: cc/output/begin_frame_args.cc
diff --git a/cc/output/begin_frame_args.cc b/cc/output/begin_frame_args.cc
index b45eee8c111e504518a90cd02f0f198d84efbe9d..fc7098f4798cb1aefbf763f583da487f0fb5572f 100644
--- a/cc/output/begin_frame_args.cc
+++ b/cc/output/begin_frame_args.cc
@@ -10,23 +10,35 @@
namespace cc {
BeginFrameArgs::BeginFrameArgs()
- : frame_time(base::TimeTicks()),
- deadline(base::TimeTicks()),
- interval(base::TimeDelta::FromMicroseconds(-1)) {
+ : frame_time(base::TimeTicks()),
+ deadline(base::TimeTicks()),
+ interval(base::TimeDelta::FromMicroseconds(-1)),
+ type(BeginFrameArgs::INVALID) {
}
BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time,
base::TimeTicks deadline,
- base::TimeDelta interval)
- : frame_time(frame_time),
- deadline(deadline),
- interval(interval)
-{}
+ base::TimeDelta interval,
+ BeginFrameArgs::BeginFrameArgsType type)
+ : frame_time(frame_time),
+ deadline(deadline),
+ interval(interval),
+ type(type) {
+}
+
+BeginFrameArgs BeginFrameArgs::CreateTyped(
+ base::TimeTicks frame_time,
+ base::TimeTicks deadline,
+ base::TimeDelta interval,
+ BeginFrameArgs::BeginFrameArgsType type) {
+ DCHECK_NE(type, BeginFrameArgs::INVALID);
+ return BeginFrameArgs(frame_time, deadline, interval, type);
+}
BeginFrameArgs BeginFrameArgs::Create(base::TimeTicks frame_time,
base::TimeTicks deadline,
base::TimeDelta interval) {
- return BeginFrameArgs(frame_time, deadline, interval);
+ return CreateTyped(frame_time, deadline, interval, BeginFrameArgs::NORMAL);
}
scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue()
@@ -39,6 +51,20 @@ scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue()
void BeginFrameArgs::AsValueInto(base::debug::TracedValue* state) const {
state->SetString("type", "BeginFrameArgs");
+ switch (type) {
+ case BeginFrameArgs::INVALID:
+ state->SetString("subtype", "INVALID");
+ break;
+ case BeginFrameArgs::NORMAL:
+ state->SetString("subtype", "NORMAL");
+ break;
+ case BeginFrameArgs::SYNCHRONOUS:
+ state->SetString("subtype", "SYNCHRONOUS");
+ break;
+ case BeginFrameArgs::MISSED:
+ state->SetString("subtype", "MISSED");
+ break;
+ }
state->SetDouble("frame_time_us", frame_time.ToInternalValue());
state->SetDouble("deadline_us", deadline.ToInternalValue());
state->SetDouble("interval_us", interval.InMicroseconds());
@@ -50,7 +76,8 @@ BeginFrameArgs BeginFrameArgs::CreateForSynchronousCompositor(
// so we set the deadline to 0 and guess that the interval is 16 milliseconds.
if (now.is_null())
now = gfx::FrameTime::Now();
- return BeginFrameArgs(now, base::TimeTicks(), DefaultInterval());
+ return CreateTyped(
+ now, base::TimeTicks(), DefaultInterval(), BeginFrameArgs::SYNCHRONOUS);
}
// This is a hard-coded deadline adjustment that assumes 60Hz, to be used in

Powered by Google App Engine
This is Rietveld 408576698