diff options
author | mithro <mithro@mithis.com> | 2014-11-21 07:13:49 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-21 15:14:05 +0000 |
commit | bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4 (patch) | |
tree | 4bc4d3364b2f5fc8bf94bf8d4d10abe0d87bf991 /cc/output | |
parent | 9b471ee091c4bc68695e845e0f4482c1d0bde38c (diff) | |
download | chromium_src-bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4.zip chromium_src-bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4.tar.gz chromium_src-bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4.tar.bz2 |
cc: Small BeginFrameArgs cleanup.
* Rename BeginFrameArgs::CreateTyped to BeginFrameArgs::Create and remove
other versions.
* The other constructors where not used anywhere.
* The non-typed version was accidentally being used to create a SYNCHRONOUS
BeginFrameArgs.
* Fixed testing methods to understand type information.
* Create method for converting the type enum to string.
BUG=346230
Review URL: https://codereview.chromium.org/742683002
Cr-Commit-Position: refs/heads/master@{#305218}
Diffstat (limited to 'cc/output')
-rw-r--r-- | cc/output/begin_frame_args.cc | 55 | ||||
-rw-r--r-- | cc/output/begin_frame_args.h | 10 | ||||
-rw-r--r-- | cc/output/begin_frame_args_unittest.cc | 35 |
3 files changed, 46 insertions, 54 deletions
diff --git a/cc/output/begin_frame_args.cc b/cc/output/begin_frame_args.cc index fc7098f..0be9318 100644 --- a/cc/output/begin_frame_args.cc +++ b/cc/output/begin_frame_args.cc @@ -9,6 +9,21 @@ namespace cc { +const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) { + switch (type) { + case BeginFrameArgs::INVALID: + return "INVALID"; + case BeginFrameArgs::NORMAL: + return "NORMAL"; + case BeginFrameArgs::SYNCHRONOUS: + return "SYNCHRONOUS"; + case BeginFrameArgs::MISSED: + return "MISSED"; + } + NOTREACHED(); + return "???"; +} + BeginFrameArgs::BeginFrameArgs() : frame_time(base::TimeTicks()), deadline(base::TimeTicks()), @@ -26,19 +41,12 @@ BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time, 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 CreateTyped(frame_time, deadline, interval, BeginFrameArgs::NORMAL); + base::TimeDelta interval, + BeginFrameArgs::BeginFrameArgsType type) { + DCHECK_NE(type, BeginFrameArgs::INVALID); + return BeginFrameArgs(frame_time, deadline, interval, type); } scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue() @@ -51,35 +59,12 @@ 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->SetString("subtype", TypeToString(type)); state->SetDouble("frame_time_us", frame_time.ToInternalValue()); state->SetDouble("deadline_us", deadline.ToInternalValue()); state->SetDouble("interval_us", interval.InMicroseconds()); } -BeginFrameArgs BeginFrameArgs::CreateForSynchronousCompositor( - base::TimeTicks now) { - // For WebView/SynchronousCompositor, we always want to draw immediately, - // so we set the deadline to 0 and guess that the interval is 16 milliseconds. - if (now.is_null()) - now = gfx::FrameTime::Now(); - return CreateTyped( - now, base::TimeTicks(), DefaultInterval(), BeginFrameArgs::SYNCHRONOUS); -} - // This is a hard-coded deadline adjustment that assumes 60Hz, to be used in // cases where a good estimated draw time is not known. Using 1/3 of the vsync // as the default adjustment gives the Browser the last 1/3 of a frame to diff --git a/cc/output/begin_frame_args.h b/cc/output/begin_frame_args.h index c35a500..0be5241 100644 --- a/cc/output/begin_frame_args.h +++ b/cc/output/begin_frame_args.h @@ -26,6 +26,7 @@ struct CC_EXPORT BeginFrameArgs { SYNCHRONOUS, MISSED, }; + static const char* TypeToString(BeginFrameArgsType type); // Creates an invalid set of values. BeginFrameArgs(); @@ -34,13 +35,8 @@ struct CC_EXPORT BeginFrameArgs { // created by searching for "BeginFrameArgs::Create". static BeginFrameArgs Create(base::TimeTicks frame_time, base::TimeTicks deadline, - base::TimeDelta interval); - static BeginFrameArgs CreateTyped(base::TimeTicks frame_time, - base::TimeTicks deadline, - base::TimeDelta interval, - BeginFrameArgsType type); - static BeginFrameArgs CreateForSynchronousCompositor( - base::TimeTicks now = base::TimeTicks()); + base::TimeDelta interval, + BeginFrameArgsType type); // This is the default delta that will be used to adjust the deadline when // proper draw-time estimations are not yet available. diff --git a/cc/output/begin_frame_args_unittest.cc b/cc/output/begin_frame_args_unittest.cc index e0c8b3e..9d77a45d 100644 --- a/cc/output/begin_frame_args_unittest.cc +++ b/cc/output/begin_frame_args_unittest.cc @@ -26,15 +26,29 @@ TEST(BeginFrameArgsTest, Helpers) { EXPECT_EQ(1, args2.frame_time.ToInternalValue()); EXPECT_EQ(2, args2.deadline.ToInternalValue()); EXPECT_EQ(3, args2.interval.ToInternalValue()); + EXPECT_EQ(BeginFrameArgs::NORMAL, args2.type); BeginFrameArgs args3 = CreateExpiredBeginFrameArgsForTesting(); EXPECT_TRUE(args3.IsValid()) << args3; EXPECT_GT(gfx::FrameTime::Now(), args3.deadline); + EXPECT_EQ(BeginFrameArgs::NORMAL, args3.type); + + BeginFrameArgs args4 = + CreateBeginFrameArgsForTesting(1, 2, 3, BeginFrameArgs::MISSED); + EXPECT_TRUE(args4.IsValid()) << args4; + EXPECT_EQ(1, args4.frame_time.ToInternalValue()); + EXPECT_EQ(2, args4.deadline.ToInternalValue()); + EXPECT_EQ(3, args4.interval.ToInternalValue()); + EXPECT_EQ(BeginFrameArgs::MISSED, args4.type); // operator== EXPECT_EQ(CreateBeginFrameArgsForTesting(4, 5, 6), CreateBeginFrameArgsForTesting(4, 5, 6)); + EXPECT_NONFATAL_FAILURE( + EXPECT_EQ(CreateBeginFrameArgsForTesting(7, 8, 9, BeginFrameArgs::MISSED), + CreateBeginFrameArgsForTesting(7, 8, 9)), + ""); EXPECT_NONFATAL_FAILURE(EXPECT_EQ(CreateBeginFrameArgsForTesting(4, 5, 6), CreateBeginFrameArgsForTesting(7, 8, 9)), ""); @@ -42,15 +56,15 @@ TEST(BeginFrameArgsTest, Helpers) { // operator<< std::stringstream out1; out1 << args1; - EXPECT_EQ("BeginFrameArgs(0, 0, -1us)", out1.str()); + EXPECT_EQ("BeginFrameArgs(NORMAL, 0, 0, -1us)", out1.str()); std::stringstream out2; out2 << args2; - EXPECT_EQ("BeginFrameArgs(1, 2, 3us)", out2.str()); + EXPECT_EQ("BeginFrameArgs(NORMAL, 1, 2, 3us)", out2.str()); // PrintTo - EXPECT_EQ(std::string("BeginFrameArgs(0, 0, -1us)"), + EXPECT_EQ(std::string("BeginFrameArgs(NORMAL, 0, 0, -1us)"), ::testing::PrintToString(args1)); - EXPECT_EQ(std::string("BeginFrameArgs(1, 2, 3us)"), + EXPECT_EQ(std::string("BeginFrameArgs(NORMAL, 1, 2, 3us)"), ::testing::PrintToString(args2)); } @@ -59,18 +73,15 @@ TEST(BeginFrameArgsTest, Create) { BeginFrameArgs args1; EXPECT_FALSE(args1.IsValid()) << args1; - BeginFrameArgs args2 = - BeginFrameArgs::Create(base::TimeTicks::FromInternalValue(1), - base::TimeTicks::FromInternalValue(2), - base::TimeDelta::FromInternalValue(3)); + BeginFrameArgs args2 = BeginFrameArgs::Create( + base::TimeTicks::FromInternalValue(1), + base::TimeTicks::FromInternalValue(2), + base::TimeDelta::FromInternalValue(3), BeginFrameArgs::NORMAL); EXPECT_TRUE(args2.IsValid()) << args2; EXPECT_EQ(1, args2.frame_time.ToInternalValue()) << args2; EXPECT_EQ(2, args2.deadline.ToInternalValue()) << args2; EXPECT_EQ(3, args2.interval.ToInternalValue()) << args2; - - base::TimeTicks now = base::TimeTicks::FromInternalValue(1); - EXPECT_EQ(CreateBeginFrameArgsForTesting(1, 0, 16666), - BeginFrameArgs::CreateForSynchronousCompositor(now)); + EXPECT_EQ(BeginFrameArgs::NORMAL, args2.type) << args2; } } // namespace |