| 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 964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 975 CompositorFrame(), | 975 CompositorFrame(), |
| 976 SurfaceFactory::DrawCallback()); | 976 SurfaceFactory::DrawCallback()); |
| 977 | 977 |
| 978 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create(); | 978 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create(); |
| 979 child_one_pass->SetNew(pass_id, output_rect, damage_rect, | 979 child_one_pass->SetNew(pass_id, output_rect, damage_rect, |
| 980 transform_to_root_target); | 980 transform_to_root_target); |
| 981 AddSolidColorQuadWithBlendMode( | 981 AddSolidColorQuadWithBlendMode( |
| 982 SurfaceSize(), child_one_pass.get(), blend_modes[1]); | 982 SurfaceSize(), child_one_pass.get(), blend_modes[1]); |
| 983 SurfaceDrawQuad* grandchild_surface_quad = | 983 SurfaceDrawQuad* grandchild_surface_quad = |
| 984 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 984 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
| 985 grandchild_surface_quad->SetNew(child_one_pass->shared_quad_state_list.back(), | 985 grandchild_surface_quad->SetNew( |
| 986 gfx::Rect(SurfaceSize()), | 986 child_one_pass->shared_quad_state_list.back(), gfx::Rect(SurfaceSize()), |
| 987 gfx::Rect(SurfaceSize()), | 987 gfx::Rect(SurfaceSize()), grandchild_surface_id, |
| 988 grandchild_surface_id); | 988 SurfaceDrawQuadType::PRIMARY, nullptr); |
| 989 AddSolidColorQuadWithBlendMode( | 989 AddSolidColorQuadWithBlendMode( |
| 990 SurfaceSize(), child_one_pass.get(), blend_modes[3]); | 990 SurfaceSize(), child_one_pass.get(), blend_modes[3]); |
| 991 QueuePassAsFrame(std::move(child_one_pass), child_one_local_frame_id, | 991 QueuePassAsFrame(std::move(child_one_pass), child_one_local_frame_id, |
| 992 &child_one_factory); | 992 &child_one_factory); |
| 993 | 993 |
| 994 LocalFrameId child_two_local_frame_id = allocator_.GenerateId(); | 994 LocalFrameId child_two_local_frame_id = allocator_.GenerateId(); |
| 995 SurfaceId child_two_surface_id(child_two_factory.frame_sink_id(), | 995 SurfaceId child_two_surface_id(child_two_factory.frame_sink_id(), |
| 996 child_two_local_frame_id); | 996 child_two_local_frame_id); |
| 997 child_two_factory.SubmitCompositorFrame(child_two_local_frame_id, | 997 child_two_factory.SubmitCompositorFrame(child_two_local_frame_id, |
| 998 CompositorFrame(), | 998 CompositorFrame(), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1009 std::unique_ptr<RenderPass> root_pass = RenderPass::Create(); | 1009 std::unique_ptr<RenderPass> root_pass = RenderPass::Create(); |
| 1010 root_pass->SetNew(pass_id, output_rect, damage_rect, | 1010 root_pass->SetNew(pass_id, output_rect, damage_rect, |
| 1011 transform_to_root_target); | 1011 transform_to_root_target); |
| 1012 | 1012 |
| 1013 AddSolidColorQuadWithBlendMode( | 1013 AddSolidColorQuadWithBlendMode( |
| 1014 SurfaceSize(), root_pass.get(), blend_modes[0]); | 1014 SurfaceSize(), root_pass.get(), blend_modes[0]); |
| 1015 SurfaceDrawQuad* child_one_surface_quad = | 1015 SurfaceDrawQuad* child_one_surface_quad = |
| 1016 root_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 1016 root_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
| 1017 child_one_surface_quad->SetNew(root_pass->shared_quad_state_list.back(), | 1017 child_one_surface_quad->SetNew(root_pass->shared_quad_state_list.back(), |
| 1018 gfx::Rect(SurfaceSize()), | 1018 gfx::Rect(SurfaceSize()), |
| 1019 gfx::Rect(SurfaceSize()), | 1019 gfx::Rect(SurfaceSize()), child_one_surface_id, |
| 1020 child_one_surface_id); | 1020 SurfaceDrawQuadType::PRIMARY, nullptr); |
| 1021 AddSolidColorQuadWithBlendMode( | 1021 AddSolidColorQuadWithBlendMode( |
| 1022 SurfaceSize(), root_pass.get(), blend_modes[4]); | 1022 SurfaceSize(), root_pass.get(), blend_modes[4]); |
| 1023 SurfaceDrawQuad* child_two_surface_quad = | 1023 SurfaceDrawQuad* child_two_surface_quad = |
| 1024 root_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 1024 root_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
| 1025 child_two_surface_quad->SetNew(root_pass->shared_quad_state_list.back(), | 1025 child_two_surface_quad->SetNew(root_pass->shared_quad_state_list.back(), |
| 1026 gfx::Rect(SurfaceSize()), | 1026 gfx::Rect(SurfaceSize()), |
| 1027 gfx::Rect(SurfaceSize()), | 1027 gfx::Rect(SurfaceSize()), child_two_surface_id, |
| 1028 child_two_surface_id); | 1028 SurfaceDrawQuadType::PRIMARY, nullptr); |
| 1029 AddSolidColorQuadWithBlendMode( | 1029 AddSolidColorQuadWithBlendMode( |
| 1030 SurfaceSize(), root_pass.get(), blend_modes[6]); | 1030 SurfaceSize(), root_pass.get(), blend_modes[6]); |
| 1031 | 1031 |
| 1032 QueuePassAsFrame(std::move(root_pass), root_local_frame_id_, &factory_); | 1032 QueuePassAsFrame(std::move(root_pass), root_local_frame_id_, &factory_); |
| 1033 | 1033 |
| 1034 SurfaceId root_surface_id(factory_.frame_sink_id(), root_local_frame_id_); | 1034 SurfaceId root_surface_id(factory_.frame_sink_id(), root_local_frame_id_); |
| 1035 CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id); | 1035 CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id); |
| 1036 | 1036 |
| 1037 const RenderPassList& aggregated_pass_list = | 1037 const RenderPassList& aggregated_pass_list = |
| 1038 aggregated_frame.render_pass_list; | 1038 aggregated_frame.render_pass_list; |
| (...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 SurfaceId surface_id) { | 1819 SurfaceId surface_id) { |
| 1820 CompositorFrame frame; | 1820 CompositorFrame frame; |
| 1821 std::unique_ptr<RenderPass> pass = RenderPass::Create(); | 1821 std::unique_ptr<RenderPass> pass = RenderPass::Create(); |
| 1822 pass->id = 1; | 1822 pass->id = 1; |
| 1823 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); | 1823 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); |
| 1824 sqs->opacity = 1.f; | 1824 sqs->opacity = 1.f; |
| 1825 if (child_id.is_valid()) { | 1825 if (child_id.is_valid()) { |
| 1826 SurfaceDrawQuad* surface_quad = | 1826 SurfaceDrawQuad* surface_quad = |
| 1827 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 1827 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
| 1828 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), | 1828 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), |
| 1829 child_id); | 1829 child_id, SurfaceDrawQuadType::PRIMARY, nullptr); |
| 1830 } | 1830 } |
| 1831 | 1831 |
| 1832 for (size_t i = 0u; i < num_resource_ids; ++i) { | 1832 for (size_t i = 0u; i < num_resource_ids; ++i) { |
| 1833 TransferableResource resource; | 1833 TransferableResource resource; |
| 1834 resource.id = resource_ids[i]; | 1834 resource.id = resource_ids[i]; |
| 1835 // ResourceProvider is software, so only software resources are valid. | 1835 // ResourceProvider is software, so only software resources are valid. |
| 1836 resource.is_software = valid; | 1836 resource.is_software = valid; |
| 1837 frame.resource_list.push_back(resource); | 1837 frame.resource_list.push_back(resource); |
| 1838 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); | 1838 TextureDrawQuad* quad = pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); |
| 1839 const gfx::Rect rect; | 1839 const gfx::Rect rect; |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2038 | 2038 |
| 2039 { | 2039 { |
| 2040 std::unique_ptr<RenderPass> pass = RenderPass::Create(); | 2040 std::unique_ptr<RenderPass> pass = RenderPass::Create(); |
| 2041 pass->id = 1; | 2041 pass->id = 1; |
| 2042 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); | 2042 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); |
| 2043 sqs->opacity = 1.f; | 2043 sqs->opacity = 1.f; |
| 2044 SurfaceDrawQuad* surface_quad = | 2044 SurfaceDrawQuad* surface_quad = |
| 2045 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); | 2045 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); |
| 2046 | 2046 |
| 2047 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), | 2047 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), |
| 2048 surface1_id); | 2048 surface1_id, SurfaceDrawQuadType::PRIMARY, nullptr); |
| 2049 pass->copy_requests.push_back(CopyOutputRequest::CreateEmptyRequest()); | 2049 pass->copy_requests.push_back(CopyOutputRequest::CreateEmptyRequest()); |
| 2050 | 2050 |
| 2051 CompositorFrame frame; | 2051 CompositorFrame frame; |
| 2052 frame.render_pass_list.push_back(std::move(pass)); | 2052 frame.render_pass_list.push_back(std::move(pass)); |
| 2053 | 2053 |
| 2054 factory2.SubmitCompositorFrame(local_frame2_id, std::move(frame), | 2054 factory2.SubmitCompositorFrame(local_frame2_id, std::move(frame), |
| 2055 SurfaceFactory::DrawCallback()); | 2055 SurfaceFactory::DrawCallback()); |
| 2056 } | 2056 } |
| 2057 | 2057 |
| 2058 frame = aggregator_->Aggregate(surface2_id); | 2058 frame = aggregator_->Aggregate(surface2_id); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 2078 // Output is insecure, so texture should be drawn. | 2078 // Output is insecure, so texture should be drawn. |
| 2079 EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material); | 2079 EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material); |
| 2080 | 2080 |
| 2081 factory1.EvictSurface(); | 2081 factory1.EvictSurface(); |
| 2082 factory2.EvictSurface(); | 2082 factory2.EvictSurface(); |
| 2083 } | 2083 } |
| 2084 | 2084 |
| 2085 } // namespace | 2085 } // namespace |
| 2086 } // namespace cc | 2086 } // namespace cc |
| 2087 | 2087 |
| OLD | NEW |