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

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

Issue 16018011: Revert "Shouldn't access LayerTreeTest::layer_tree_host on impl thread" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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/test/layer_tree_test.cc ('k') | cc/trees/single_thread_proxy.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/timing_function.h" 9 #include "cc/animation/timing_function.h"
10 #include "cc/layers/layer.h" 10 #include "cc/layers/layer.h"
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 284
285 virtual void AfterTest() OVERRIDE {} 285 virtual void AfterTest() OVERRIDE {}
286 286
287 private: 287 private:
288 int num_animates_; 288 int num_animates_;
289 }; 289 };
290 290
291 SINGLE_AND_MULTI_THREAD_TEST_F( 291 SINGLE_AND_MULTI_THREAD_TEST_F(
292 LayerTreeHostAnimationTestTickAnimationWhileBackgrounded); 292 LayerTreeHostAnimationTestTickAnimationWhileBackgrounded);
293 293
294 // Ensures that animations continue to be ticked when we are backgrounded.
294 class LayerTreeHostAnimationTestAddAnimationWithTimingFunction 295 class LayerTreeHostAnimationTestAddAnimationWithTimingFunction
295 : public LayerTreeHostAnimationTest { 296 : public LayerTreeHostAnimationTest {
296 public: 297 public:
297 LayerTreeHostAnimationTestAddAnimationWithTimingFunction() {} 298 LayerTreeHostAnimationTestAddAnimationWithTimingFunction() {}
298 299
299 virtual void SetupTree() OVERRIDE { 300 virtual void SetupTree() OVERRIDE {
300 LayerTreeHostAnimationTest::SetupTree(); 301 LayerTreeHostAnimationTest::SetupTree();
301 content_ = FakeContentLayer::Create(&client_); 302 content_ = FakeContentLayer::Create(&client_);
302 content_->SetBounds(gfx::Size(4, 4)); 303 content_->SetBounds(gfx::Size(4, 4));
303 content_->set_layer_animation_delegate(this);
304 layer_tree_host()->root_layer()->AddChild(content_); 304 layer_tree_host()->root_layer()->AddChild(content_);
305 } 305 }
306 306
307 virtual void BeginTest() OVERRIDE { 307 virtual void BeginTest() OVERRIDE {
308 PostAddAnimationToMainThread(content_); 308 PostAddAnimationToMainThread(content_);
309 } 309 }
310 310
311 virtual void notifyAnimationStarted(double wallClockTime) OVERRIDE { 311 virtual void AnimateLayers(
312 LayerTreeHostImpl* host_impl,
313 base::TimeTicks monotonic_time) OVERRIDE {
312 LayerAnimationController* controller = 314 LayerAnimationController* controller =
313 layer_tree_host()->root_layer()->children()[0]-> 315 layer_tree_host()->root_layer()->children()[0]->
314 layer_animation_controller(); 316 layer_animation_controller();
315 Animation* animation = 317 Animation* animation =
316 controller->GetAnimation(Animation::Opacity); 318 controller->GetAnimation(Animation::Opacity);
319 if (!animation)
320 return;
321
317 const FloatAnimationCurve* curve = 322 const FloatAnimationCurve* curve =
318 animation->curve()->ToFloatAnimationCurve(); 323 animation->curve()->ToFloatAnimationCurve();
319 float start_opacity = curve->GetValue(0.0); 324 float start_opacity = curve->GetValue(0.0);
320 float end_opacity = curve->GetValue(curve->Duration()); 325 float end_opacity = curve->GetValue(curve->Duration());
321 float linearly_interpolated_opacity = 326 float linearly_interpolated_opacity =
322 0.25f * end_opacity + 0.75f * start_opacity; 327 0.25f * end_opacity + 0.75f * start_opacity;
323 double time = curve->Duration() * 0.25; 328 double time = curve->Duration() * 0.25;
324 // If the linear timing function associated with this animation was not 329 // If the linear timing function associated with this animation was not
325 // picked up, then the linearly interpolated opacity would be different 330 // picked up, then the linearly interpolated opacity would be different
326 // because of the default ease timing function. 331 // because of the default ease timing function.
327 EXPECT_FLOAT_EQ(linearly_interpolated_opacity, curve->GetValue(time)); 332 EXPECT_FLOAT_EQ(linearly_interpolated_opacity, curve->GetValue(time));
328 333
334 LayerAnimationController* controller_impl =
335 host_impl->active_tree()->root_layer()->children()[0]->
336 layer_animation_controller();
337 Animation* animation_impl =
338 controller_impl->GetAnimation(Animation::Opacity);
339
329 controller->RemoveAnimation(animation->id()); 340 controller->RemoveAnimation(animation->id());
330 341 controller_impl->RemoveAnimation(animation_impl->id());
331 EndTest(); 342 EndTest();
332 } 343 }
333 344
334 virtual void AfterTest() OVERRIDE {} 345 virtual void AfterTest() OVERRIDE {}
335 346
336 FakeContentLayerClient client_; 347 FakeContentLayerClient client_;
337 scoped_refptr<FakeContentLayer> content_; 348 scoped_refptr<FakeContentLayer> content_;
338 }; 349 };
339 350
340 SINGLE_AND_MULTI_THREAD_TEST_F( 351 SINGLE_AND_MULTI_THREAD_TEST_F(
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 int finished_times_; 803 int finished_times_;
793 FakeContentLayerClient client_; 804 FakeContentLayerClient client_;
794 scoped_refptr<FakeContentLayer> content_; 805 scoped_refptr<FakeContentLayer> content_;
795 }; 806 };
796 807
797 MULTI_THREAD_TEST_F( 808 MULTI_THREAD_TEST_F(
798 LayerTreeHostAnimationTestCheckerboardDoesntStartAnimations); 809 LayerTreeHostAnimationTestCheckerboardDoesntStartAnimations);
799 810
800 } // namespace 811 } // namespace
801 } // namespace cc 812 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_test.cc ('k') | cc/trees/single_thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698