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

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

Issue 105743004: Add gpu::MailboxHolder to hold state for a gpu::Mailbox (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: bfbc08f8 Android clang fixes. Created 6 years, 11 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/layers/texture_layer.cc ('k') | cc/output/gl_renderer.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/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 23 matching lines...) Expand all
34 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
35 35
36 using ::testing::Mock; 36 using ::testing::Mock;
37 using ::testing::_; 37 using ::testing::_;
38 using ::testing::AtLeast; 38 using ::testing::AtLeast;
39 using ::testing::AnyNumber; 39 using ::testing::AnyNumber;
40 40
41 namespace cc { 41 namespace cc {
42 namespace { 42 namespace {
43 43
44 gpu::Mailbox MailboxFromString(const std::string& string) {
45 gpu::Mailbox mailbox;
46 mailbox.SetName(reinterpret_cast<const int8*>(string.data()));
47 return mailbox;
48 }
49
44 class MockLayerTreeHost : public LayerTreeHost { 50 class MockLayerTreeHost : public LayerTreeHost {
45 public: 51 public:
46 explicit MockLayerTreeHost(FakeLayerTreeHostClient* client) 52 explicit MockLayerTreeHost(FakeLayerTreeHostClient* client)
47 : LayerTreeHost(client, NULL, LayerTreeSettings()) { 53 : LayerTreeHost(client, NULL, LayerTreeSettings()) {
48 InitializeSingleThreaded(client); 54 InitializeSingleThreaded(client);
49 } 55 }
50 56
51 MOCK_METHOD0(AcquireLayerTextures, void()); 57 MOCK_METHOD0(AcquireLayerTextures, void());
52 MOCK_METHOD0(SetNeedsCommit, void()); 58 MOCK_METHOD0(SetNeedsCommit, void());
53 MOCK_METHOD0(SetNeedsUpdateLayers, void()); 59 MOCK_METHOD0(SetNeedsUpdateLayers, void());
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 314 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
309 315
310 // Stop rate limiter when we're removed from the tree. 316 // Stop rate limiter when we're removed from the tree.
311 EXPECT_CALL(*layer_tree_host_, StopRateLimiter()); 317 EXPECT_CALL(*layer_tree_host_, StopRateLimiter());
312 layer_tree_host_->SetRootLayer(NULL); 318 layer_tree_host_->SetRootLayer(NULL);
313 Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 319 Mock::VerifyAndClearExpectations(layer_tree_host_.get());
314 } 320 }
315 321
316 class MockMailboxCallback { 322 class MockMailboxCallback {
317 public: 323 public:
318 MOCK_METHOD3(Release, void(const std::string& mailbox, 324 MOCK_METHOD3(Release,
319 unsigned sync_point, 325 void(const std::string& mailbox,
320 bool lost_resource)); 326 uint32 sync_point,
321 MOCK_METHOD3(Release2, void(base::SharedMemory* shared_memory, 327 bool lost_resource));
322 unsigned sync_point, 328 MOCK_METHOD3(Release2,
323 bool lost_resource)); 329 void(base::SharedMemory* shared_memory,
330 uint32 sync_point,
331 bool lost_resource));
324 }; 332 };
325 333
326 struct CommonMailboxObjects { 334 struct CommonMailboxObjects {
327 CommonMailboxObjects() 335 CommonMailboxObjects()
328 : mailbox_name1_(64, '1'), 336 : mailbox_name1_(64, '1'),
329 mailbox_name2_(64, '2'), 337 mailbox_name2_(64, '2'),
330 sync_point1_(1), 338 sync_point1_(1),
331 sync_point2_(2), 339 sync_point2_(2),
332 shared_memory_(new base::SharedMemory) { 340 shared_memory_(new base::SharedMemory) {
333 release_mailbox1_ = base::Bind(&MockMailboxCallback::Release, 341 release_mailbox1_ = base::Bind(&MockMailboxCallback::Release,
334 base::Unretained(&mock_callback_), 342 base::Unretained(&mock_callback_),
335 mailbox_name1_); 343 mailbox_name1_);
336 release_mailbox2_ = base::Bind(&MockMailboxCallback::Release, 344 release_mailbox2_ = base::Bind(&MockMailboxCallback::Release,
337 base::Unretained(&mock_callback_), 345 base::Unretained(&mock_callback_),
338 mailbox_name2_); 346 mailbox_name2_);
339 gpu::Mailbox m1; 347 const uint32 arbitrary_target1 = 1;
340 m1.SetName(reinterpret_cast<const int8*>(mailbox_name1_.data())); 348 const uint32 arbitrary_target2 = 2;
341 mailbox1_ = TextureMailbox(m1, sync_point1_); 349 mailbox1_ = TextureMailbox(
342 gpu::Mailbox m2; 350 MailboxFromString(mailbox_name1_), arbitrary_target1, sync_point1_);
343 m2.SetName(reinterpret_cast<const int8*>(mailbox_name2_.data())); 351 mailbox2_ = TextureMailbox(
344 mailbox2_ = TextureMailbox(m2, sync_point2_); 352 MailboxFromString(mailbox_name2_), arbitrary_target2, sync_point2_);
345
346 gfx::Size size(128, 128); 353 gfx::Size size(128, 128);
347 EXPECT_TRUE(shared_memory_->CreateAndMapAnonymous(4 * size.GetArea())); 354 EXPECT_TRUE(shared_memory_->CreateAndMapAnonymous(4 * size.GetArea()));
348 release_mailbox3_ = base::Bind(&MockMailboxCallback::Release2, 355 release_mailbox3_ = base::Bind(&MockMailboxCallback::Release2,
349 base::Unretained(&mock_callback_), 356 base::Unretained(&mock_callback_),
350 shared_memory_.get()); 357 shared_memory_.get());
351 mailbox3_ = TextureMailbox(shared_memory_.get(), size); 358 mailbox3_ = TextureMailbox(shared_memory_.get(), size);
352 } 359 }
353 360
354 std::string mailbox_name1_; 361 std::string mailbox_name1_;
355 std::string mailbox_name2_; 362 std::string mailbox_name2_;
356 MockMailboxCallback mock_callback_; 363 MockMailboxCallback mock_callback_;
357 ReleaseCallback release_mailbox1_; 364 ReleaseCallback release_mailbox1_;
358 ReleaseCallback release_mailbox2_; 365 ReleaseCallback release_mailbox2_;
359 ReleaseCallback release_mailbox3_; 366 ReleaseCallback release_mailbox3_;
360 TextureMailbox mailbox1_; 367 TextureMailbox mailbox1_;
361 TextureMailbox mailbox2_; 368 TextureMailbox mailbox2_;
362 TextureMailbox mailbox3_; 369 TextureMailbox mailbox3_;
363 unsigned sync_point1_; 370 uint32 sync_point1_;
364 unsigned sync_point2_; 371 uint32 sync_point2_;
365 scoped_ptr<base::SharedMemory> shared_memory_; 372 scoped_ptr<base::SharedMemory> shared_memory_;
366 }; 373 };
367 374
368 class TestMailboxHolder : public TextureLayer::MailboxHolder { 375 class TestMailboxHolder : public TextureLayer::TextureMailboxHolder {
369 public: 376 public:
370 using TextureLayer::MailboxHolder::Create; 377 using TextureLayer::TextureMailboxHolder::Create;
371 378
372 protected: 379 protected:
373 virtual ~TestMailboxHolder() {} 380 virtual ~TestMailboxHolder() {}
374 }; 381 };
375 382
376 class TextureLayerWithMailboxTest : public TextureLayerTest { 383 class TextureLayerWithMailboxTest : public TextureLayerTest {
377 protected: 384 protected:
378 virtual void TearDown() { 385 virtual void TearDown() {
379 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 386 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
380 EXPECT_CALL(test_data_.mock_callback_, 387 EXPECT_CALL(test_data_.mock_callback_,
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_); 754 Mock::VerifyAndClearExpectations(&test_data_.mock_callback_);
748 } 755 }
749 756
750 class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest { 757 class TextureLayerImplWithMailboxThreadedCallback : public LayerTreeTest {
751 public: 758 public:
752 TextureLayerImplWithMailboxThreadedCallback() 759 TextureLayerImplWithMailboxThreadedCallback()
753 : callback_count_(0), 760 : callback_count_(0),
754 commit_count_(0) {} 761 commit_count_(0) {}
755 762
756 // Make sure callback is received on main and doesn't block the impl thread. 763 // Make sure callback is received on main and doesn't block the impl thread.
757 void ReleaseCallback(unsigned sync_point, bool lost_resource) { 764 void ReleaseCallback(uint32 sync_point, bool lost_resource) {
758 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 765 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
759 EXPECT_FALSE(lost_resource); 766 EXPECT_FALSE(lost_resource);
760 ++callback_count_; 767 ++callback_count_;
761 } 768 }
762 769
763 void SetMailbox(char mailbox_char) { 770 void SetMailbox(char mailbox_char) {
764 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 771 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
765 TextureMailbox mailbox(std::string(64, mailbox_char));
766 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 772 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
767 base::Bind( 773 base::Bind(
768 &TextureLayerImplWithMailboxThreadedCallback::ReleaseCallback, 774 &TextureLayerImplWithMailboxThreadedCallback::ReleaseCallback,
769 base::Unretained(this))); 775 base::Unretained(this)));
770 layer_->SetTextureMailbox(mailbox, callback.Pass()); 776 layer_->SetTextureMailbox(
777 TextureMailbox(
778 MailboxFromString(std::string(64, mailbox_char)), GL_TEXTURE_2D, 0),
779 callback.Pass());
771 } 780 }
772 781
773 virtual void BeginTest() OVERRIDE { 782 virtual void BeginTest() OVERRIDE {
774 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 783 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
775 784
776 gfx::Size bounds(100, 100); 785 gfx::Size bounds(100, 100);
777 root_ = Layer::Create(); 786 root_ = Layer::Create();
778 root_->SetAnchorPoint(gfx::PointF()); 787 root_->SetAnchorPoint(gfx::PointF());
779 root_->SetBounds(bounds); 788 root_->SetBounds(bounds);
780 789
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 TextureLayerNoMailboxIsActivatedDuringCommit); 1019 TextureLayerNoMailboxIsActivatedDuringCommit);
1011 1020
1012 class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest { 1021 class TextureLayerMailboxIsActivatedDuringCommit : public LayerTreeTest {
1013 protected: 1022 protected:
1014 TextureLayerMailboxIsActivatedDuringCommit() 1023 TextureLayerMailboxIsActivatedDuringCommit()
1015 : wait_thread_("WAIT"), 1024 : wait_thread_("WAIT"),
1016 wait_event_(false, false) { 1025 wait_event_(false, false) {
1017 wait_thread_.Start(); 1026 wait_thread_.Start();
1018 } 1027 }
1019 1028
1020 static void ReleaseCallback(unsigned sync_point, bool lost_resource) {} 1029 static void ReleaseCallback(uint32 sync_point, bool lost_resource) {}
1021 1030
1022 void SetMailbox(char mailbox_char) { 1031 void SetMailbox(char mailbox_char) {
1023 TextureMailbox mailbox(std::string(64, mailbox_char));
1024 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 1032 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
1025 base::Bind( 1033 base::Bind(
1026 &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback)); 1034 &TextureLayerMailboxIsActivatedDuringCommit::ReleaseCallback));
1027 layer_->SetTextureMailbox(mailbox, callback.Pass()); 1035 layer_->SetTextureMailbox(
1036 TextureMailbox(
1037 MailboxFromString(std::string(64, mailbox_char)), GL_TEXTURE_2D, 0),
1038 callback.Pass());
1028 } 1039 }
1029 1040
1030 virtual void BeginTest() OVERRIDE { 1041 virtual void BeginTest() OVERRIDE {
1031 activate_count_ = 0; 1042 activate_count_ = 0;
1032 1043
1033 gfx::Size bounds(100, 100); 1044 gfx::Size bounds(100, 100);
1034 root_ = Layer::Create(); 1045 root_ = Layer::Create();
1035 root_->SetAnchorPoint(gfx::PointF()); 1046 root_->SetAnchorPoint(gfx::PointF());
1036 root_->SetBounds(bounds); 1047 root_->SetBounds(bounds);
1037 1048
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1682 class TextureLayerNoExtraCommitForMailboxTest 1693 class TextureLayerNoExtraCommitForMailboxTest
1683 : public LayerTreeTest, 1694 : public LayerTreeTest,
1684 public TextureLayerClient { 1695 public TextureLayerClient {
1685 public: 1696 public:
1686 // TextureLayerClient implementation. 1697 // TextureLayerClient implementation.
1687 virtual unsigned PrepareTexture() OVERRIDE { 1698 virtual unsigned PrepareTexture() OVERRIDE {
1688 NOTREACHED(); 1699 NOTREACHED();
1689 return 0; 1700 return 0;
1690 } 1701 }
1691 virtual bool PrepareTextureMailbox( 1702 virtual bool PrepareTextureMailbox(
1692 TextureMailbox* mailbox, 1703 TextureMailbox* texture_mailbox,
1693 scoped_ptr<SingleReleaseCallback>* release_callback, 1704 scoped_ptr<SingleReleaseCallback>* release_callback,
1694 bool use_shared_memory) OVERRIDE { 1705 bool use_shared_memory) OVERRIDE {
1695 if (layer_tree_host()->source_frame_number() == 1) { 1706 if (layer_tree_host()->source_frame_number() == 1) {
1696 *mailbox = TextureMailbox(); 1707 *texture_mailbox = TextureMailbox();
1697 return true; 1708 return true;
1698 } 1709 }
1699 1710
1700 *mailbox = TextureMailbox(std::string(64, '1')); 1711 *texture_mailbox = TextureMailbox(
1712 MailboxFromString(std::string(64, '1')), GL_TEXTURE_2D, 0);
1701 *release_callback = SingleReleaseCallback::Create( 1713 *release_callback = SingleReleaseCallback::Create(
1702 base::Bind(&TextureLayerNoExtraCommitForMailboxTest::MailboxReleased, 1714 base::Bind(&TextureLayerNoExtraCommitForMailboxTest::MailboxReleased,
1703 base::Unretained(this))); 1715 base::Unretained(this)));
1704 return true; 1716 return true;
1705 } 1717 }
1706 1718
1707 void MailboxReleased(unsigned sync_point, bool lost_resource) { 1719 void MailboxReleased(uint32 sync_point, bool lost_resource) {
1708 EXPECT_EQ(2, layer_tree_host()->source_frame_number()); 1720 EXPECT_EQ(2, layer_tree_host()->source_frame_number());
1709 EndTest(); 1721 EndTest();
1710 } 1722 }
1711 1723
1712 virtual void SetupTree() OVERRIDE { 1724 virtual void SetupTree() OVERRIDE {
1713 scoped_refptr<Layer> root = Layer::Create(); 1725 scoped_refptr<Layer> root = Layer::Create();
1714 root->SetBounds(gfx::Size(10, 10)); 1726 root->SetBounds(gfx::Size(10, 10));
1715 root->SetAnchorPoint(gfx::PointF()); 1727 root->SetAnchorPoint(gfx::PointF());
1716 root->SetIsDrawable(true); 1728 root->SetIsDrawable(true);
1717 1729
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1814 if (!mailbox_changed_) 1826 if (!mailbox_changed_)
1815 return false; 1827 return false;
1816 *mailbox = mailbox_; 1828 *mailbox = mailbox_;
1817 *release_callback = SingleReleaseCallback::Create( 1829 *release_callback = SingleReleaseCallback::Create(
1818 base::Bind(&TextureLayerChangeInvisibleMailboxTest::MailboxReleased, 1830 base::Bind(&TextureLayerChangeInvisibleMailboxTest::MailboxReleased,
1819 base::Unretained(this))); 1831 base::Unretained(this)));
1820 return true; 1832 return true;
1821 } 1833 }
1822 1834
1823 TextureMailbox MakeMailbox(char name) { 1835 TextureMailbox MakeMailbox(char name) {
1824 return TextureMailbox(std::string(64, name)); 1836 return TextureMailbox(
1837 MailboxFromString(std::string(64, name)), GL_TEXTURE_2D, 0);
1825 } 1838 }
1826 1839
1827 void MailboxReleased(unsigned sync_point, bool lost_resource) { 1840 void MailboxReleased(uint32 sync_point, bool lost_resource) {
1828 ++mailbox_returned_; 1841 ++mailbox_returned_;
1829 } 1842 }
1830 1843
1831 virtual void SetupTree() OVERRIDE { 1844 virtual void SetupTree() OVERRIDE {
1832 scoped_refptr<Layer> root = Layer::Create(); 1845 scoped_refptr<Layer> root = Layer::Create();
1833 root->SetBounds(gfx::Size(10, 10)); 1846 root->SetBounds(gfx::Size(10, 10));
1834 root->SetAnchorPoint(gfx::PointF()); 1847 root->SetAnchorPoint(gfx::PointF());
1835 root->SetIsDrawable(true); 1848 root->SetIsDrawable(true);
1836 1849
1837 solid_layer_ = SolidColorLayer::Create(); 1850 solid_layer_ = SolidColorLayer::Create();
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
2008 private: 2021 private:
2009 scoped_refptr<TextureLayer> texture_layer_; 2022 scoped_refptr<TextureLayer> texture_layer_;
2010 bool context_lost_; 2023 bool context_lost_;
2011 int draw_count_; 2024 int draw_count_;
2012 }; 2025 };
2013 2026
2014 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TextureLayerLostContextTest); 2027 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TextureLayerLostContextTest);
2015 2028
2016 class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest { 2029 class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest {
2017 public: 2030 public:
2018 void ReleaseCallback(unsigned sync_point, bool lost_resource) { 2031 void ReleaseCallback(uint32 sync_point, bool lost_resource) {
2019 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 2032 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
2020 EXPECT_FALSE(lost_resource); 2033 EXPECT_FALSE(lost_resource);
2021 ++callback_count_; 2034 ++callback_count_;
2022 EndTest(); 2035 EndTest();
2023 } 2036 }
2024 2037
2025 void SetMailbox(char mailbox_char) { 2038 void SetMailbox(char mailbox_char) {
2026 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 2039 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
2027 TextureMailbox mailbox(std::string(64, mailbox_char));
2028 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 2040 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
2029 base::Bind( 2041 base::Bind(
2030 &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback, 2042 &TextureLayerWithMailboxMainThreadDeleted::ReleaseCallback,
2031 base::Unretained(this))); 2043 base::Unretained(this)));
2032 layer_->SetTextureMailbox(mailbox, callback.Pass()); 2044 layer_->SetTextureMailbox(
2045 TextureMailbox(
2046 MailboxFromString(std::string(64, mailbox_char)), GL_TEXTURE_2D, 0),
2047 callback.Pass());
2033 } 2048 }
2034 2049
2035 virtual void SetupTree() OVERRIDE { 2050 virtual void SetupTree() OVERRIDE {
2036 gfx::Size bounds(100, 100); 2051 gfx::Size bounds(100, 100);
2037 root_ = Layer::Create(); 2052 root_ = Layer::Create();
2038 root_->SetAnchorPoint(gfx::PointF()); 2053 root_->SetAnchorPoint(gfx::PointF());
2039 root_->SetBounds(bounds); 2054 root_->SetBounds(bounds);
2040 2055
2041 layer_ = TextureLayer::CreateForMailbox(NULL); 2056 layer_ = TextureLayer::CreateForMailbox(NULL);
2042 layer_->SetIsDrawable(true); 2057 layer_->SetIsDrawable(true);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2080 int callback_count_; 2095 int callback_count_;
2081 scoped_refptr<Layer> root_; 2096 scoped_refptr<Layer> root_;
2082 scoped_refptr<TextureLayer> layer_; 2097 scoped_refptr<TextureLayer> layer_;
2083 }; 2098 };
2084 2099
2085 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( 2100 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
2086 TextureLayerWithMailboxMainThreadDeleted); 2101 TextureLayerWithMailboxMainThreadDeleted);
2087 2102
2088 class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest { 2103 class TextureLayerWithMailboxImplThreadDeleted : public LayerTreeTest {
2089 public: 2104 public:
2090 void ReleaseCallback(unsigned sync_point, bool lost_resource) { 2105 void ReleaseCallback(uint32 sync_point, bool lost_resource) {
2091 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 2106 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
2092 EXPECT_FALSE(lost_resource); 2107 EXPECT_FALSE(lost_resource);
2093 ++callback_count_; 2108 ++callback_count_;
2094 EndTest(); 2109 EndTest();
2095 } 2110 }
2096 2111
2097 void SetMailbox(char mailbox_char) { 2112 void SetMailbox(char mailbox_char) {
2098 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); 2113 EXPECT_EQ(true, main_thread_.CalledOnValidThread());
2099 TextureMailbox mailbox(std::string(64, mailbox_char));
2100 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 2114 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
2101 base::Bind( 2115 base::Bind(
2102 &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback, 2116 &TextureLayerWithMailboxImplThreadDeleted::ReleaseCallback,
2103 base::Unretained(this))); 2117 base::Unretained(this)));
2104 layer_->SetTextureMailbox(mailbox, callback.Pass()); 2118 layer_->SetTextureMailbox(
2119 TextureMailbox(
2120 MailboxFromString(std::string(64, mailbox_char)), GL_TEXTURE_2D, 0),
2121 callback.Pass());
2105 } 2122 }
2106 2123
2107 virtual void SetupTree() OVERRIDE { 2124 virtual void SetupTree() OVERRIDE {
2108 gfx::Size bounds(100, 100); 2125 gfx::Size bounds(100, 100);
2109 root_ = Layer::Create(); 2126 root_ = Layer::Create();
2110 root_->SetAnchorPoint(gfx::PointF()); 2127 root_->SetAnchorPoint(gfx::PointF());
2111 root_->SetBounds(bounds); 2128 root_->SetBounds(bounds);
2112 2129
2113 layer_ = TextureLayer::CreateForMailbox(NULL); 2130 layer_ = TextureLayer::CreateForMailbox(NULL);
2114 layer_->SetIsDrawable(true); 2131 layer_->SetIsDrawable(true);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2155 int callback_count_; 2172 int callback_count_;
2156 scoped_refptr<Layer> root_; 2173 scoped_refptr<Layer> root_;
2157 scoped_refptr<TextureLayer> layer_; 2174 scoped_refptr<TextureLayer> layer_;
2158 }; 2175 };
2159 2176
2160 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( 2177 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
2161 TextureLayerWithMailboxImplThreadDeleted); 2178 TextureLayerWithMailboxImplThreadDeleted);
2162 2179
2163 } // namespace 2180 } // namespace
2164 } // namespace cc 2181 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/texture_layer.cc ('k') | cc/output/gl_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698