| 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 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 761 EXPECT_EQ(1u, map.count(999)); | 761 EXPECT_EQ(1u, map.count(999)); |
| 762 EXPECT_EQ(1u, map.count(555)); | 762 EXPECT_EQ(1u, map.count(555)); |
| 763 | 763 |
| 764 ResourceProvider::ResourceId parent_resource_id1 = map.find(999)->second; | 764 ResourceProvider::ResourceId parent_resource_id1 = map.find(999)->second; |
| 765 EXPECT_NE(parent_resource_id1, 999u); | 765 EXPECT_NE(parent_resource_id1, 999u); |
| 766 ResourceProvider::ResourceId parent_resource_id2 = map.find(555)->second; | 766 ResourceProvider::ResourceId parent_resource_id2 = map.find(555)->second; |
| 767 EXPECT_NE(parent_resource_id2, 555u); | 767 EXPECT_NE(parent_resource_id2, 555u); |
| 768 | 768 |
| 769 // The resources in the quads should be remapped to the parent's namespace. | 769 // The resources in the quads should be remapped to the parent's namespace. |
| 770 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( | 770 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( |
| 771 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list[0]); | 771 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list.ElementAt(0)); |
| 772 EXPECT_EQ(parent_resource_id1, quad1->resource_id); | 772 EXPECT_EQ(parent_resource_id1, quad1->resource_id); |
| 773 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( | 773 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( |
| 774 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list[1]); | 774 delegated_impl->RenderPassesInDrawOrder()[0]->quad_list.ElementAt(1)); |
| 775 EXPECT_EQ(parent_resource_id2, quad2->resource_id); | 775 EXPECT_EQ(parent_resource_id2, quad2->resource_id); |
| 776 | 776 |
| 777 EndTest(); | 777 EndTest(); |
| 778 } | 778 } |
| 779 }; | 779 }; |
| 780 | 780 |
| 781 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemapResourcesInQuads); | 781 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestRemapResourcesInQuads); |
| 782 | 782 |
| 783 class LayerTreeHostDelegatedTestReturnUnusedResources | 783 class LayerTreeHostDelegatedTestReturnUnusedResources |
| 784 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { | 784 : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1013 // one with resource 999) on the impl tree. And only 999 will be present | 1013 // one with resource 999) on the impl tree. And only 999 will be present |
| 1014 // in the parent's resource provider. | 1014 // in the parent's resource provider. |
| 1015 EXPECT_EQ(1u, map.size()); | 1015 EXPECT_EQ(1u, map.size()); |
| 1016 EXPECT_EQ(1u, map.count(999)); | 1016 EXPECT_EQ(1u, map.count(999)); |
| 1017 | 1017 |
| 1018 EXPECT_EQ(1u, delegated_impl->Resources().size()); | 1018 EXPECT_EQ(1u, delegated_impl->Resources().size()); |
| 1019 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1019 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1020 | 1020 |
| 1021 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1021 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1022 EXPECT_EQ(1u, pass->quad_list.size()); | 1022 EXPECT_EQ(1u, pass->quad_list.size()); |
| 1023 const TextureDrawQuad* quad = TextureDrawQuad::MaterialCast( | 1023 const TextureDrawQuad* quad = |
| 1024 pass->quad_list[0]); | 1024 TextureDrawQuad::MaterialCast(pass->quad_list.front()); |
| 1025 EXPECT_EQ(map.find(999)->second, quad->resource_id); | 1025 EXPECT_EQ(map.find(999)->second, quad->resource_id); |
| 1026 | 1026 |
| 1027 EndTest(); | 1027 EndTest(); |
| 1028 } | 1028 } |
| 1029 | 1029 |
| 1030 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, | 1030 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, |
| 1031 bool result) OVERRIDE { | 1031 bool result) OVERRIDE { |
| 1032 ReturnUnusedResourcesFromParent(host_impl); | 1032 ReturnUnusedResourcesFromParent(host_impl); |
| 1033 } | 1033 } |
| 1034 }; | 1034 }; |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1128 EXPECT_EQ(1u, map.count(555)); | 1128 EXPECT_EQ(1u, map.count(555)); |
| 1129 EXPECT_EQ(1u, map.count(444)); | 1129 EXPECT_EQ(1u, map.count(444)); |
| 1130 | 1130 |
| 1131 EXPECT_EQ(3u, delegated_impl->Resources().size()); | 1131 EXPECT_EQ(3u, delegated_impl->Resources().size()); |
| 1132 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1132 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1133 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); | 1133 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); |
| 1134 EXPECT_EQ(1u, delegated_impl->Resources().count(444)); | 1134 EXPECT_EQ(1u, delegated_impl->Resources().count(444)); |
| 1135 | 1135 |
| 1136 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1136 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1137 EXPECT_EQ(3u, pass->quad_list.size()); | 1137 EXPECT_EQ(3u, pass->quad_list.size()); |
| 1138 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( | 1138 const TextureDrawQuad* quad1 = |
| 1139 pass->quad_list[0]); | 1139 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); |
| 1140 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1140 EXPECT_EQ(map.find(999)->second, quad1->resource_id); |
| 1141 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( | 1141 const TextureDrawQuad* quad2 = |
| 1142 pass->quad_list[1]); | 1142 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); |
| 1143 EXPECT_EQ(map.find(555)->second, quad2->resource_id); | 1143 EXPECT_EQ(map.find(555)->second, quad2->resource_id); |
| 1144 const TextureDrawQuad* quad3 = TextureDrawQuad::MaterialCast( | 1144 const TextureDrawQuad* quad3 = |
| 1145 pass->quad_list[2]); | 1145 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(2)); |
| 1146 EXPECT_EQ(map.find(444)->second, quad3->resource_id); | 1146 EXPECT_EQ(map.find(444)->second, quad3->resource_id); |
| 1147 } | 1147 } |
| 1148 | 1148 |
| 1149 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, | 1149 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, |
| 1150 bool result) OVERRIDE { | 1150 bool result) OVERRIDE { |
| 1151 ReturnUnusedResourcesFromParent(host_impl); | 1151 ReturnUnusedResourcesFromParent(host_impl); |
| 1152 } | 1152 } |
| 1153 }; | 1153 }; |
| 1154 | 1154 |
| 1155 SINGLE_AND_MULTI_THREAD_TEST_F( | 1155 SINGLE_AND_MULTI_THREAD_TEST_F( |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1251 EXPECT_EQ(2u, map.size()); | 1251 EXPECT_EQ(2u, map.size()); |
| 1252 EXPECT_EQ(1u, map.count(999)); | 1252 EXPECT_EQ(1u, map.count(999)); |
| 1253 EXPECT_EQ(1u, map.count(555)); | 1253 EXPECT_EQ(1u, map.count(555)); |
| 1254 | 1254 |
| 1255 EXPECT_EQ(2u, delegated_impl->Resources().size()); | 1255 EXPECT_EQ(2u, delegated_impl->Resources().size()); |
| 1256 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1256 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1257 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); | 1257 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); |
| 1258 | 1258 |
| 1259 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1259 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1260 EXPECT_EQ(2u, pass->quad_list.size()); | 1260 EXPECT_EQ(2u, pass->quad_list.size()); |
| 1261 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( | 1261 const TextureDrawQuad* quad1 = |
| 1262 pass->quad_list[0]); | 1262 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); |
| 1263 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1263 EXPECT_EQ(map.find(999)->second, quad1->resource_id); |
| 1264 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( | 1264 const TextureDrawQuad* quad2 = |
| 1265 pass->quad_list[1]); | 1265 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); |
| 1266 EXPECT_EQ(map.find(555)->second, quad2->resource_id); | 1266 EXPECT_EQ(map.find(555)->second, quad2->resource_id); |
| 1267 break; | 1267 break; |
| 1268 } | 1268 } |
| 1269 case 2: { | 1269 case 2: { |
| 1270 // We only keep resources from the last valid frame. | 1270 // We only keep resources from the last valid frame. |
| 1271 EXPECT_EQ(2u, map.size()); | 1271 EXPECT_EQ(2u, map.size()); |
| 1272 EXPECT_EQ(1u, map.count(999)); | 1272 EXPECT_EQ(1u, map.count(999)); |
| 1273 EXPECT_EQ(1u, map.count(555)); | 1273 EXPECT_EQ(1u, map.count(555)); |
| 1274 | 1274 |
| 1275 EXPECT_EQ(2u, delegated_impl->Resources().size()); | 1275 EXPECT_EQ(2u, delegated_impl->Resources().size()); |
| 1276 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1276 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1277 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); | 1277 EXPECT_EQ(1u, delegated_impl->Resources().count(555)); |
| 1278 | 1278 |
| 1279 // The bad frame is dropped though, we still have the frame with 999 and | 1279 // The bad frame is dropped though, we still have the frame with 999 and |
| 1280 // 555 in it. | 1280 // 555 in it. |
| 1281 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1281 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1282 EXPECT_EQ(2u, pass->quad_list.size()); | 1282 EXPECT_EQ(2u, pass->quad_list.size()); |
| 1283 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( | 1283 const TextureDrawQuad* quad1 = |
| 1284 pass->quad_list[0]); | 1284 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(0)); |
| 1285 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1285 EXPECT_EQ(map.find(999)->second, quad1->resource_id); |
| 1286 const TextureDrawQuad* quad2 = TextureDrawQuad::MaterialCast( | 1286 const TextureDrawQuad* quad2 = |
| 1287 pass->quad_list[1]); | 1287 TextureDrawQuad::MaterialCast(pass->quad_list.ElementAt(1)); |
| 1288 EXPECT_EQ(map.find(555)->second, quad2->resource_id); | 1288 EXPECT_EQ(map.find(555)->second, quad2->resource_id); |
| 1289 break; | 1289 break; |
| 1290 } | 1290 } |
| 1291 case 3: { | 1291 case 3: { |
| 1292 // We have the new good frame with just 999 in it. | 1292 // We have the new good frame with just 999 in it. |
| 1293 EXPECT_EQ(1u, map.size()); | 1293 EXPECT_EQ(1u, map.size()); |
| 1294 EXPECT_EQ(1u, map.count(999)); | 1294 EXPECT_EQ(1u, map.count(999)); |
| 1295 | 1295 |
| 1296 EXPECT_EQ(1u, delegated_impl->Resources().size()); | 1296 EXPECT_EQ(1u, delegated_impl->Resources().size()); |
| 1297 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); | 1297 EXPECT_EQ(1u, delegated_impl->Resources().count(999)); |
| 1298 | 1298 |
| 1299 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; | 1299 const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
| 1300 EXPECT_EQ(1u, pass->quad_list.size()); | 1300 EXPECT_EQ(1u, pass->quad_list.size()); |
| 1301 const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( | 1301 const TextureDrawQuad* quad1 = |
| 1302 pass->quad_list[0]); | 1302 TextureDrawQuad::MaterialCast(pass->quad_list.front()); |
| 1303 EXPECT_EQ(map.find(999)->second, quad1->resource_id); | 1303 EXPECT_EQ(map.find(999)->second, quad1->resource_id); |
| 1304 break; | 1304 break; |
| 1305 } | 1305 } |
| 1306 } | 1306 } |
| 1307 } | 1307 } |
| 1308 }; | 1308 }; |
| 1309 | 1309 |
| 1310 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame); | 1310 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame); |
| 1311 | 1311 |
| 1312 class LayerTreeHostDelegatedTestUnnamedResource | 1312 class LayerTreeHostDelegatedTestUnnamedResource |
| (...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2192 } | 2192 } |
| 2193 | 2193 |
| 2194 scoped_refptr<DelegatedRendererLayer> delegated_thief_; | 2194 scoped_refptr<DelegatedRendererLayer> delegated_thief_; |
| 2195 }; | 2195 }; |
| 2196 | 2196 |
| 2197 SINGLE_AND_MULTI_THREAD_TEST_F( | 2197 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 2198 LayerTreeHostDelegatedTestRemoveAndChangeResources); | 2198 LayerTreeHostDelegatedTestRemoveAndChangeResources); |
| 2199 | 2199 |
| 2200 } // namespace | 2200 } // namespace |
| 2201 } // namespace cc | 2201 } // namespace cc |
| OLD | NEW |