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 |