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

Side by Side Diff: cc/layers/texture_layer_unittest.cc

Issue 1101823002: CC Animations: Make LayerAnimationController creation optional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Plumb LayerSettings parameter for cc::Layer construction. Created 5 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
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/layers/texture_layer.h" 5 #include "cc/layers/texture_layer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 layer_tree_host_ = nullptr; 194 layer_tree_host_ = nullptr;
195 } 195 }
196 196
197 scoped_ptr<MockLayerTreeHost> layer_tree_host_; 197 scoped_ptr<MockLayerTreeHost> layer_tree_host_;
198 FakeImplProxy proxy_; 198 FakeImplProxy proxy_;
199 FakeLayerTreeHostClient fake_client_; 199 FakeLayerTreeHostClient fake_client_;
200 TestSharedBitmapManager shared_bitmap_manager_; 200 TestSharedBitmapManager shared_bitmap_manager_;
201 TestTaskGraphRunner task_graph_runner_; 201 TestTaskGraphRunner task_graph_runner_;
202 FakeLayerTreeHostImpl host_impl_; 202 FakeLayerTreeHostImpl host_impl_;
203 CommonMailboxObjects test_data_; 203 CommonMailboxObjects test_data_;
204 LayerSettings layer_settings_;
204 }; 205 };
205 206
206 TEST_F(TextureLayerTest, CheckPropertyChangeCausesCorrectBehavior) { 207 TEST_F(TextureLayerTest, CheckPropertyChangeCausesCorrectBehavior) {
207 scoped_refptr<TextureLayer> test_layer = 208 scoped_refptr<TextureLayer> test_layer =
208 TextureLayer::CreateForMailbox(nullptr); 209 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
209 EXPECT_SET_NEEDS_COMMIT(1, layer_tree_host_->SetRootLayer(test_layer)); 210 EXPECT_SET_NEEDS_COMMIT(1, layer_tree_host_->SetRootLayer(test_layer));
210 211
211 // Test properties that should call SetNeedsCommit. All properties need to 212 // Test properties that should call SetNeedsCommit. All properties need to
212 // be set to new values in order for SetNeedsCommit to be called. 213 // be set to new values in order for SetNeedsCommit to be called.
213 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetFlipped(false)); 214 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetFlipped(false));
214 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNearestNeighbor(true)); 215 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNearestNeighbor(true));
215 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUV( 216 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUV(
216 gfx::PointF(0.25f, 0.25f), gfx::PointF(0.75f, 0.75f))); 217 gfx::PointF(0.25f, 0.25f), gfx::PointF(0.75f, 0.75f)));
217 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetVertexOpacity( 218 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetVertexOpacity(
218 0.5f, 0.5f, 0.5f, 0.5f)); 219 0.5f, 0.5f, 0.5f, 0.5f));
219 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetPremultipliedAlpha(false)); 220 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetPremultipliedAlpha(false));
220 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetBlendBackgroundColor(true)); 221 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetBlendBackgroundColor(true));
221 } 222 }
222 223
223 TEST_F(TextureLayerTest, VisibleContentOpaqueRegion) { 224 TEST_F(TextureLayerTest, VisibleContentOpaqueRegion) {
224 const gfx::Size layer_bounds(100, 100); 225 const gfx::Size layer_bounds(100, 100);
225 const gfx::Rect layer_rect(layer_bounds); 226 const gfx::Rect layer_rect(layer_bounds);
226 const Region layer_region(layer_rect); 227 const Region layer_region(layer_rect);
227 228
228 scoped_refptr<TextureLayer> layer = TextureLayer::CreateForMailbox(nullptr); 229 scoped_refptr<TextureLayer> layer =
230 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
229 layer->SetBounds(layer_bounds); 231 layer->SetBounds(layer_bounds);
230 layer->draw_properties().visible_content_rect = layer_rect; 232 layer->draw_properties().visible_content_rect = layer_rect;
231 layer->SetBlendBackgroundColor(true); 233 layer->SetBlendBackgroundColor(true);
232 234
233 // Verify initial conditions. 235 // Verify initial conditions.
234 EXPECT_FALSE(layer->contents_opaque()); 236 EXPECT_FALSE(layer->contents_opaque());
235 EXPECT_EQ(0u, layer->background_color()); 237 EXPECT_EQ(0u, layer->background_color());
236 EXPECT_EQ(Region().ToString(), 238 EXPECT_EQ(Region().ToString(),
237 layer->VisibleContentOpaqueRegion().ToString()); 239 layer->VisibleContentOpaqueRegion().ToString());
238 240
239 // Opaque background. 241 // Opaque background.
240 layer->SetBackgroundColor(SK_ColorWHITE); 242 layer->SetBackgroundColor(SK_ColorWHITE);
241 EXPECT_EQ(layer_region.ToString(), 243 EXPECT_EQ(layer_region.ToString(),
242 layer->VisibleContentOpaqueRegion().ToString()); 244 layer->VisibleContentOpaqueRegion().ToString());
243 245
244 // Transparent background. 246 // Transparent background.
245 layer->SetBackgroundColor(SkColorSetARGB(100, 255, 255, 255)); 247 layer->SetBackgroundColor(SkColorSetARGB(100, 255, 255, 255));
246 EXPECT_EQ(Region().ToString(), 248 EXPECT_EQ(Region().ToString(),
247 layer->VisibleContentOpaqueRegion().ToString()); 249 layer->VisibleContentOpaqueRegion().ToString());
248 } 250 }
249 251
250 TEST_F(TextureLayerTest, RateLimiter) { 252 TEST_F(TextureLayerTest, RateLimiter) {
251 FakeTextureLayerClient client; 253 FakeTextureLayerClient client;
252 scoped_refptr<TextureLayer> test_layer = TextureLayer::CreateForMailbox( 254 scoped_refptr<TextureLayer> test_layer =
253 &client); 255 TextureLayer::CreateForMailbox(layer_settings_, &client);
254 test_layer->SetIsDrawable(true); 256 test_layer->SetIsDrawable(true);
255 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 257 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
256 layer_tree_host_->SetRootLayer(test_layer); 258 layer_tree_host_->SetRootLayer(test_layer);
257 259
258 // Don't rate limit until we invalidate. 260 // Don't rate limit until we invalidate.
259 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0); 261 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0);
260 test_layer->SetRateLimitContext(true); 262 test_layer->SetRateLimitContext(true);
261 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 263 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
262 264
263 // Do rate limit after we invalidate. 265 // Do rate limit after we invalidate.
264 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()); 266 EXPECT_CALL(*layer_tree_host_, StartRateLimiter());
265 test_layer->SetNeedsDisplay(); 267 test_layer->SetNeedsDisplay();
266 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 268 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
267 269
268 // Stop rate limiter when we don't want it any more. 270 // Stop rate limiter when we don't want it any more.
269 EXPECT_CALL(*layer_tree_host_, StopRateLimiter()); 271 EXPECT_CALL(*layer_tree_host_, StopRateLimiter());
270 test_layer->SetRateLimitContext(false); 272 test_layer->SetRateLimitContext(false);
271 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 273 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
272 274
273 // Or we clear the client. 275 // Or we clear the client.
274 test_layer->SetRateLimitContext(true); 276 test_layer->SetRateLimitContext(true);
275 EXPECT_CALL(*layer_tree_host_, StopRateLimiter()); 277 EXPECT_CALL(*layer_tree_host_, StopRateLimiter());
276 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 278 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
277 test_layer->ClearClient(); 279 test_layer->ClearClient();
278 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 280 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
279 281
280 // Reset to a layer with a client, that started the rate limiter. 282 // Reset to a layer with a client, that started the rate limiter.
281 test_layer = TextureLayer::CreateForMailbox( 283 test_layer = TextureLayer::CreateForMailbox(layer_settings_, &client);
282 &client);
283 test_layer->SetIsDrawable(true); 284 test_layer->SetIsDrawable(true);
284 test_layer->SetRateLimitContext(true); 285 test_layer->SetRateLimitContext(true);
285 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 286 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
286 layer_tree_host_->SetRootLayer(test_layer); 287 layer_tree_host_->SetRootLayer(test_layer);
287 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0); 288 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0);
288 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 289 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
289 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()); 290 EXPECT_CALL(*layer_tree_host_, StartRateLimiter());
290 test_layer->SetNeedsDisplay(); 291 test_layer->SetNeedsDisplay();
291 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 292 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
292 293
(...skipping 19 matching lines...) Expand all
312 EXPECT_CALL(test_data_.mock_callback_, 313 EXPECT_CALL(test_data_.mock_callback_,
313 Release(test_data_.mailbox_name1_, 314 Release(test_data_.mailbox_name1_,
314 test_data_.sync_point1_, 315 test_data_.sync_point1_,
315 false)).Times(1); 316 false)).Times(1);
316 TextureLayerTest::TearDown(); 317 TextureLayerTest::TearDown();
317 } 318 }
318 }; 319 };
319 320
320 TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { 321 TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) {
321 scoped_refptr<TextureLayer> test_layer = 322 scoped_refptr<TextureLayer> test_layer =
322 TextureLayer::CreateForMailbox(nullptr); 323 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
323 ASSERT_TRUE(test_layer.get()); 324 ASSERT_TRUE(test_layer.get());
324 325
325 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 326 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
326 layer_tree_host_->SetRootLayer(test_layer); 327 layer_tree_host_->SetRootLayer(test_layer);
327 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 328 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
328 329
329 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); 330 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
330 test_layer->SetTextureMailbox( 331 test_layer->SetTextureMailbox(
331 test_data_.mailbox1_, 332 test_data_.mailbox1_,
332 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); 333 SingleReleaseCallback::Create(test_data_.release_mailbox1_));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 371
371 // Test destructor. 372 // Test destructor.
372 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); 373 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
373 test_layer->SetTextureMailbox( 374 test_layer->SetTextureMailbox(
374 test_data_.mailbox1_, 375 test_data_.mailbox1_,
375 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); 376 SingleReleaseCallback::Create(test_data_.release_mailbox1_));
376 } 377 }
377 378
378 TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) { 379 TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) {
379 scoped_refptr<TextureLayer> test_layer = 380 scoped_refptr<TextureLayer> test_layer =
380 TextureLayer::CreateForMailbox(nullptr); 381 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
381 ASSERT_TRUE(test_layer.get()); 382 ASSERT_TRUE(test_layer.get());
382 383
383 // These use the same gpu::Mailbox, but different sync points. 384 // These use the same gpu::Mailbox, but different sync points.
384 TextureMailbox mailbox1(MailboxFromChar('a'), GL_TEXTURE_2D, 1); 385 TextureMailbox mailbox1(MailboxFromChar('a'), GL_TEXTURE_2D, 1);
385 TextureMailbox mailbox2(MailboxFromChar('a'), GL_TEXTURE_2D, 2); 386 TextureMailbox mailbox2(MailboxFromChar('a'), GL_TEXTURE_2D, 2);
386 387
387 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 388 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
388 layer_tree_host_->SetRootLayer(test_layer); 389 layer_tree_host_->SetRootLayer(test_layer);
389 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 390 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
390 391
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 } 451 }
451 452
452 scoped_ptr<TestMailboxHolder::MainThreadReference> 453 scoped_ptr<TestMailboxHolder::MainThreadReference>
453 main_ref_; 454 main_ref_;
454 base::Thread main_thread_; 455 base::Thread main_thread_;
455 scoped_ptr<BlockingTaskRunner> main_thread_task_runner_; 456 scoped_ptr<BlockingTaskRunner> main_thread_task_runner_;
456 }; 457 };
457 458
458 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { 459 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
459 scoped_refptr<TextureLayer> test_layer = 460 scoped_refptr<TextureLayer> test_layer =
460 TextureLayer::CreateForMailbox(nullptr); 461 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
461 ASSERT_TRUE(test_layer.get()); 462 ASSERT_TRUE(test_layer.get());
462 463
463 main_thread_.message_loop()->task_runner()->PostTask( 464 main_thread_.message_loop()->task_runner()->PostTask(
464 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 465 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
465 base::Unretained(this))); 466 base::Unretained(this)));
466 467
467 Wait(main_thread_); 468 Wait(main_thread_);
468 469
469 // The texture layer is attached to compositor1, and passes a reference to its 470 // The texture layer is attached to compositor1, and passes a reference to its
470 // impl tree. 471 // impl tree.
(...skipping 29 matching lines...) Expand all
500 501
501 main_thread_.message_loop()->task_runner()->PostTask( 502 main_thread_.message_loop()->task_runner()->PostTask(
502 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef, 503 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef,
503 base::Unretained(this))); 504 base::Unretained(this)));
504 Wait(main_thread_); 505 Wait(main_thread_);
505 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 506 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
506 } 507 }
507 508
508 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { 509 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
509 scoped_refptr<TextureLayer> test_layer = 510 scoped_refptr<TextureLayer> test_layer =
510 TextureLayer::CreateForMailbox(nullptr); 511 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
511 ASSERT_TRUE(test_layer.get()); 512 ASSERT_TRUE(test_layer.get());
512 513
513 main_thread_.message_loop()->task_runner()->PostTask( 514 main_thread_.message_loop()->task_runner()->PostTask(
514 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 515 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
515 base::Unretained(this))); 516 base::Unretained(this)));
516 517
517 Wait(main_thread_); 518 Wait(main_thread_);
518 519
519 // The texture layer is attached to compositor1, and passes a reference to its 520 // The texture layer is attached to compositor1, and passes a reference to its
520 // impl tree. 521 // impl tree.
(...skipping 30 matching lines...) Expand all
551 EXPECT_CALL(test_data_.mock_callback_, 552 EXPECT_CALL(test_data_.mock_callback_,
552 Release(test_data_.mailbox_name1_, 200, true)).Times(1); 553 Release(test_data_.mailbox_name1_, 200, true)).Times(1);
553 554
554 compositor2->Run(200, true, main_thread_task_runner_.get()); 555 compositor2->Run(200, true, main_thread_task_runner_.get());
555 Wait(main_thread_); 556 Wait(main_thread_);
556 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 557 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
557 } 558 }
558 559
559 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { 560 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
560 scoped_refptr<TextureLayer> test_layer = 561 scoped_refptr<TextureLayer> test_layer =
561 TextureLayer::CreateForMailbox(nullptr); 562 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
562 ASSERT_TRUE(test_layer.get()); 563 ASSERT_TRUE(test_layer.get());
563 564
564 main_thread_.message_loop()->task_runner()->PostTask( 565 main_thread_.message_loop()->task_runner()->PostTask(
565 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 566 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
566 base::Unretained(this))); 567 base::Unretained(this)));
567 568
568 Wait(main_thread_); 569 Wait(main_thread_);
569 570
570 // The texture layer is attached to compositor1, and passes a reference to its 571 // The texture layer is attached to compositor1, and passes a reference to its
571 // impl tree. 572 // impl tree.
(...skipping 30 matching lines...) Expand all
602 EXPECT_CALL(test_data_.mock_callback_, 603 EXPECT_CALL(test_data_.mock_callback_,
603 Release(test_data_.mailbox_name1_, 100, true)).Times(1); 604 Release(test_data_.mailbox_name1_, 100, true)).Times(1);
604 605
605 compositor1->Run(100, true, main_thread_task_runner_.get()); 606 compositor1->Run(100, true, main_thread_task_runner_.get());
606 Wait(main_thread_); 607 Wait(main_thread_);
607 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 608 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
608 } 609 }
609 610
610 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { 611 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
611 scoped_refptr<TextureLayer> test_layer = 612 scoped_refptr<TextureLayer> test_layer =
612 TextureLayer::CreateForMailbox(nullptr); 613 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
613 ASSERT_TRUE(test_layer.get()); 614 ASSERT_TRUE(test_layer.get());
614 615
615 main_thread_.message_loop()->task_runner()->PostTask( 616 main_thread_.message_loop()->task_runner()->PostTask(
616 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 617 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
617 base::Unretained(this))); 618 base::Unretained(this)));
618 619
619 Wait(main_thread_); 620 Wait(main_thread_);
620 621
621 // The texture layer is attached to compositor1, and passes a reference to its 622 // The texture layer is attached to compositor1, and passes a reference to its
622 // impl tree. 623 // impl tree.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 base::Unretained(this))); 701 base::Unretained(this)));
701 layer_->SetTextureMailbox( 702 layer_->SetTextureMailbox(
702 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 703 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
703 callback.Pass()); 704 callback.Pass());
704 } 705 }
705 706
706 void BeginTest() override { 707 void BeginTest() override {
707 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 708 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
708 709
709 gfx::Size bounds(100, 100); 710 gfx::Size bounds(100, 100);
710 root_ = Layer::Create(); 711 root_ = Layer::Create(layer_settings());
711 root_->SetBounds(bounds); 712 root_->SetBounds(bounds);
712 713
713 layer_ = TextureLayer::CreateForMailbox(nullptr); 714 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
714 layer_->SetIsDrawable(true); 715 layer_->SetIsDrawable(true);
715 layer_->SetBounds(bounds); 716 layer_->SetBounds(bounds);
716 717
717 root_->AddChild(layer_); 718 root_->AddChild(layer_);
718 layer_tree_host()->SetRootLayer(root_); 719 layer_tree_host()->SetRootLayer(root_);
719 layer_tree_host()->SetViewportSize(bounds); 720 layer_tree_host()->SetViewportSize(bounds);
720 SetMailbox('1'); 721 SetMailbox('1');
721 EXPECT_EQ(0, callback_count_); 722 EXPECT_EQ(0, callback_count_);
722 723
723 // Case #1: change mailbox before the commit. The old mailbox should be 724 // Case #1: change mailbox before the commit. The old mailbox should be
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 822 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
822 base::Bind( 823 base::Bind(
823 &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback)); 824 &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback));
824 layer_->SetTextureMailbox( 825 layer_->SetTextureMailbox(
825 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 826 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
826 callback.Pass()); 827 callback.Pass());
827 } 828 }
828 829
829 void BeginTest() override { 830 void BeginTest() override {
830 gfx::Size bounds(100, 100); 831 gfx::Size bounds(100, 100);
831 root_ = Layer::Create(); 832 root_ = Layer::Create(layer_settings());
832 root_->SetBounds(bounds); 833 root_->SetBounds(bounds);
833 834
834 layer_ = TextureLayer::CreateForMailbox(nullptr); 835 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
835 layer_->SetIsDrawable(true); 836 layer_->SetIsDrawable(true);
836 layer_->SetBounds(bounds); 837 layer_->SetBounds(bounds);
837 838
838 root_->AddChild(layer_); 839 root_->AddChild(layer_);
839 layer_tree_host()->SetRootLayer(root_); 840 layer_tree_host()->SetRootLayer(root_);
840 layer_tree_host()->SetViewportSize(bounds); 841 layer_tree_host()->SetViewportSize(bounds);
841 SetMailbox('1'); 842 SetMailbox('1');
842 843
843 PostSetNeedsCommitToMainThread(); 844 PostSetNeedsCommitToMainThread();
844 } 845 }
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 } 1123 }
1123 1124
1124 void MailboxReleased(uint32 sync_point, bool lost_resource) { 1125 void MailboxReleased(uint32 sync_point, bool lost_resource) {
1125 // Source frame number during callback is the same as the source frame 1126 // Source frame number during callback is the same as the source frame
1126 // on which it was released. 1127 // on which it was released.
1127 EXPECT_EQ(1, layer_tree_host()->source_frame_number()); 1128 EXPECT_EQ(1, layer_tree_host()->source_frame_number());
1128 EndTest(); 1129 EndTest();
1129 } 1130 }
1130 1131
1131 void SetupTree() override { 1132 void SetupTree() override {
1132 scoped_refptr<Layer> root = Layer::Create(); 1133 scoped_refptr<Layer> root = Layer::Create(layer_settings());
1133 root->SetBounds(gfx::Size(10, 10)); 1134 root->SetBounds(gfx::Size(10, 10));
1134 root->SetIsDrawable(true); 1135 root->SetIsDrawable(true);
1135 1136
1136 texture_layer_ = TextureLayer::CreateForMailbox(this); 1137 texture_layer_ = TextureLayer::CreateForMailbox(layer_settings(), this);
1137 texture_layer_->SetBounds(gfx::Size(10, 10)); 1138 texture_layer_->SetBounds(gfx::Size(10, 10));
1138 texture_layer_->SetIsDrawable(true); 1139 texture_layer_->SetIsDrawable(true);
1139 root->AddChild(texture_layer_); 1140 root->AddChild(texture_layer_);
1140 1141
1141 layer_tree_host()->SetRootLayer(root); 1142 layer_tree_host()->SetRootLayer(root);
1142 LayerTreeTest::SetupTree(); 1143 LayerTreeTest::SetupTree();
1143 } 1144 }
1144 1145
1145 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1146 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1146 1147
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 1218
1218 TextureMailbox MakeMailbox(char name) { 1219 TextureMailbox MakeMailbox(char name) {
1219 return TextureMailbox(MailboxFromChar(name), GL_TEXTURE_2D, 0); 1220 return TextureMailbox(MailboxFromChar(name), GL_TEXTURE_2D, 0);
1220 } 1221 }
1221 1222
1222 void MailboxReleased(uint32 sync_point, bool lost_resource) { 1223 void MailboxReleased(uint32 sync_point, bool lost_resource) {
1223 ++mailbox_returned_; 1224 ++mailbox_returned_;
1224 } 1225 }
1225 1226
1226 void SetupTree() override { 1227 void SetupTree() override {
1227 scoped_refptr<Layer> root = Layer::Create(); 1228 scoped_refptr<Layer> root = Layer::Create(layer_settings());
1228 root->SetBounds(gfx::Size(10, 10)); 1229 root->SetBounds(gfx::Size(10, 10));
1229 root->SetIsDrawable(true); 1230 root->SetIsDrawable(true);
1230 1231
1231 solid_layer_ = SolidColorLayer::Create(); 1232 solid_layer_ = SolidColorLayer::Create(layer_settings());
1232 solid_layer_->SetBounds(gfx::Size(10, 10)); 1233 solid_layer_->SetBounds(gfx::Size(10, 10));
1233 solid_layer_->SetIsDrawable(true); 1234 solid_layer_->SetIsDrawable(true);
1234 solid_layer_->SetBackgroundColor(SK_ColorWHITE); 1235 solid_layer_->SetBackgroundColor(SK_ColorWHITE);
1235 root->AddChild(solid_layer_); 1236 root->AddChild(solid_layer_);
1236 1237
1237 parent_layer_ = Layer::Create(); 1238 parent_layer_ = Layer::Create(layer_settings());
1238 parent_layer_->SetBounds(gfx::Size(10, 10)); 1239 parent_layer_->SetBounds(gfx::Size(10, 10));
1239 parent_layer_->SetIsDrawable(true); 1240 parent_layer_->SetIsDrawable(true);
1240 root->AddChild(parent_layer_); 1241 root->AddChild(parent_layer_);
1241 1242
1242 texture_layer_ = TextureLayer::CreateForMailbox(this); 1243 texture_layer_ = TextureLayer::CreateForMailbox(layer_settings(), this);
1243 texture_layer_->SetBounds(gfx::Size(10, 10)); 1244 texture_layer_->SetBounds(gfx::Size(10, 10));
1244 texture_layer_->SetIsDrawable(true); 1245 texture_layer_->SetIsDrawable(true);
1245 parent_layer_->AddChild(texture_layer_); 1246 parent_layer_->AddChild(texture_layer_);
1246 1247
1247 layer_tree_host()->SetRootLayer(root); 1248 layer_tree_host()->SetRootLayer(root);
1248 LayerTreeTest::SetupTree(); 1249 LayerTreeTest::SetupTree();
1249 } 1250 }
1250 1251
1251 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1252 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1252 1253
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1347 } 1348 }
1348 1349
1349 void MailboxReleased(unsigned sync_point, bool lost_resource) { 1350 void MailboxReleased(unsigned sync_point, bool lost_resource) {
1350 mailbox_released_ = true; 1351 mailbox_released_ = true;
1351 } 1352 }
1352 1353
1353 void SetupTree() override { 1354 void SetupTree() override {
1354 LayerTreeTest::SetupTree(); 1355 LayerTreeTest::SetupTree();
1355 1356
1356 scoped_refptr<TextureLayer> texture_layer = 1357 scoped_refptr<TextureLayer> texture_layer =
1357 TextureLayer::CreateForMailbox(this); 1358 TextureLayer::CreateForMailbox(layer_settings(), this);
1358 texture_layer->SetBounds(gfx::Size(10, 10)); 1359 texture_layer->SetBounds(gfx::Size(10, 10));
1359 texture_layer->SetIsDrawable(true); 1360 texture_layer->SetIsDrawable(true);
1360 1361
1361 layer_tree_host()->root_layer()->AddChild(texture_layer); 1362 layer_tree_host()->root_layer()->AddChild(texture_layer);
1362 } 1363 }
1363 1364
1364 void BeginTest() override { 1365 void BeginTest() override {
1365 mailbox_released_ = false; 1366 mailbox_released_ = false;
1366 PostSetNeedsCommitToMainThread(); 1367 PostSetNeedsCommitToMainThread();
1367 } 1368 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1411 base::Bind( 1412 base::Bind(
1412 &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback, 1413 &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback,
1413 base::Unretained(this))); 1414 base::Unretained(this)));
1414 layer_->SetTextureMailbox( 1415 layer_->SetTextureMailbox(
1415 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 1416 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
1416 callback.Pass()); 1417 callback.Pass());
1417 } 1418 }
1418 1419
1419 void SetupTree() override { 1420 void SetupTree() override {
1420 gfx::Size bounds(100, 100); 1421 gfx::Size bounds(100, 100);
1421 root_ = Layer::Create(); 1422 root_ = Layer::Create(layer_settings());
1422 root_->SetBounds(bounds); 1423 root_->SetBounds(bounds);
1423 1424
1424 layer_ = TextureLayer::CreateForMailbox(nullptr); 1425 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
1425 layer_->SetIsDrawable(true); 1426 layer_->SetIsDrawable(true);
1426 layer_->SetBounds(bounds); 1427 layer_->SetBounds(bounds);
1427 1428
1428 root_->AddChild(layer_); 1429 root_->AddChild(layer_);
1429 layer_tree_host()->SetRootLayer(root_); 1430 layer_tree_host()->SetRootLayer(root_);
1430 layer_tree_host()->SetViewportSize(bounds); 1431 layer_tree_host()->SetViewportSize(bounds);
1431 } 1432 }
1432 1433
1433 void BeginTest() override { 1434 void BeginTest() override {
1434 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 1435 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1480 base::Bind( 1481 base::Bind(
1481 &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback, 1482 &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback,
1482 base::Unretained(this))); 1483 base::Unretained(this)));
1483 layer_->SetTextureMailbox( 1484 layer_->SetTextureMailbox(
1484 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 1485 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
1485 callback.Pass()); 1486 callback.Pass());
1486 } 1487 }
1487 1488
1488 void SetupTree() override { 1489 void SetupTree() override {
1489 gfx::Size bounds(100, 100); 1490 gfx::Size bounds(100, 100);
1490 root_ = Layer::Create(); 1491 root_ = Layer::Create(layer_settings());
1491 root_->SetBounds(bounds); 1492 root_->SetBounds(bounds);
1492 1493
1493 layer_ = TextureLayer::CreateForMailbox(nullptr); 1494 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
1494 layer_->SetIsDrawable(true); 1495 layer_->SetIsDrawable(true);
1495 layer_->SetBounds(bounds); 1496 layer_->SetBounds(bounds);
1496 1497
1497 root_->AddChild(layer_); 1498 root_->AddChild(layer_);
1498 layer_tree_host()->SetRootLayer(root_); 1499 layer_tree_host()->SetRootLayer(root_);
1499 layer_tree_host()->SetViewportSize(bounds); 1500 layer_tree_host()->SetViewportSize(bounds);
1500 } 1501 }
1501 1502
1502 void BeginTest() override { 1503 void BeginTest() override {
1503 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 1504 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
(...skipping 28 matching lines...) Expand all
1532 int callback_count_; 1533 int callback_count_;
1533 scoped_refptr<Layer> root_; 1534 scoped_refptr<Layer> root_;
1534 scoped_refptr<TextureLayer> layer_; 1535 scoped_refptr<TextureLayer> layer_;
1535 }; 1536 };
1536 1537
1537 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( 1538 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
1538 TextureLayerWithMailboxImplThreadDeleted); 1539 TextureLayerWithMailboxImplThreadDeleted);
1539 1540
1540 } // namespace 1541 } // namespace
1541 } // namespace cc 1542 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698