| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 EXPECT_EQ(1u, map.count(555)); | 803 EXPECT_EQ(1u, map.count(555)); |
| 804 | 804 |
| 805 ResourceId parent_resource_id1 = map.find(999)->second; | 805 ResourceId parent_resource_id1 = map.find(999)->second; |
| 806 EXPECT_NE(parent_resource_id1, 999u); | 806 EXPECT_NE(parent_resource_id1, 999u); |
| 807 ResourceId parent_resource_id2 = map.find(555)->second; | 807 ResourceId parent_resource_id2 = map.find(555)->second; |
| 808 EXPECT_NE(parent_resource_id2, 555u); | 808 EXPECT_NE(parent_resource_id2, 555u); |
| 809 | 809 |
| 810 // The resources in the quads should be remapped to the parent's namespace. | 810 // The resources in the quads should be remapped to the parent's namespace. |
| 811 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( | 811 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( |
| 812 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list.ElementAt(0)); | 812 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list.ElementAt(0)); |
| 813 EXPECT_EQ(parent_resource_id1, quad1->resource_id); | 813 EXPECT_EQ(parent_resource_id1, quad1->resource_id()); |
| 814 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( | 814 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( |
| 815 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list.ElementAt(1)); | 815 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list.ElementAt(1)); |
| 816 EXPECT_EQ(parent_resource_id2, quad2->resource_id); | 816 EXPECT_EQ(parent_resource_id2, quad2->resource_id()); |
| 817 | 817 |
| 818 EndTest(); | 818 EndTest(); |
| 819 } | 819 } |
| 820 }; | 820 }; |
| 821 | 821 |
| 822 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemapResourcesInQuads); | 822 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemapResourcesInQuads); |
| 823 | 823 |
| 824 class LayerTreeHostDelegatedTestReturnUnusedResources | 824 class LayerTreeHostDelegatedTestReturnUnusedResources |
| 825 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { | 825 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { |
| 826 public: | 826 public: |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1048 EXPECT_EQ(1u, map.size()); | 1048 EXPECT_EQ(1u, map.size()); |
| 1049 EXPECT_EQ(1u, map.count(999)); | 1049 EXPECT_EQ(1u, map.count(999)); |
| 1050 | 1050 |
| 1051 EXPECT_EQ(1u, delegated_impl->Resources().size()); | 1051 EXPECT_EQ(1u, delegated_impl->Resources().size()); |
| 1052 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1052 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1053 | 1053 |
| 1054 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1054 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1055 EXPECT_EQ(1u, pass->quad_list.size()); | 1055 EXPECT_EQ(1u, pass->quad_list.size()); |
| 1056 const TextureDrawQuad* quad = | 1056 const TextureDrawQuad* quad = |
| 1057 TextureDrawQuad::MaterialCast(pass->quad_list.front()); | 1057 TextureDrawQuad::MaterialCast(pass->quad_list.front()); |
| 1058 EXPECT_EQ(map.find(999)->second, quad->resource_id); | 1058 EXPECT_EQ(map.find(999)->second, quad->resource_id()); |
| 1059 | 1059 |
| 1060 EndTest(); | 1060 EndTest(); |
| 1061 } | 1061 } |
| 1062 | 1062 |
| 1063 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override { | 1063 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override { |
| 1064 ReturnUnusedResourcesFromParent(host_impl); | 1064 ReturnUnusedResourcesFromParent(host_impl); |
| 1065 } | 1065 } |
| 1066 }; | 1066 }; |
| 1067 | 1067 |
| 1068 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestFrameBeforeAck); | 1068 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestFrameBeforeAck); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1160 | 1160 |
| 1161 EXPECT_EQ(3u, delegated_impl->Resources().size()); | 1161 EXPECT_EQ(3u, delegated_impl->Resources().size()); |
| 1162 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1162 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1163 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); | 1163 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); |
| 1164 EXPECT_EQ(1u, delegated_impl->Resources().count(444)); | 1164 EXPECT_EQ(1u, delegated_impl->Resources().count(444)); |
| 1165 | 1165 |
| 1166 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1166 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1167 EXPECT_EQ(3u, pass->quad_list.size()); | 1167 EXPECT_EQ(3u, pass->quad_list.size()); |
| 1168 const TextureDrawQuad* quad1 = | 1168 const TextureDrawQuad* quad1 = |
| 1169 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); | 1169 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); |
| 1170 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1170 EXPECT_EQ(map.find(999)->second, quad1->resource_id()); |
| 1171 const TextureDrawQuad* quad2 = | 1171 const TextureDrawQuad* quad2 = |
| 1172 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); | 1172 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); |
| 1173 EXPECT_EQ(map.find(555)->second, quad2->resource_id); | 1173 EXPECT_EQ(map.find(555)->second, quad2->resource_id()); |
| 1174 const TextureDrawQuad* quad3 = | 1174 const TextureDrawQuad* quad3 = |
| 1175 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(2)); | 1175 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(2)); |
| 1176 EXPECT_EQ(map.find(444)->second, quad3->resource_id); | 1176 EXPECT_EQ(map.find(444)->second, quad3->resource_id()); |
| 1177 } | 1177 } |
| 1178 | 1178 |
| 1179 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override { | 1179 void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) override { |
| 1180 ReturnUnusedResourcesFromParent(host_impl); | 1180 ReturnUnusedResourcesFromParent(host_impl); |
| 1181 } | 1181 } |
| 1182 }; | 1182 }; |
| 1183 | 1183 |
| 1184 SINGLE_AND_MULTI_THREAD_TEST_F( | 1184 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 1185 LayerTreeHostDelegatedTestFrameBeforeTakeResources); | 1185 LayerTreeHostDelegatedTestFrameBeforeTakeResources); |
| 1186 | 1186 |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1279 EXPECT_EQ(1u, map.count(555)); | 1279 EXPECT_EQ(1u, map.count(555)); |
| 1280 | 1280 |
| 1281 EXPECT_EQ(2u, delegated_impl->Resources().size()); | 1281 EXPECT_EQ(2u, delegated_impl->Resources().size()); |
| 1282 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1282 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1283 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); | 1283 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); |
| 1284 | 1284 |
| 1285 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1285 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1286 EXPECT_EQ(2u, pass->quad_list.size()); | 1286 EXPECT_EQ(2u, pass->quad_list.size()); |
| 1287 const TextureDrawQuad* quad1 = | 1287 const TextureDrawQuad* quad1 = |
| 1288 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); | 1288 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); |
| 1289 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1289 EXPECT_EQ(map.find(999)->second, quad1->resource_id()); |
| 1290 const TextureDrawQuad* quad2 = | 1290 const TextureDrawQuad* quad2 = |
| 1291 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); | 1291 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); |
| 1292 EXPECT_EQ(map.find(555)->second, quad2->resource_id); | 1292 EXPECT_EQ(map.find(555)->second, quad2->resource_id()); |
| 1293 break; | 1293 break; |
| 1294 } | 1294 } |
| 1295 case 2: { | 1295 case 2: { |
| 1296 // We only keep resources from the last valid frame. | 1296 // We only keep resources from the last valid frame. |
| 1297 EXPECT_EQ(2u, map.size()); | 1297 EXPECT_EQ(2u, map.size()); |
| 1298 EXPECT_EQ(1u, map.count(999)); | 1298 EXPECT_EQ(1u, map.count(999)); |
| 1299 EXPECT_EQ(1u, map.count(555)); | 1299 EXPECT_EQ(1u, map.count(555)); |
| 1300 | 1300 |
| 1301 EXPECT_EQ(2u, delegated_impl->Resources().size()); | 1301 EXPECT_EQ(2u, delegated_impl->Resources().size()); |
| 1302 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1302 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1303 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); | 1303 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); |
| 1304 | 1304 |
| 1305 // The bad frame is dropped though, we still have the frame with 999 and | 1305 // The bad frame is dropped though, we still have the frame with 999 and |
| 1306 // 555 in it. | 1306 // 555 in it. |
| 1307 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1307 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1308 EXPECT_EQ(2u, pass->quad_list.size()); | 1308 EXPECT_EQ(2u, pass->quad_list.size()); |
| 1309 const TextureDrawQuad* quad1 = | 1309 const TextureDrawQuad* quad1 = |
| 1310 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); | 1310 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); |
| 1311 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1311 EXPECT_EQ(map.find(999)->second, quad1->resource_id()); |
| 1312 const TextureDrawQuad* quad2 = | 1312 const TextureDrawQuad* quad2 = |
| 1313 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); | 1313 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); |
| 1314 EXPECT_EQ(map.find(555)->second, quad2->resource_id); | 1314 EXPECT_EQ(map.find(555)->second, quad2->resource_id()); |
| 1315 break; | 1315 break; |
| 1316 } | 1316 } |
| 1317 case 3: { | 1317 case 3: { |
| 1318 // We have the new good frame with just 999 in it. | 1318 // We have the new good frame with just 999 in it. |
| 1319 EXPECT_EQ(1u, map.size()); | 1319 EXPECT_EQ(1u, map.size()); |
| 1320 EXPECT_EQ(1u, map.count(999)); | 1320 EXPECT_EQ(1u, map.count(999)); |
| 1321 | 1321 |
| 1322 EXPECT_EQ(1u, delegated_impl->Resources().size()); | 1322 EXPECT_EQ(1u, delegated_impl->Resources().size()); |
| 1323 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1323 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1324 | 1324 |
| 1325 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1325 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1326 EXPECT_EQ(1u, pass->quad_list.size()); | 1326 EXPECT_EQ(1u, pass->quad_list.size()); |
| 1327 const TextureDrawQuad* quad1 = | 1327 const TextureDrawQuad* quad1 = |
| 1328 TextureDrawQuad::MaterialCast(pass->quad_list.front()); | 1328 TextureDrawQuad::MaterialCast(pass->quad_list.front()); |
| 1329 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1329 EXPECT_EQ(map.find(999)->second, quad1->resource_id()); |
| 1330 break; | 1330 break; |
| 1331 } | 1331 } |
| 1332 } | 1332 } |
| 1333 } | 1333 } |
| 1334 }; | 1334 }; |
| 1335 | 1335 |
| 1336 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame); | 1336 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame); |
| 1337 | 1337 |
| 1338 class LayerTreeHostDelegatedTestUnnamedResource | 1338 class LayerTreeHostDelegatedTestUnnamedResource |
| 1339 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { | 1339 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { |
| (...skipping 943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2283 ReturnAllResourcesFromParent(host_impl); | 2283 ReturnAllResourcesFromParent(host_impl); |
| 2284 } | 2284 } |
| 2285 | 2285 |
| 2286 bool drew_with_pending_tree_; | 2286 bool drew_with_pending_tree_; |
| 2287 }; | 2287 }; |
| 2288 | 2288 |
| 2289 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostDelegatedTestActiveFrameIsValid); | 2289 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostDelegatedTestActiveFrameIsValid); |
| 2290 | 2290 |
| 2291 } // namespace | 2291 } // namespace |
| 2292 } // namespace cc | 2292 } // namespace cc |
| OLD | NEW |