X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcc%2Foutput%2Fbegin_frame_args.cc;h=fc7098f4798cb1aefbf763f583da487f0fb5572f;hb=1afa4dd80ef85af7c90efaea6959db1d92330844;hp=b45eee8c111e504518a90cd02f0f198d84efbe9d;hpb=90762837333c13ccf56f2ad88e4481fc71e8d281;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/cc/output/begin_frame_args.cc b/src/cc/output/begin_frame_args.cc index b45eee8..fc7098f 100644 --- a/src/cc/output/begin_frame_args.cc +++ b/src/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 BeginFrameArgs::AsValue() @@ -39,6 +51,20 @@ scoped_refptr 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