| OLD | NEW |
| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 1311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1322 | 1322 |
| 1323 void SetupTree() override { | 1323 void SetupTree() override { |
| 1324 LayerTreeTest::SetupTree(); | 1324 LayerTreeTest::SetupTree(); |
| 1325 | 1325 |
| 1326 scoped_refptr<TextureLayer> texture_layer = | 1326 scoped_refptr<TextureLayer> texture_layer = |
| 1327 TextureLayer::CreateForMailbox(this); | 1327 TextureLayer::CreateForMailbox(this); |
| 1328 texture_layer->SetBounds(gfx::Size(10, 10)); | 1328 texture_layer->SetBounds(gfx::Size(10, 10)); |
| 1329 texture_layer->SetIsDrawable(true); | 1329 texture_layer->SetIsDrawable(true); |
| 1330 | 1330 |
| 1331 layer_tree_host()->root_layer()->AddChild(texture_layer); | 1331 layer_tree_host()->root_layer()->AddChild(texture_layer); |
| 1332 texture_layer_id_ = texture_layer->id(); |
| 1332 } | 1333 } |
| 1333 | 1334 |
| 1334 void BeginTest() override { | 1335 void BeginTest() override { |
| 1335 mailbox_released_ = false; | 1336 mailbox_released_ = false; |
| 1336 PostSetNeedsCommitToMainThread(); | 1337 PostSetNeedsCommitToMainThread(); |
| 1337 } | 1338 } |
| 1338 | 1339 |
| 1339 void DidCommitAndDrawFrame() override { EndTest(); } | 1340 void DidCommitAndDrawFrame() override { EndTest(); } |
| 1340 | 1341 |
| 1341 void AfterTest() override { EXPECT_TRUE(mailbox_released_); } | 1342 void AfterTest() override { EXPECT_TRUE(mailbox_released_); } |
| 1342 | 1343 |
| 1344 protected: |
| 1345 int texture_layer_id_; |
| 1346 |
| 1343 private: | 1347 private: |
| 1344 bool mailbox_released_; | 1348 bool mailbox_released_; |
| 1345 }; | 1349 }; |
| 1346 | 1350 |
| 1347 class TextureLayerReleaseResourcesAfterCommit | 1351 class TextureLayerReleaseResourcesAfterCommit |
| 1348 : public TextureLayerReleaseResourcesBase { | 1352 : public TextureLayerReleaseResourcesBase { |
| 1349 public: | 1353 public: |
| 1350 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { | 1354 void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override { |
| 1351 LayerTreeImpl* tree = nullptr; | 1355 LayerTreeImpl* tree = nullptr; |
| 1352 tree = host_impl->sync_tree(); | 1356 tree = host_impl->sync_tree(); |
| 1353 tree->root_layer()->children()[0]->ReleaseResources(); | 1357 tree->LayerById(texture_layer_id_)->ReleaseResources(); |
| 1354 } | 1358 } |
| 1355 }; | 1359 }; |
| 1356 | 1360 |
| 1357 SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerReleaseResourcesAfterCommit); | 1361 SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerReleaseResourcesAfterCommit); |
| 1358 | 1362 |
| 1359 class TextureLayerReleaseResourcesAfterActivate | 1363 class TextureLayerReleaseResourcesAfterActivate |
| 1360 : public TextureLayerReleaseResourcesBase { | 1364 : public TextureLayerReleaseResourcesBase { |
| 1361 public: | 1365 public: |
| 1362 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { | 1366 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { |
| 1363 host_impl->active_tree()->root_layer()->children()[0]->ReleaseResources(); | 1367 host_impl->active_tree()->LayerById(texture_layer_id_)->ReleaseResources(); |
| 1364 } | 1368 } |
| 1365 }; | 1369 }; |
| 1366 | 1370 |
| 1367 SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerReleaseResourcesAfterActivate); | 1371 SINGLE_AND_MULTI_THREAD_TEST_F(TextureLayerReleaseResourcesAfterActivate); |
| 1368 | 1372 |
| 1369 class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest { | 1373 class TextureLayerWithMailboxMainThreadDeleted : public LayerTreeTest { |
| 1370 public: | 1374 public: |
| 1371 void ReleaseCallback(const gpu::SyncToken& sync_token, bool lost_resource) { | 1375 void ReleaseCallback(const gpu::SyncToken& sync_token, bool lost_resource) { |
| 1372 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); | 1376 EXPECT_EQ(true, main_thread_.CalledOnValidThread()); |
| 1373 EXPECT_FALSE(lost_resource); | 1377 EXPECT_FALSE(lost_resource); |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1506 int callback_count_; | 1510 int callback_count_; |
| 1507 scoped_refptr<Layer> root_; | 1511 scoped_refptr<Layer> root_; |
| 1508 scoped_refptr<TextureLayer> layer_; | 1512 scoped_refptr<TextureLayer> layer_; |
| 1509 }; | 1513 }; |
| 1510 | 1514 |
| 1511 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( | 1515 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( |
| 1512 TextureLayerWithMailboxImplThreadDeleted); | 1516 TextureLayerWithMailboxImplThreadDeleted); |
| 1513 | 1517 |
| 1514 } // namespace | 1518 } // namespace |
| 1515 } // namespace cc | 1519 } // namespace cc |
| OLD | NEW |