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

Side by Side Diff: cc/trees/layer_tree_host_unittest_animation.cc

Issue 246753008: cc: Unify use of DidSwapBuffers() and did_request_swap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_context.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "cc/animation/animation_curve.h" 7 #include "cc/animation/animation_curve.h"
8 #include "cc/animation/layer_animation_controller.h" 8 #include "cc/animation/layer_animation_controller.h"
9 #include "cc/animation/scroll_offset_animation_curve.h" 9 #include "cc/animation/scroll_offset_animation_curve.h"
10 #include "cc/animation/timing_function.h" 10 #include "cc/animation/timing_function.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 LayerTreeHostImpl* host_impl, 193 LayerTreeHostImpl* host_impl,
194 base::TimeTicks monotonic_time) OVERRIDE { 194 base::TimeTicks monotonic_time) OVERRIDE {
195 started_animating_ = true; 195 started_animating_ = true;
196 } 196 }
197 197
198 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 198 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
199 if (started_animating_) 199 if (started_animating_)
200 EndTest(); 200 EndTest();
201 } 201 }
202 202
203 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( 203 virtual DrawResult PrepareToDrawOnThread(
204 LayerTreeHostImpl* host_impl, 204 LayerTreeHostImpl* host_impl,
205 LayerTreeHostImpl::FrameData* frame, 205 LayerTreeHostImpl::FrameData* frame,
206 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { 206 DrawResult draw_result) OVERRIDE {
207 return DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; 207 return DRAW_ABORTED_CHECKERBOARD_ANIMATIONS;
208 } 208 }
209 209
210 virtual void AfterTest() OVERRIDE { } 210 virtual void AfterTest() OVERRIDE { }
211 211
212 private: 212 private:
213 bool started_animating_; 213 bool started_animating_;
214 }; 214 };
215 215
216 // Starvation can only be an issue with the MT compositor. 216 // Starvation can only be an issue with the MT compositor.
217 MULTI_THREAD_TEST_F(LayerTreeHostAnimationTestCheckerboardDoesNotStarveDraws); 217 MULTI_THREAD_TEST_F(LayerTreeHostAnimationTestCheckerboardDoesNotStarveDraws);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 if (num_foreground_animates_ > 1 && !has_background_ticked_) 325 if (num_foreground_animates_ > 1 && !has_background_ticked_)
326 PostSetVisibleToMainThread(false); 326 PostSetVisibleToMainThread(false);
327 else if (has_background_ticked_) 327 else if (has_background_ticked_)
328 EndTest(); 328 EndTest();
329 } else { 329 } else {
330 has_background_ticked_ = true; 330 has_background_ticked_ = true;
331 PostSetVisibleToMainThread(true); 331 PostSetVisibleToMainThread(true);
332 } 332 }
333 } 333 }
334 334
335 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( 335 virtual DrawResult PrepareToDrawOnThread(
336 LayerTreeHostImpl* host_impl, 336 LayerTreeHostImpl* host_impl,
337 LayerTreeHostImpl::FrameData* frame, 337 LayerTreeHostImpl::FrameData* frame,
338 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { 338 DrawResult draw_result) OVERRIDE {
339 if (TestEnded()) 339 if (TestEnded())
340 return draw_result; 340 return draw_result;
341 return DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; 341 return DRAW_ABORTED_CHECKERBOARD_ANIMATIONS;
342 } 342 }
343 343
344 virtual void AfterTest() OVERRIDE {} 344 virtual void AfterTest() OVERRIDE {}
345 345
346 private: 346 private:
347 bool has_background_ticked_; 347 bool has_background_ticked_;
348 int num_foreground_animates_; 348 int num_foreground_animates_;
349 base::TimeTicks last_tick_time_; 349 base::TimeTicks last_tick_time_;
350 }; 350 };
351 351
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
1058 } 1058 }
1059 1059
1060 virtual void BeginTest() OVERRIDE { 1060 virtual void BeginTest() OVERRIDE {
1061 prevented_draw_ = 0; 1061 prevented_draw_ = 0;
1062 added_animations_ = 0; 1062 added_animations_ = 0;
1063 started_times_ = 0; 1063 started_times_ = 0;
1064 1064
1065 PostSetNeedsCommitToMainThread(); 1065 PostSetNeedsCommitToMainThread();
1066 } 1066 }
1067 1067
1068 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( 1068 virtual DrawResult PrepareToDrawOnThread(
1069 LayerTreeHostImpl* host_impl, 1069 LayerTreeHostImpl* host_impl,
1070 LayerTreeHostImpl::FrameData* frame_data, 1070 LayerTreeHostImpl::FrameData* frame_data,
1071 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE { 1071 DrawResult draw_result) OVERRIDE {
1072 if (added_animations_ < 2) 1072 if (added_animations_ < 2)
1073 return draw_result; 1073 return draw_result;
1074 if (TestEnded()) 1074 if (TestEnded())
1075 return draw_result; 1075 return draw_result;
1076 // Act like there is checkerboard when the second animation wants to draw. 1076 // Act like there is checkerboard when the second animation wants to draw.
1077 ++prevented_draw_; 1077 ++prevented_draw_;
1078 if (prevented_draw_ > 2) 1078 if (prevented_draw_ > 2)
1079 EndTest(); 1079 EndTest();
1080 return DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; 1080 return DRAW_ABORTED_CHECKERBOARD_ANIMATIONS;
1081 } 1081 }
1082 1082
1083 virtual void DidCommitAndDrawFrame() OVERRIDE { 1083 virtual void DidCommitAndDrawFrame() OVERRIDE {
1084 switch (layer_tree_host()->source_frame_number()) { 1084 switch (layer_tree_host()->source_frame_number()) {
1085 case 1: 1085 case 1:
1086 // The animation is longer than 1 BeginFrame interval. 1086 // The animation is longer than 1 BeginFrame interval.
1087 AddOpacityTransitionToLayer(content_.get(), 0.1, 0.2f, 0.8f, false); 1087 AddOpacityTransitionToLayer(content_.get(), 0.1, 0.2f, 0.8f, false);
1088 added_animations_++; 1088 added_animations_++;
1089 break; 1089 break;
1090 case 2: 1090 case 2:
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1202 if (!started_animating_) { 1202 if (!started_animating_) {
1203 started_animating_ = true; 1203 started_animating_ = true;
1204 expected_impl_tick_time_ = monotonic_time; 1204 expected_impl_tick_time_ = monotonic_time;
1205 } else { 1205 } else {
1206 EXPECT_EQ(expected_impl_tick_time_, monotonic_time); 1206 EXPECT_EQ(expected_impl_tick_time_, monotonic_time);
1207 if (num_commits_ > 2) 1207 if (num_commits_ > 2)
1208 EndTest(); 1208 EndTest();
1209 } 1209 }
1210 } 1210 }
1211 1211
1212 virtual DrawSwapReadbackResult::DrawResult PrepareToDrawOnThread( 1212 virtual DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
1213 LayerTreeHostImpl* host_impl, 1213 LayerTreeHostImpl::FrameData* frame,
1214 LayerTreeHostImpl::FrameData* frame, 1214 DrawResult draw_result) OVERRIDE {
1215 DrawSwapReadbackResult::DrawResult draw_result) OVERRIDE {
1216 if (TestEnded()) 1215 if (TestEnded())
1217 return draw_result; 1216 return draw_result;
1218 num_draw_attempts_++; 1217 num_draw_attempts_++;
1219 if (num_draw_attempts_ > 2) { 1218 if (num_draw_attempts_ > 2) {
1220 num_draw_attempts_ = 0; 1219 num_draw_attempts_ = 0;
1221 PostSetNeedsCommitToMainThread(); 1220 PostSetNeedsCommitToMainThread();
1222 } 1221 }
1223 return DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; 1222 return DRAW_ABORTED_CHECKERBOARD_ANIMATIONS;
1224 } 1223 }
1225 1224
1226 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 1225 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
1227 if (!started_animating_) 1226 if (!started_animating_)
1228 return; 1227 return;
1229 expected_impl_tick_time_ = 1228 expected_impl_tick_time_ =
1230 std::max(expected_impl_tick_time_, last_main_thread_tick_time_); 1229 std::max(expected_impl_tick_time_, last_main_thread_tick_time_);
1231 num_commits_++; 1230 num_commits_++;
1232 } 1231 }
1233 1232
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 private: 1381 private:
1383 scoped_refptr<Layer> content_; 1382 scoped_refptr<Layer> content_;
1384 int num_swap_buffers_; 1383 int num_swap_buffers_;
1385 }; 1384 };
1386 1385
1387 SINGLE_AND_MULTI_THREAD_TEST_F( 1386 SINGLE_AND_MULTI_THREAD_TEST_F(
1388 LayerTreeHostAnimationTestAddAnimationAfterAnimating); 1387 LayerTreeHostAnimationTestAddAnimationAfterAnimating);
1389 1388
1390 } // namespace 1389 } // namespace
1391 } // namespace cc 1390 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698