OLD | NEW |
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/surfaces/surface_aggregator.h" | 5 #include "cc/surfaces/surface_aggregator.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <utility> | 10 #include <utility> |
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints); | 1100 kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints); |
1101 std::unique_ptr<CompositorFrameSinkSupport> child_two_support = | 1101 std::unique_ptr<CompositorFrameSinkSupport> child_two_support = |
1102 CompositorFrameSinkSupport::Create( | 1102 CompositorFrameSinkSupport::Create( |
1103 nullptr, &manager_, kArbitraryFrameSinkId3, kChildIsRoot, | 1103 nullptr, &manager_, kArbitraryFrameSinkId3, kChildIsRoot, |
1104 kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints); | 1104 kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints); |
1105 int pass_id = 1; | 1105 int pass_id = 1; |
1106 LocalSurfaceId grandchild_local_surface_id = allocator_.GenerateId(); | 1106 LocalSurfaceId grandchild_local_surface_id = allocator_.GenerateId(); |
1107 SurfaceId grandchild_surface_id(grandchild_support->frame_sink_id(), | 1107 SurfaceId grandchild_surface_id(grandchild_support->frame_sink_id(), |
1108 grandchild_local_surface_id); | 1108 grandchild_local_surface_id); |
1109 | 1109 |
1110 grandchild_support->SubmitCompositorFrame(grandchild_local_surface_id, | |
1111 test::MakeCompositorFrame()); | |
1112 std::unique_ptr<RenderPass> grandchild_pass = RenderPass::Create(); | 1110 std::unique_ptr<RenderPass> grandchild_pass = RenderPass::Create(); |
1113 gfx::Rect output_rect(SurfaceSize()); | 1111 gfx::Rect output_rect(SurfaceSize()); |
1114 gfx::Rect damage_rect(SurfaceSize()); | 1112 gfx::Rect damage_rect(SurfaceSize()); |
1115 gfx::Transform transform_to_root_target; | 1113 gfx::Transform transform_to_root_target; |
1116 grandchild_pass->SetNew(pass_id, output_rect, damage_rect, | 1114 grandchild_pass->SetNew(pass_id, output_rect, damage_rect, |
1117 transform_to_root_target); | 1115 transform_to_root_target); |
1118 AddSolidColorQuadWithBlendMode( | 1116 AddSolidColorQuadWithBlendMode( |
1119 SurfaceSize(), grandchild_pass.get(), blend_modes[2]); | 1117 SurfaceSize(), grandchild_pass.get(), blend_modes[2]); |
1120 QueuePassAsFrame(std::move(grandchild_pass), grandchild_local_surface_id, | 1118 QueuePassAsFrame(std::move(grandchild_pass), grandchild_local_surface_id, |
1121 grandchild_support.get()); | 1119 grandchild_support.get()); |
1122 | 1120 |
1123 LocalSurfaceId child_one_local_surface_id = allocator_.GenerateId(); | 1121 LocalSurfaceId child_one_local_surface_id = allocator_.GenerateId(); |
1124 SurfaceId child_one_surface_id(child_one_support->frame_sink_id(), | 1122 SurfaceId child_one_surface_id(child_one_support->frame_sink_id(), |
1125 child_one_local_surface_id); | 1123 child_one_local_surface_id); |
1126 child_one_support->SubmitCompositorFrame(child_one_local_surface_id, | |
1127 test::MakeCompositorFrame()); | |
1128 | 1124 |
1129 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create(); | 1125 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create(); |
1130 child_one_pass->SetNew(pass_id, output_rect, damage_rect, | 1126 child_one_pass->SetNew(pass_id, output_rect, damage_rect, |
1131 transform_to_root_target); | 1127 transform_to_root_target); |
1132 AddSolidColorQuadWithBlendMode( | 1128 AddSolidColorQuadWithBlendMode( |
1133 SurfaceSize(), child_one_pass.get(), blend_modes[1]); | 1129 SurfaceSize(), child_one_pass.get(), blend_modes[1]); |
1134 SurfaceDrawQuad* grandchild_surface_quad = | 1130 SurfaceDrawQuad* grandchild_surface_quad = |
1135 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 1131 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
1136 grandchild_surface_quad->SetNew( | 1132 grandchild_surface_quad->SetNew( |
1137 child_one_pass->shared_quad_state_list.back(), gfx::Rect(SurfaceSize()), | 1133 child_one_pass->shared_quad_state_list.back(), gfx::Rect(SurfaceSize()), |
1138 gfx::Rect(SurfaceSize()), grandchild_surface_id, | 1134 gfx::Rect(SurfaceSize()), grandchild_surface_id, |
1139 SurfaceDrawQuadType::PRIMARY, nullptr); | 1135 SurfaceDrawQuadType::PRIMARY, nullptr); |
1140 AddSolidColorQuadWithBlendMode( | 1136 AddSolidColorQuadWithBlendMode( |
1141 SurfaceSize(), child_one_pass.get(), blend_modes[3]); | 1137 SurfaceSize(), child_one_pass.get(), blend_modes[3]); |
1142 QueuePassAsFrame(std::move(child_one_pass), child_one_local_surface_id, | 1138 QueuePassAsFrame(std::move(child_one_pass), child_one_local_surface_id, |
1143 child_one_support.get()); | 1139 child_one_support.get()); |
1144 | 1140 |
1145 LocalSurfaceId child_two_local_surface_id = allocator_.GenerateId(); | 1141 LocalSurfaceId child_two_local_surface_id = allocator_.GenerateId(); |
1146 SurfaceId child_two_surface_id(child_two_support->frame_sink_id(), | 1142 SurfaceId child_two_surface_id(child_two_support->frame_sink_id(), |
1147 child_two_local_surface_id); | 1143 child_two_local_surface_id); |
1148 child_two_support->SubmitCompositorFrame(child_two_local_surface_id, | |
1149 test::MakeCompositorFrame()); | |
1150 | 1144 |
1151 std::unique_ptr<RenderPass> child_two_pass = RenderPass::Create(); | 1145 std::unique_ptr<RenderPass> child_two_pass = RenderPass::Create(); |
1152 child_two_pass->SetNew(pass_id, output_rect, damage_rect, | 1146 child_two_pass->SetNew(pass_id, output_rect, damage_rect, |
1153 transform_to_root_target); | 1147 transform_to_root_target); |
1154 AddSolidColorQuadWithBlendMode( | 1148 AddSolidColorQuadWithBlendMode( |
1155 SurfaceSize(), child_two_pass.get(), blend_modes[5]); | 1149 SurfaceSize(), child_two_pass.get(), blend_modes[5]); |
1156 QueuePassAsFrame(std::move(child_two_pass), child_two_local_surface_id, | 1150 QueuePassAsFrame(std::move(child_two_pass), child_two_local_surface_id, |
1157 child_two_support.get()); | 1151 child_two_support.get()); |
1158 | 1152 |
1159 std::unique_ptr<RenderPass> root_pass = RenderPass::Create(); | 1153 std::unique_ptr<RenderPass> root_pass = RenderPass::Create(); |
(...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2279 aggregated_frame = aggregator_.Aggregate(surface_id); | 2273 aggregated_frame = aggregator_.Aggregate(surface_id); |
2280 EXPECT_EQ(3u, aggregated_frame.render_pass_list.size()); | 2274 EXPECT_EQ(3u, aggregated_frame.render_pass_list.size()); |
2281 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[0]->color_space); | 2275 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[0]->color_space); |
2282 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[1]->color_space); | 2276 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[1]->color_space); |
2283 EXPECT_EQ(color_space3, aggregated_frame.render_pass_list[2]->color_space); | 2277 EXPECT_EQ(color_space3, aggregated_frame.render_pass_list[2]->color_space); |
2284 } | 2278 } |
2285 | 2279 |
2286 } // namespace | 2280 } // namespace |
2287 } // namespace cc | 2281 } // namespace cc |
2288 | 2282 |
OLD | NEW |