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

Side by Side Diff: cc/surfaces/surface_aggregator_unittest.cc

Issue 1013463003: Update from https://crrev.com/320931 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « cc/surfaces/surface_aggregator.cc ('k') | cc/surfaces/surface_display_output_surface.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/output/compositor_frame.h" 5 #include "cc/output/compositor_frame.h"
6 #include "cc/output/delegated_frame_data.h" 6 #include "cc/output/delegated_frame_data.h"
7 #include "cc/quads/render_pass.h" 7 #include "cc/quads/render_pass.h"
8 #include "cc/quads/render_pass_draw_quad.h" 8 #include "cc/quads/render_pass_draw_quad.h"
9 #include "cc/quads/solid_color_draw_quad.h" 9 #include "cc/quads/solid_color_draw_quad.h"
10 #include "cc/quads/surface_draw_quad.h" 10 #include "cc/quads/surface_draw_quad.h"
(...skipping 1065 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 1076
1077 scoped_ptr<DelegatedFrameData> child_frame_data(new DelegatedFrameData); 1077 scoped_ptr<DelegatedFrameData> child_frame_data(new DelegatedFrameData);
1078 child_pass_list.swap(child_frame_data->render_pass_list); 1078 child_pass_list.swap(child_frame_data->render_pass_list);
1079 1079
1080 scoped_ptr<CompositorFrame> child_frame(new CompositorFrame); 1080 scoped_ptr<CompositorFrame> child_frame(new CompositorFrame);
1081 child_frame->delegated_frame_data = child_frame_data.Pass(); 1081 child_frame->delegated_frame_data = child_frame_data.Pass();
1082 1082
1083 factory_.SubmitFrame(child_surface_id, child_frame.Pass(), 1083 factory_.SubmitFrame(child_surface_id, child_frame.Pass(),
1084 SurfaceFactory::DrawCallback()); 1084 SurfaceFactory::DrawCallback());
1085 1085
1086 test::Quad root_quads[] = {test::Quad::SurfaceQuad(child_surface_id, 1.f)}; 1086 RenderPassId pass_id(5, 10);
1087 test::Pass root_passes[] = {test::Pass(root_quads, arraysize(root_quads))}; 1087 test::Quad first_quads[] = {test::Quad::SurfaceQuad(child_surface_id, 1.f)};
1088 test::Quad root_quads[] = {test::Quad::RenderPassQuad(pass_id)};
1089
1090 test::Pass root_passes[] = {
1091 test::Pass(first_quads, arraysize(first_quads), pass_id),
1092 test::Pass(root_quads, arraysize(root_quads))};
1088 1093
1089 RenderPassList root_pass_list; 1094 RenderPassList root_pass_list;
1090 AddPasses(&root_pass_list, 1095 AddPasses(&root_pass_list,
1091 gfx::Rect(SurfaceSize()), 1096 gfx::Rect(SurfaceSize()),
1092 root_passes, 1097 root_passes,
1093 arraysize(root_passes)); 1098 arraysize(root_passes));
1094 1099
1095 root_pass_list.at(0) 1100 root_pass_list.at(0)
1096 ->shared_quad_state_list.front() 1101 ->shared_quad_state_list.front()
1097 ->content_to_target_transform.Translate(0, 10); 1102 ->content_to_target_transform.Translate(0, 10);
1098 root_pass_list.at(0)->damage_rect = gfx::Rect(5, 5, 10, 10); 1103 root_pass_list.at(0)->damage_rect = gfx::Rect(5, 5, 10, 10);
1104 root_pass_list.at(1)->damage_rect = gfx::Rect(5, 5, 100, 100);
1099 1105
1100 scoped_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData); 1106 scoped_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
1101 root_pass_list.swap(root_frame_data->render_pass_list); 1107 root_pass_list.swap(root_frame_data->render_pass_list);
1102 1108
1103 scoped_ptr<CompositorFrame> root_frame(new CompositorFrame); 1109 scoped_ptr<CompositorFrame> root_frame(new CompositorFrame);
1104 root_frame->delegated_frame_data = root_frame_data.Pass(); 1110 root_frame->delegated_frame_data = root_frame_data.Pass();
1105 1111
1106 factory_.SubmitFrame(root_surface_id_, root_frame.Pass(), 1112 factory_.SubmitFrame(root_surface_id_, root_frame.Pass(),
1107 SurfaceFactory::DrawCallback()); 1113 SurfaceFactory::DrawCallback());
1108 1114
1109 scoped_ptr<CompositorFrame> aggregated_frame = 1115 scoped_ptr<CompositorFrame> aggregated_frame =
1110 aggregator_.Aggregate(root_surface_id_); 1116 aggregator_.Aggregate(root_surface_id_);
1111 1117
1112 ASSERT_TRUE(aggregated_frame); 1118 ASSERT_TRUE(aggregated_frame);
1113 ASSERT_TRUE(aggregated_frame->delegated_frame_data); 1119 ASSERT_TRUE(aggregated_frame->delegated_frame_data);
1114 1120
1115 DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get(); 1121 DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
1116 1122
1117 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list; 1123 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
1118 1124
1119 ASSERT_EQ(1u, aggregated_pass_list.size()); 1125 ASSERT_EQ(2u, aggregated_pass_list.size());
1120 1126
1121 // Damage rect for first aggregation should contain entire root surface. 1127 // Damage rect for first aggregation should contain entire root surface.
1122 EXPECT_TRUE( 1128 EXPECT_TRUE(
1123 aggregated_pass_list[0]->damage_rect.Contains(gfx::Rect(SurfaceSize()))); 1129 aggregated_pass_list[1]->damage_rect.Contains(gfx::Rect(SurfaceSize())));
1124 1130
1125 { 1131 {
1126 AddPasses(&child_pass_list, 1132 AddPasses(&child_pass_list,
1127 gfx::Rect(SurfaceSize()), 1133 gfx::Rect(SurfaceSize()),
1128 child_passes, 1134 child_passes,
1129 arraysize(child_passes)); 1135 arraysize(child_passes));
1130 1136
1131 RenderPass* child_root_pass = child_pass_list.at(0u); 1137 RenderPass* child_root_pass = child_pass_list.at(0u);
1132 SharedQuadState* child_root_pass_sqs = 1138 SharedQuadState* child_root_pass_sqs =
1133 child_root_pass->shared_quad_state_list.front(); 1139 child_root_pass->shared_quad_state_list.front();
(...skipping 13 matching lines...) Expand all
1147 aggregator_.Aggregate(root_surface_id_); 1153 aggregator_.Aggregate(root_surface_id_);
1148 1154
1149 ASSERT_TRUE(aggregated_frame); 1155 ASSERT_TRUE(aggregated_frame);
1150 ASSERT_TRUE(aggregated_frame->delegated_frame_data); 1156 ASSERT_TRUE(aggregated_frame->delegated_frame_data);
1151 1157
1152 DelegatedFrameData* frame_data = 1158 DelegatedFrameData* frame_data =
1153 aggregated_frame->delegated_frame_data.get(); 1159 aggregated_frame->delegated_frame_data.get();
1154 1160
1155 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list; 1161 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
1156 1162
1157 ASSERT_EQ(1u, aggregated_pass_list.size()); 1163 ASSERT_EQ(2u, aggregated_pass_list.size());
1158 1164
1159 // Outer surface didn't change, so transformed inner damage rect should be 1165 // Outer surface didn't change, so transformed inner damage rect should be
1160 // used. 1166 // used.
1161 EXPECT_EQ(gfx::Rect(10, 20, 10, 10).ToString(), 1167 EXPECT_EQ(gfx::Rect(10, 20, 10, 10).ToString(),
1162 aggregated_pass_list[0]->damage_rect.ToString()); 1168 aggregated_pass_list[1]->damage_rect.ToString());
1163 } 1169 }
1164 1170
1165 { 1171 {
1166 RenderPassList root_pass_list; 1172 RenderPassList root_pass_list;
1167 AddPasses(&root_pass_list, 1173 AddPasses(&root_pass_list,
1168 gfx::Rect(SurfaceSize()), 1174 gfx::Rect(SurfaceSize()),
1169 root_passes, 1175 root_passes,
1170 arraysize(root_passes)); 1176 arraysize(root_passes));
1171 1177
1172 root_pass_list.at(0) 1178 root_pass_list.at(0)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1209 aggregator_.Aggregate(root_surface_id_); 1215 aggregator_.Aggregate(root_surface_id_);
1210 1216
1211 ASSERT_TRUE(aggregated_frame); 1217 ASSERT_TRUE(aggregated_frame);
1212 ASSERT_TRUE(aggregated_frame->delegated_frame_data); 1218 ASSERT_TRUE(aggregated_frame->delegated_frame_data);
1213 1219
1214 DelegatedFrameData* frame_data = 1220 DelegatedFrameData* frame_data =
1215 aggregated_frame->delegated_frame_data.get(); 1221 aggregated_frame->delegated_frame_data.get();
1216 1222
1217 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list; 1223 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
1218 1224
1219 ASSERT_EQ(1u, aggregated_pass_list.size()); 1225 ASSERT_EQ(2u, aggregated_pass_list.size());
1220 1226
1221 // The root surface was enqueued without being aggregated once, so it should 1227 // The root surface was enqueued without being aggregated once, so it should
1222 // be treated as completely damaged. 1228 // be treated as completely damaged.
1223 EXPECT_TRUE(aggregated_pass_list[0]->damage_rect.Contains( 1229 EXPECT_TRUE(aggregated_pass_list[1]->damage_rect.Contains(
1224 gfx::Rect(SurfaceSize()))); 1230 gfx::Rect(SurfaceSize())));
1225 } 1231 }
1226 1232
1227 factory_.Destroy(child_surface_id); 1233 factory_.Destroy(child_surface_id);
1228 } 1234 }
1229 1235
1230 class SurfaceAggregatorWithResourcesTest : public testing::Test { 1236 class SurfaceAggregatorWithResourcesTest : public testing::Test {
1231 public: 1237 public:
1232 void SetUp() override { 1238 void SetUp() override {
1233 output_surface_ = FakeOutputSurface::CreateSoftware( 1239 output_surface_ = FakeOutputSurface::CreateSoftware(
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
1415 EXPECT_THAT(returned_ids, 1421 EXPECT_THAT(returned_ids,
1416 testing::WhenSorted(testing::ElementsAreArray(ids))); 1422 testing::WhenSorted(testing::ElementsAreArray(ids)));
1417 EXPECT_EQ(3u, resource_provider_->num_resources()); 1423 EXPECT_EQ(3u, resource_provider_->num_resources());
1418 factory.Destroy(surface_id); 1424 factory.Destroy(surface_id);
1419 factory.Destroy(surface_id2); 1425 factory.Destroy(surface_id2);
1420 } 1426 }
1421 1427
1422 } // namespace 1428 } // namespace
1423 } // namespace cc 1429 } // namespace cc
1424 1430
OLDNEW
« no previous file with comments | « cc/surfaces/surface_aggregator.cc ('k') | cc/surfaces/surface_display_output_surface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698