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

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

Issue 1122393003: CC: Plumb LayerSettings parameter for cc::Layer construction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase 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
« no previous file with comments | « cc/layers/texture_layer.cc ('k') | cc/layers/tiled_layer.h » ('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/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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 layer_tree_host_ = nullptr; 204 layer_tree_host_ = nullptr;
205 } 205 }
206 206
207 scoped_ptr<MockLayerTreeHost> layer_tree_host_; 207 scoped_ptr<MockLayerTreeHost> layer_tree_host_;
208 FakeImplProxy proxy_; 208 FakeImplProxy proxy_;
209 FakeLayerTreeHostClient fake_client_; 209 FakeLayerTreeHostClient fake_client_;
210 TestSharedBitmapManager shared_bitmap_manager_; 210 TestSharedBitmapManager shared_bitmap_manager_;
211 TestTaskGraphRunner task_graph_runner_; 211 TestTaskGraphRunner task_graph_runner_;
212 FakeLayerTreeHostImpl host_impl_; 212 FakeLayerTreeHostImpl host_impl_;
213 CommonMailboxObjects test_data_; 213 CommonMailboxObjects test_data_;
214 LayerSettings layer_settings_;
214 }; 215 };
215 216
216 TEST_F(TextureLayerTest, CheckPropertyChangeCausesCorrectBehavior) { 217 TEST_F(TextureLayerTest, CheckPropertyChangeCausesCorrectBehavior) {
217 scoped_refptr<TextureLayer> test_layer = 218 scoped_refptr<TextureLayer> test_layer =
218 TextureLayer::CreateForMailbox(nullptr); 219 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
219 EXPECT_SET_NEEDS_COMMIT(1, layer_tree_host_->SetRootLayer(test_layer)); 220 EXPECT_SET_NEEDS_COMMIT(1, layer_tree_host_->SetRootLayer(test_layer));
220 221
221 // Test properties that should call SetNeedsCommit. All properties need to 222 // Test properties that should call SetNeedsCommit. All properties need to
222 // be set to new values in order for SetNeedsCommit to be called. 223 // be set to new values in order for SetNeedsCommit to be called.
223 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetFlipped(false)); 224 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetFlipped(false));
224 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNearestNeighbor(true)); 225 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetNearestNeighbor(true));
225 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUV( 226 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetUV(
226 gfx::PointF(0.25f, 0.25f), gfx::PointF(0.75f, 0.75f))); 227 gfx::PointF(0.25f, 0.25f), gfx::PointF(0.75f, 0.75f)));
227 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetVertexOpacity( 228 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetVertexOpacity(
228 0.5f, 0.5f, 0.5f, 0.5f)); 229 0.5f, 0.5f, 0.5f, 0.5f));
229 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetPremultipliedAlpha(false)); 230 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetPremultipliedAlpha(false));
230 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetBlendBackgroundColor(true)); 231 EXPECT_SET_NEEDS_COMMIT(1, test_layer->SetBlendBackgroundColor(true));
231 } 232 }
232 233
233 TEST_F(TextureLayerTest, VisibleContentOpaqueRegion) { 234 TEST_F(TextureLayerTest, VisibleContentOpaqueRegion) {
234 const gfx::Size layer_bounds(100, 100); 235 const gfx::Size layer_bounds(100, 100);
235 const gfx::Rect layer_rect(layer_bounds); 236 const gfx::Rect layer_rect(layer_bounds);
236 const Region layer_region(layer_rect); 237 const Region layer_region(layer_rect);
237 238
238 scoped_refptr<TextureLayer> layer = TextureLayer::CreateForMailbox(nullptr); 239 scoped_refptr<TextureLayer> layer =
240 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
239 layer->SetBounds(layer_bounds); 241 layer->SetBounds(layer_bounds);
240 layer->draw_properties().visible_content_rect = layer_rect; 242 layer->draw_properties().visible_content_rect = layer_rect;
241 layer->SetBlendBackgroundColor(true); 243 layer->SetBlendBackgroundColor(true);
242 244
243 // Verify initial conditions. 245 // Verify initial conditions.
244 EXPECT_FALSE(layer->contents_opaque()); 246 EXPECT_FALSE(layer->contents_opaque());
245 EXPECT_EQ(0u, layer->background_color()); 247 EXPECT_EQ(0u, layer->background_color());
246 EXPECT_EQ(Region().ToString(), 248 EXPECT_EQ(Region().ToString(),
247 layer->VisibleContentOpaqueRegion().ToString()); 249 layer->VisibleContentOpaqueRegion().ToString());
248 250
249 // Opaque background. 251 // Opaque background.
250 layer->SetBackgroundColor(SK_ColorWHITE); 252 layer->SetBackgroundColor(SK_ColorWHITE);
251 EXPECT_EQ(layer_region.ToString(), 253 EXPECT_EQ(layer_region.ToString(),
252 layer->VisibleContentOpaqueRegion().ToString()); 254 layer->VisibleContentOpaqueRegion().ToString());
253 255
254 // Transparent background. 256 // Transparent background.
255 layer->SetBackgroundColor(SkColorSetARGB(100, 255, 255, 255)); 257 layer->SetBackgroundColor(SkColorSetARGB(100, 255, 255, 255));
256 EXPECT_EQ(Region().ToString(), 258 EXPECT_EQ(Region().ToString(),
257 layer->VisibleContentOpaqueRegion().ToString()); 259 layer->VisibleContentOpaqueRegion().ToString());
258 } 260 }
259 261
260 TEST_F(TextureLayerTest, RateLimiter) { 262 TEST_F(TextureLayerTest, RateLimiter) {
261 FakeTextureLayerClient client; 263 FakeTextureLayerClient client;
262 scoped_refptr<TextureLayer> test_layer = TextureLayer::CreateForMailbox( 264 scoped_refptr<TextureLayer> test_layer =
263 &client); 265 TextureLayer::CreateForMailbox(layer_settings_, &client);
264 test_layer->SetIsDrawable(true); 266 test_layer->SetIsDrawable(true);
265 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 267 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
266 layer_tree_host_->SetRootLayer(test_layer); 268 layer_tree_host_->SetRootLayer(test_layer);
267 269
268 // Don't rate limit until we invalidate. 270 // Don't rate limit until we invalidate.
269 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0); 271 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0);
270 test_layer->SetRateLimitContext(true); 272 test_layer->SetRateLimitContext(true);
271 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 273 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
272 274
273 // Do rate limit after we invalidate. 275 // Do rate limit after we invalidate.
274 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()); 276 EXPECT_CALL(*layer_tree_host_, StartRateLimiter());
275 test_layer->SetNeedsDisplay(); 277 test_layer->SetNeedsDisplay();
276 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 278 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
277 279
278 // Stop rate limiter when we don't want it any more. 280 // Stop rate limiter when we don't want it any more.
279 EXPECT_CALL(*layer_tree_host_, StopRateLimiter()); 281 EXPECT_CALL(*layer_tree_host_, StopRateLimiter());
280 test_layer->SetRateLimitContext(false); 282 test_layer->SetRateLimitContext(false);
281 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 283 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
282 284
283 // Or we clear the client. 285 // Or we clear the client.
284 test_layer->SetRateLimitContext(true); 286 test_layer->SetRateLimitContext(true);
285 EXPECT_CALL(*layer_tree_host_, StopRateLimiter()); 287 EXPECT_CALL(*layer_tree_host_, StopRateLimiter());
286 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 288 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
287 test_layer->ClearClient(); 289 test_layer->ClearClient();
288 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 290 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
289 291
290 // Reset to a layer with a client, that started the rate limiter. 292 // Reset to a layer with a client, that started the rate limiter.
291 test_layer = TextureLayer::CreateForMailbox( 293 test_layer = TextureLayer::CreateForMailbox(layer_settings_, &client);
292 &client);
293 test_layer->SetIsDrawable(true); 294 test_layer->SetIsDrawable(true);
294 test_layer->SetRateLimitContext(true); 295 test_layer->SetRateLimitContext(true);
295 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 296 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
296 layer_tree_host_->SetRootLayer(test_layer); 297 layer_tree_host_->SetRootLayer(test_layer);
297 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0); 298 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()).Times(0);
298 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 299 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
299 EXPECT_CALL(*layer_tree_host_, StartRateLimiter()); 300 EXPECT_CALL(*layer_tree_host_, StartRateLimiter());
300 test_layer->SetNeedsDisplay(); 301 test_layer->SetNeedsDisplay();
301 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 302 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
302 303
(...skipping 19 matching lines...) Expand all
322 EXPECT_CALL(test_data_.mock_callback_, 323 EXPECT_CALL(test_data_.mock_callback_,
323 Release(test_data_.mailbox_name1_, 324 Release(test_data_.mailbox_name1_,
324 test_data_.sync_point1_, 325 test_data_.sync_point1_,
325 false)).Times(1); 326 false)).Times(1);
326 TextureLayerTest::TearDown(); 327 TextureLayerTest::TearDown();
327 } 328 }
328 }; 329 };
329 330
330 TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) { 331 TEST_F(TextureLayerWithMailboxTest, ReplaceMailboxOnMainThreadBeforeCommit) {
331 scoped_refptr<TextureLayer> test_layer = 332 scoped_refptr<TextureLayer> test_layer =
332 TextureLayer::CreateForMailbox(nullptr); 333 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
333 ASSERT_TRUE(test_layer.get()); 334 ASSERT_TRUE(test_layer.get());
334 335
335 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 336 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
336 layer_tree_host_->SetRootLayer(test_layer); 337 layer_tree_host_->SetRootLayer(test_layer);
337 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 338 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
338 339
339 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); 340 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
340 test_layer->SetTextureMailbox( 341 test_layer->SetTextureMailbox(
341 test_data_.mailbox1_, 342 test_data_.mailbox1_,
342 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); 343 SingleReleaseCallback::Create(test_data_.release_mailbox1_));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 381
381 // Test destructor. 382 // Test destructor.
382 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1)); 383 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AtLeast(1));
383 test_layer->SetTextureMailbox( 384 test_layer->SetTextureMailbox(
384 test_data_.mailbox1_, 385 test_data_.mailbox1_,
385 SingleReleaseCallback::Create(test_data_.release_mailbox1_)); 386 SingleReleaseCallback::Create(test_data_.release_mailbox1_));
386 } 387 }
387 388
388 TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) { 389 TEST_F(TextureLayerTest, SetTextureMailboxWithoutReleaseCallback) {
389 scoped_refptr<TextureLayer> test_layer = 390 scoped_refptr<TextureLayer> test_layer =
390 TextureLayer::CreateForMailbox(nullptr); 391 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
391 ASSERT_TRUE(test_layer.get()); 392 ASSERT_TRUE(test_layer.get());
392 393
393 // These use the same gpu::Mailbox, but different sync points. 394 // These use the same gpu::Mailbox, but different sync points.
394 TextureMailbox mailbox1(MailboxFromChar('a'), GL_TEXTURE_2D, 1); 395 TextureMailbox mailbox1(MailboxFromChar('a'), GL_TEXTURE_2D, 1);
395 TextureMailbox mailbox2(MailboxFromChar('a'), GL_TEXTURE_2D, 2); 396 TextureMailbox mailbox2(MailboxFromChar('a'), GL_TEXTURE_2D, 2);
396 397
397 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber()); 398 EXPECT_CALL(*layer_tree_host_, SetNeedsCommit()).Times(AnyNumber());
398 layer_tree_host_->SetRootLayer(test_layer); 399 layer_tree_host_->SetRootLayer(test_layer);
399 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 400 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
400 401
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 } 461 }
461 462
462 scoped_ptr<TestMailboxHolder::MainThreadReference> 463 scoped_ptr<TestMailboxHolder::MainThreadReference>
463 main_ref_; 464 main_ref_;
464 base::Thread main_thread_; 465 base::Thread main_thread_;
465 scoped_ptr<BlockingTaskRunner> main_thread_task_runner_; 466 scoped_ptr<BlockingTaskRunner> main_thread_task_runner_;
466 }; 467 };
467 468
468 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) { 469 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_BothReleaseThenMain) {
469 scoped_refptr<TextureLayer> test_layer = 470 scoped_refptr<TextureLayer> test_layer =
470 TextureLayer::CreateForMailbox(nullptr); 471 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
471 ASSERT_TRUE(test_layer.get()); 472 ASSERT_TRUE(test_layer.get());
472 473
473 main_thread_.message_loop()->task_runner()->PostTask( 474 main_thread_.message_loop()->task_runner()->PostTask(
474 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 475 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
475 base::Unretained(this))); 476 base::Unretained(this)));
476 477
477 Wait(main_thread_); 478 Wait(main_thread_);
478 479
479 // The texture layer is attached to compositor1, and passes a reference to its 480 // The texture layer is attached to compositor1, and passes a reference to its
480 // impl tree. 481 // impl tree.
(...skipping 29 matching lines...) Expand all
510 511
511 main_thread_.message_loop()->task_runner()->PostTask( 512 main_thread_.message_loop()->task_runner()->PostTask(
512 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef, 513 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::ReleaseMainRef,
513 base::Unretained(this))); 514 base::Unretained(this)));
514 Wait(main_thread_); 515 Wait(main_thread_);
515 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 516 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
516 } 517 }
517 518
518 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) { 519 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleaseBetween) {
519 scoped_refptr<TextureLayer> test_layer = 520 scoped_refptr<TextureLayer> test_layer =
520 TextureLayer::CreateForMailbox(nullptr); 521 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
521 ASSERT_TRUE(test_layer.get()); 522 ASSERT_TRUE(test_layer.get());
522 523
523 main_thread_.message_loop()->task_runner()->PostTask( 524 main_thread_.message_loop()->task_runner()->PostTask(
524 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 525 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
525 base::Unretained(this))); 526 base::Unretained(this)));
526 527
527 Wait(main_thread_); 528 Wait(main_thread_);
528 529
529 // The texture layer is attached to compositor1, and passes a reference to its 530 // The texture layer is attached to compositor1, and passes a reference to its
530 // impl tree. 531 // impl tree.
(...skipping 30 matching lines...) Expand all
561 EXPECT_CALL(test_data_.mock_callback_, 562 EXPECT_CALL(test_data_.mock_callback_,
562 Release(test_data_.mailbox_name1_, 200, true)).Times(1); 563 Release(test_data_.mailbox_name1_, 200, true)).Times(1);
563 564
564 compositor2->Run(200, true, main_thread_task_runner_.get()); 565 compositor2->Run(200, true, main_thread_task_runner_.get());
565 Wait(main_thread_); 566 Wait(main_thread_);
566 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 567 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
567 } 568 }
568 569
569 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) { 570 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_MainReleasedFirst) {
570 scoped_refptr<TextureLayer> test_layer = 571 scoped_refptr<TextureLayer> test_layer =
571 TextureLayer::CreateForMailbox(nullptr); 572 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
572 ASSERT_TRUE(test_layer.get()); 573 ASSERT_TRUE(test_layer.get());
573 574
574 main_thread_.message_loop()->task_runner()->PostTask( 575 main_thread_.message_loop()->task_runner()->PostTask(
575 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 576 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
576 base::Unretained(this))); 577 base::Unretained(this)));
577 578
578 Wait(main_thread_); 579 Wait(main_thread_);
579 580
580 // The texture layer is attached to compositor1, and passes a reference to its 581 // The texture layer is attached to compositor1, and passes a reference to its
581 // impl tree. 582 // impl tree.
(...skipping 30 matching lines...) Expand all
612 EXPECT_CALL(test_data_.mock_callback_, 613 EXPECT_CALL(test_data_.mock_callback_,
613 Release(test_data_.mailbox_name1_, 100, true)).Times(1); 614 Release(test_data_.mailbox_name1_, 100, true)).Times(1);
614 615
615 compositor1->Run(100, true, main_thread_task_runner_.get()); 616 compositor1->Run(100, true, main_thread_task_runner_.get());
616 Wait(main_thread_); 617 Wait(main_thread_);
617 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 618 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
618 } 619 }
619 620
620 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) { 621 TEST_F(TextureLayerMailboxHolderTest, TwoCompositors_SecondImplRefShortcut) {
621 scoped_refptr<TextureLayer> test_layer = 622 scoped_refptr<TextureLayer> test_layer =
622 TextureLayer::CreateForMailbox(nullptr); 623 TextureLayer::CreateForMailbox(layer_settings_, nullptr);
623 ASSERT_TRUE(test_layer.get()); 624 ASSERT_TRUE(test_layer.get());
624 625
625 main_thread_.message_loop()->task_runner()->PostTask( 626 main_thread_.message_loop()->task_runner()->PostTask(
626 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef, 627 FROM_HERE, base::Bind(&TextureLayerMailboxHolderTest::CreateMainRef,
627 base::Unretained(this))); 628 base::Unretained(this)));
628 629
629 Wait(main_thread_); 630 Wait(main_thread_);
630 631
631 // The texture layer is attached to compositor1, and passes a reference to its 632 // The texture layer is attached to compositor1, and passes a reference to its
632 // impl tree. 633 // impl tree.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 base::Unretained(this))); 711 base::Unretained(this)));
711 layer_->SetTextureMailbox( 712 layer_->SetTextureMailbox(
712 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 713 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
713 callback.Pass()); 714 callback.Pass());
714 } 715 }
715 716
716 void BeginTest() override { 717 void BeginTest() override {
717 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 718 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
718 719
719 gfx::Size bounds(100, 100); 720 gfx::Size bounds(100, 100);
720 root_ = Layer::Create(); 721 root_ = Layer::Create(layer_settings());
721 root_->SetBounds(bounds); 722 root_->SetBounds(bounds);
722 723
723 layer_ = TextureLayer::CreateForMailbox(nullptr); 724 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
724 layer_->SetIsDrawable(true); 725 layer_->SetIsDrawable(true);
725 layer_->SetBounds(bounds); 726 layer_->SetBounds(bounds);
726 727
727 root_->AddChild(layer_); 728 root_->AddChild(layer_);
728 layer_tree_host()->SetRootLayer(root_); 729 layer_tree_host()->SetRootLayer(root_);
729 layer_tree_host()->SetViewportSize(bounds); 730 layer_tree_host()->SetViewportSize(bounds);
730 SetMailbox('1'); 731 SetMailbox('1');
731 EXPECT_EQ(0, callback_count_); 732 EXPECT_EQ(0, callback_count_);
732 733
733 // Case #1: change mailbox before the commit. The old mailbox should be 734 // Case #1: change mailbox before the commit. The old mailbox should be
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 832 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
832 base::Bind( 833 base::Bind(
833 &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback)); 834 &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback));
834 layer_->SetTextureMailbox( 835 layer_->SetTextureMailbox(
835 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 836 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
836 callback.Pass()); 837 callback.Pass());
837 } 838 }
838 839
839 void BeginTest() override { 840 void BeginTest() override {
840 gfx::Size bounds(100, 100); 841 gfx::Size bounds(100, 100);
841 root_ = Layer::Create(); 842 root_ = Layer::Create(layer_settings());
842 root_->SetBounds(bounds); 843 root_->SetBounds(bounds);
843 844
844 layer_ = TextureLayer::CreateForMailbox(nullptr); 845 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
845 layer_->SetIsDrawable(true); 846 layer_->SetIsDrawable(true);
846 layer_->SetBounds(bounds); 847 layer_->SetBounds(bounds);
847 848
848 root_->AddChild(layer_); 849 root_->AddChild(layer_);
849 layer_tree_host()->SetRootLayer(root_); 850 layer_tree_host()->SetRootLayer(root_);
850 layer_tree_host()->SetViewportSize(bounds); 851 layer_tree_host()->SetViewportSize(bounds);
851 SetMailbox('1'); 852 SetMailbox('1');
852 853
853 PostSetNeedsCommitToMainThread(); 854 PostSetNeedsCommitToMainThread();
854 } 855 }
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 } 1133 }
1133 1134
1134 void MailboxReleased(uint32 sync_point, bool lost_resource) { 1135 void MailboxReleased(uint32 sync_point, bool lost_resource) {
1135 // Source frame number during callback is the same as the source frame 1136 // Source frame number during callback is the same as the source frame
1136 // on which it was released. 1137 // on which it was released.
1137 EXPECT_EQ(1, layer_tree_host()->source_frame_number()); 1138 EXPECT_EQ(1, layer_tree_host()->source_frame_number());
1138 EndTest(); 1139 EndTest();
1139 } 1140 }
1140 1141
1141 void SetupTree() override { 1142 void SetupTree() override {
1142 scoped_refptr<Layer> root = Layer::Create(); 1143 scoped_refptr<Layer> root = Layer::Create(layer_settings());
1143 root->SetBounds(gfx::Size(10, 10)); 1144 root->SetBounds(gfx::Size(10, 10));
1144 root->SetIsDrawable(true); 1145 root->SetIsDrawable(true);
1145 1146
1146 texture_layer_ = TextureLayer::CreateForMailbox(this); 1147 texture_layer_ = TextureLayer::CreateForMailbox(layer_settings(), this);
1147 texture_layer_->SetBounds(gfx::Size(10, 10)); 1148 texture_layer_->SetBounds(gfx::Size(10, 10));
1148 texture_layer_->SetIsDrawable(true); 1149 texture_layer_->SetIsDrawable(true);
1149 root->AddChild(texture_layer_); 1150 root->AddChild(texture_layer_);
1150 1151
1151 layer_tree_host()->SetRootLayer(root); 1152 layer_tree_host()->SetRootLayer(root);
1152 LayerTreeTest::SetupTree(); 1153 LayerTreeTest::SetupTree();
1153 } 1154 }
1154 1155
1155 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1156 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1156 1157
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 1228
1228 TextureMailbox MakeMailbox(char name) { 1229 TextureMailbox MakeMailbox(char name) {
1229 return TextureMailbox(MailboxFromChar(name), GL_TEXTURE_2D, 0); 1230 return TextureMailbox(MailboxFromChar(name), GL_TEXTURE_2D, 0);
1230 } 1231 }
1231 1232
1232 void MailboxReleased(uint32 sync_point, bool lost_resource) { 1233 void MailboxReleased(uint32 sync_point, bool lost_resource) {
1233 ++mailbox_returned_; 1234 ++mailbox_returned_;
1234 } 1235 }
1235 1236
1236 void SetupTree() override { 1237 void SetupTree() override {
1237 scoped_refptr<Layer> root = Layer::Create(); 1238 scoped_refptr<Layer> root = Layer::Create(layer_settings());
1238 root->SetBounds(gfx::Size(10, 10)); 1239 root->SetBounds(gfx::Size(10, 10));
1239 root->SetIsDrawable(true); 1240 root->SetIsDrawable(true);
1240 1241
1241 solid_layer_ = SolidColorLayer::Create(); 1242 solid_layer_ = SolidColorLayer::Create(layer_settings());
1242 solid_layer_->SetBounds(gfx::Size(10, 10)); 1243 solid_layer_->SetBounds(gfx::Size(10, 10));
1243 solid_layer_->SetIsDrawable(true); 1244 solid_layer_->SetIsDrawable(true);
1244 solid_layer_->SetBackgroundColor(SK_ColorWHITE); 1245 solid_layer_->SetBackgroundColor(SK_ColorWHITE);
1245 root->AddChild(solid_layer_); 1246 root->AddChild(solid_layer_);
1246 1247
1247 parent_layer_ = Layer::Create(); 1248 parent_layer_ = Layer::Create(layer_settings());
1248 parent_layer_->SetBounds(gfx::Size(10, 10)); 1249 parent_layer_->SetBounds(gfx::Size(10, 10));
1249 parent_layer_->SetIsDrawable(true); 1250 parent_layer_->SetIsDrawable(true);
1250 root->AddChild(parent_layer_); 1251 root->AddChild(parent_layer_);
1251 1252
1252 texture_layer_ = TextureLayer::CreateForMailbox(this); 1253 texture_layer_ = TextureLayer::CreateForMailbox(layer_settings(), this);
1253 texture_layer_->SetBounds(gfx::Size(10, 10)); 1254 texture_layer_->SetBounds(gfx::Size(10, 10));
1254 texture_layer_->SetIsDrawable(true); 1255 texture_layer_->SetIsDrawable(true);
1255 parent_layer_->AddChild(texture_layer_); 1256 parent_layer_->AddChild(texture_layer_);
1256 1257
1257 layer_tree_host()->SetRootLayer(root); 1258 layer_tree_host()->SetRootLayer(root);
1258 LayerTreeTest::SetupTree(); 1259 LayerTreeTest::SetupTree();
1259 } 1260 }
1260 1261
1261 void BeginTest() override { PostSetNeedsCommitToMainThread(); } 1262 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
1262 1263
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1357 } 1358 }
1358 1359
1359 void MailboxReleased(unsigned sync_point, bool lost_resource) { 1360 void MailboxReleased(unsigned sync_point, bool lost_resource) {
1360 mailbox_released_ = true; 1361 mailbox_released_ = true;
1361 } 1362 }
1362 1363
1363 void SetupTree() override { 1364 void SetupTree() override {
1364 LayerTreeTest::SetupTree(); 1365 LayerTreeTest::SetupTree();
1365 1366
1366 scoped_refptr<TextureLayer> texture_layer = 1367 scoped_refptr<TextureLayer> texture_layer =
1367 TextureLayer::CreateForMailbox(this); 1368 TextureLayer::CreateForMailbox(layer_settings(), this);
1368 texture_layer->SetBounds(gfx::Size(10, 10)); 1369 texture_layer->SetBounds(gfx::Size(10, 10));
1369 texture_layer->SetIsDrawable(true); 1370 texture_layer->SetIsDrawable(true);
1370 1371
1371 layer_tree_host()->root_layer()->AddChild(texture_layer); 1372 layer_tree_host()->root_layer()->AddChild(texture_layer);
1372 } 1373 }
1373 1374
1374 void BeginTest() override { 1375 void BeginTest() override {
1375 mailbox_released_ = false; 1376 mailbox_released_ = false;
1376 PostSetNeedsCommitToMainThread(); 1377 PostSetNeedsCommitToMainThread();
1377 } 1378 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 base::Bind( 1422 base::Bind(
1422 &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback, 1423 &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback,
1423 base::Unretained(this))); 1424 base::Unretained(this)));
1424 layer_->SetTextureMailbox( 1425 layer_->SetTextureMailbox(
1425 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 1426 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
1426 callback.Pass()); 1427 callback.Pass());
1427 } 1428 }
1428 1429
1429 void SetupTree() override { 1430 void SetupTree() override {
1430 gfx::Size bounds(100, 100); 1431 gfx::Size bounds(100, 100);
1431 root_ = Layer::Create(); 1432 root_ = Layer::Create(layer_settings());
1432 root_->SetBounds(bounds); 1433 root_->SetBounds(bounds);
1433 1434
1434 layer_ = TextureLayer::CreateForMailbox(nullptr); 1435 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
1435 layer_->SetIsDrawable(true); 1436 layer_->SetIsDrawable(true);
1436 layer_->SetBounds(bounds); 1437 layer_->SetBounds(bounds);
1437 1438
1438 root_->AddChild(layer_); 1439 root_->AddChild(layer_);
1439 layer_tree_host()->SetRootLayer(root_); 1440 layer_tree_host()->SetRootLayer(root_);
1440 layer_tree_host()->SetViewportSize(bounds); 1441 layer_tree_host()->SetViewportSize(bounds);
1441 } 1442 }
1442 1443
1443 void BeginTest() override { 1444 void BeginTest() override {
1444 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 1445 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1490 base::Bind( 1491 base::Bind(
1491 &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback, 1492 &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback,
1492 base::Unretained(this))); 1493 base::Unretained(this)));
1493 layer_->SetTextureMailbox( 1494 layer_->SetTextureMailbox(
1494 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0), 1495 TextureMailbox(MailboxFromChar(mailbox_char), GL_TEXTURE_2D, 0),
1495 callback.Pass()); 1496 callback.Pass());
1496 } 1497 }
1497 1498
1498 void SetupTree() override { 1499 void SetupTree() override {
1499 gfx::Size bounds(100, 100); 1500 gfx::Size bounds(100, 100);
1500 root_ = Layer::Create(); 1501 root_ = Layer::Create(layer_settings());
1501 root_->SetBounds(bounds); 1502 root_->SetBounds(bounds);
1502 1503
1503 layer_ = TextureLayer::CreateForMailbox(nullptr); 1504 layer_ = TextureLayer::CreateForMailbox(layer_settings(), nullptr);
1504 layer_->SetIsDrawable(true); 1505 layer_->SetIsDrawable(true);
1505 layer_->SetBounds(bounds); 1506 layer_->SetBounds(bounds);
1506 1507
1507 root_->AddChild(layer_); 1508 root_->AddChild(layer_);
1508 layer_tree_host()->SetRootLayer(root_); 1509 layer_tree_host()->SetRootLayer(root_);
1509 layer_tree_host()->SetViewportSize(bounds); 1510 layer_tree_host()->SetViewportSize(bounds);
1510 } 1511 }
1511 1512
1512 void BeginTest() override { 1513 void BeginTest() override {
1513 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 1514 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
(...skipping 28 matching lines...) Expand all
1542 int callback_count_; 1543 int callback_count_;
1543 scoped_refptr<Layer> root_; 1544 scoped_refptr<Layer> root_;
1544 scoped_refptr<TextureLayer> layer_; 1545 scoped_refptr<TextureLayer> layer_;
1545 }; 1546 };
1546 1547
1547 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( 1548 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
1548 TextureLayerWithMailboxImplThreadDeleted); 1549 TextureLayerWithMailboxImplThreadDeleted);
1549 1550
1550 } // namespace 1551 } // namespace
1551 } // namespace cc 1552 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/texture_layer.cc ('k') | cc/layers/tiled_layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698