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

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

Issue 2543473004: cc: Move filters from RenderPassDrawQuad to RenderPass (Closed)
Patch Set: Created 4 years 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
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/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 881 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 892
893 RenderPassId pass_id(1, 1); 893 RenderPassId pass_id(1, 1);
894 LocalFrameId grandchild_local_frame_id = allocator_.GenerateId(); 894 LocalFrameId grandchild_local_frame_id = allocator_.GenerateId();
895 SurfaceId grandchild_surface_id(factory_.frame_sink_id(), 895 SurfaceId grandchild_surface_id(factory_.frame_sink_id(),
896 grandchild_local_frame_id); 896 grandchild_local_frame_id);
897 factory_.Create(grandchild_local_frame_id); 897 factory_.Create(grandchild_local_frame_id);
898 std::unique_ptr<RenderPass> grandchild_pass = RenderPass::Create(); 898 std::unique_ptr<RenderPass> grandchild_pass = RenderPass::Create();
899 gfx::Rect output_rect(SurfaceSize()); 899 gfx::Rect output_rect(SurfaceSize());
900 gfx::Rect damage_rect(SurfaceSize()); 900 gfx::Rect damage_rect(SurfaceSize());
901 gfx::Transform transform_to_root_target; 901 gfx::Transform transform_to_root_target;
902 grandchild_pass->SetNew( 902 grandchild_pass->SetNew(pass_id, output_rect, damage_rect,
903 pass_id, output_rect, damage_rect, transform_to_root_target); 903 transform_to_root_target, FilterOperations(),
904 FilterOperations());
904 AddSolidColorQuadWithBlendMode( 905 AddSolidColorQuadWithBlendMode(
905 SurfaceSize(), grandchild_pass.get(), blend_modes[2]); 906 SurfaceSize(), grandchild_pass.get(), blend_modes[2]);
906 QueuePassAsFrame(std::move(grandchild_pass), grandchild_local_frame_id); 907 QueuePassAsFrame(std::move(grandchild_pass), grandchild_local_frame_id);
907 908
908 LocalFrameId child_one_local_frame_id = allocator_.GenerateId(); 909 LocalFrameId child_one_local_frame_id = allocator_.GenerateId();
909 SurfaceId child_one_surface_id(factory_.frame_sink_id(), 910 SurfaceId child_one_surface_id(factory_.frame_sink_id(),
910 child_one_local_frame_id); 911 child_one_local_frame_id);
911 factory_.Create(child_one_local_frame_id); 912 factory_.Create(child_one_local_frame_id);
912 913
913 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create(); 914 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create();
914 child_one_pass->SetNew( 915 child_one_pass->SetNew(pass_id, output_rect, damage_rect,
915 pass_id, output_rect, damage_rect, transform_to_root_target); 916 transform_to_root_target, FilterOperations(),
917 FilterOperations());
916 AddSolidColorQuadWithBlendMode( 918 AddSolidColorQuadWithBlendMode(
917 SurfaceSize(), child_one_pass.get(), blend_modes[1]); 919 SurfaceSize(), child_one_pass.get(), blend_modes[1]);
918 SurfaceDrawQuad* grandchild_surface_quad = 920 SurfaceDrawQuad* grandchild_surface_quad =
919 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 921 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
920 grandchild_surface_quad->SetNew(child_one_pass->shared_quad_state_list.back(), 922 grandchild_surface_quad->SetNew(child_one_pass->shared_quad_state_list.back(),
921 gfx::Rect(SurfaceSize()), 923 gfx::Rect(SurfaceSize()),
922 gfx::Rect(SurfaceSize()), 924 gfx::Rect(SurfaceSize()),
923 grandchild_surface_id); 925 grandchild_surface_id);
924 AddSolidColorQuadWithBlendMode( 926 AddSolidColorQuadWithBlendMode(
925 SurfaceSize(), child_one_pass.get(), blend_modes[3]); 927 SurfaceSize(), child_one_pass.get(), blend_modes[3]);
926 QueuePassAsFrame(std::move(child_one_pass), child_one_local_frame_id); 928 QueuePassAsFrame(std::move(child_one_pass), child_one_local_frame_id);
927 929
928 LocalFrameId child_two_local_frame_id = allocator_.GenerateId(); 930 LocalFrameId child_two_local_frame_id = allocator_.GenerateId();
929 SurfaceId child_two_surface_id(factory_.frame_sink_id(), 931 SurfaceId child_two_surface_id(factory_.frame_sink_id(),
930 child_two_local_frame_id); 932 child_two_local_frame_id);
931 factory_.Create(child_two_local_frame_id); 933 factory_.Create(child_two_local_frame_id);
932 934
933 std::unique_ptr<RenderPass> child_two_pass = RenderPass::Create(); 935 std::unique_ptr<RenderPass> child_two_pass = RenderPass::Create();
934 child_two_pass->SetNew( 936 child_two_pass->SetNew(pass_id, output_rect, damage_rect,
935 pass_id, output_rect, damage_rect, transform_to_root_target); 937 transform_to_root_target, FilterOperations(),
938 FilterOperations());
936 AddSolidColorQuadWithBlendMode( 939 AddSolidColorQuadWithBlendMode(
937 SurfaceSize(), child_two_pass.get(), blend_modes[5]); 940 SurfaceSize(), child_two_pass.get(), blend_modes[5]);
938 QueuePassAsFrame(std::move(child_two_pass), child_two_local_frame_id); 941 QueuePassAsFrame(std::move(child_two_pass), child_two_local_frame_id);
939 942
940 std::unique_ptr<RenderPass> root_pass = RenderPass::Create(); 943 std::unique_ptr<RenderPass> root_pass = RenderPass::Create();
941 root_pass->SetNew( 944 root_pass->SetNew(pass_id, output_rect, damage_rect, transform_to_root_target,
942 pass_id, output_rect, damage_rect, transform_to_root_target); 945 FilterOperations(), FilterOperations());
943 946
944 AddSolidColorQuadWithBlendMode( 947 AddSolidColorQuadWithBlendMode(
945 SurfaceSize(), root_pass.get(), blend_modes[0]); 948 SurfaceSize(), root_pass.get(), blend_modes[0]);
946 SurfaceDrawQuad* child_one_surface_quad = 949 SurfaceDrawQuad* child_one_surface_quad =
947 root_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 950 root_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
948 child_one_surface_quad->SetNew(root_pass->shared_quad_state_list.back(), 951 child_one_surface_quad->SetNew(root_pass->shared_quad_state_list.back(),
949 gfx::Rect(SurfaceSize()), 952 gfx::Rect(SurfaceSize()),
950 gfx::Rect(SurfaceSize()), 953 gfx::Rect(SurfaceSize()),
951 child_one_surface_id); 954 child_one_surface_id);
952 AddSolidColorQuadWithBlendMode( 955 AddSolidColorQuadWithBlendMode(
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
1623 test::Pass(root_quads2, arraysize(root_quads2), root_pass_ids[1])}; 1626 test::Pass(root_quads2, arraysize(root_quads2), root_pass_ids[1])};
1624 1627
1625 RenderPassList root_pass_list; 1628 RenderPassList root_pass_list;
1626 AddPasses(&root_pass_list, gfx::Rect(SurfaceSize()), root_passes, 1629 AddPasses(&root_pass_list, gfx::Rect(SurfaceSize()), root_passes,
1627 arraysize(root_passes)); 1630 arraysize(root_passes));
1628 1631
1629 RenderPass* pass = root_pass_list[0].get(); 1632 RenderPass* pass = root_pass_list[0].get();
1630 pass->shared_quad_state_list.front()->quad_to_target_transform.Translate( 1633 pass->shared_quad_state_list.front()->quad_to_target_transform.Translate(
1631 10, 10); 1634 10, 10);
1632 RenderPass* root_pass = root_pass_list[1].get(); 1635 RenderPass* root_pass = root_pass_list[1].get();
1633 RenderPassDrawQuad* quad = 1636 pass->filters.Append(FilterOperation::CreateBlurFilter(2));
1634 static_cast<RenderPassDrawQuad*>(root_pass->quad_list.front());
1635 quad->filters.Append(FilterOperation::CreateBlurFilter(2));
1636 root_pass->damage_rect = gfx::Rect(10, 10, 2, 2); 1637 root_pass->damage_rect = gfx::Rect(10, 10, 2, 2);
1637 SubmitPassListAsFrame(&factory_, root_local_frame_id_, &root_pass_list); 1638 SubmitPassListAsFrame(&factory_, root_local_frame_id_, &root_pass_list);
1638 } 1639 }
1639 1640
1640 { 1641 {
1641 CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id); 1642 CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id);
1642 1643
1643 const RenderPassList& aggregated_pass_list = 1644 const RenderPassList& aggregated_pass_list =
1644 aggregated_frame.render_pass_list; 1645 aggregated_frame.render_pass_list;
1645 1646
(...skipping 20 matching lines...) Expand all
1666 test::Quad root_quads2[] = {test::Quad::RenderPassQuad(root_pass_ids[0]), 1667 test::Quad root_quads2[] = {test::Quad::RenderPassQuad(root_pass_ids[0]),
1667 test::Quad::SurfaceQuad(child_surface_id, 1.f)}; 1668 test::Quad::SurfaceQuad(child_surface_id, 1.f)};
1668 test::Pass root_passes[] = { 1669 test::Pass root_passes[] = {
1669 test::Pass(root_quads1, arraysize(root_quads1), root_pass_ids[0]), 1670 test::Pass(root_quads1, arraysize(root_quads1), root_pass_ids[0]),
1670 test::Pass(root_quads2, arraysize(root_quads2), root_pass_ids[1])}; 1671 test::Pass(root_quads2, arraysize(root_quads2), root_pass_ids[1])};
1671 1672
1672 RenderPassList root_pass_list; 1673 RenderPassList root_pass_list;
1673 AddPasses(&root_pass_list, gfx::Rect(SurfaceSize()), root_passes, 1674 AddPasses(&root_pass_list, gfx::Rect(SurfaceSize()), root_passes,
1674 arraysize(root_passes)); 1675 arraysize(root_passes));
1675 1676
1677 RenderPass* pass = root_pass_list[0].get();
1676 RenderPass* root_pass = root_pass_list[1].get(); 1678 RenderPass* root_pass = root_pass_list[1].get();
1677 root_pass->shared_quad_state_list.ElementAt(1) 1679 root_pass->shared_quad_state_list.ElementAt(1)
1678 ->quad_to_target_transform.Translate(10, 10); 1680 ->quad_to_target_transform.Translate(10, 10);
1679 RenderPassDrawQuad* quad = 1681 pass->background_filters.Append(FilterOperation::CreateBlurFilter(2));
1680 static_cast<RenderPassDrawQuad*>(root_pass->quad_list.front());
1681 quad->background_filters.Append(FilterOperation::CreateBlurFilter(2));
1682 root_pass->damage_rect = gfx::Rect(10, 10, 2, 2); 1682 root_pass->damage_rect = gfx::Rect(10, 10, 2, 2);
1683 SubmitPassListAsFrame(&factory_, root_local_frame_id_, &root_pass_list); 1683 SubmitPassListAsFrame(&factory_, root_local_frame_id_, &root_pass_list);
1684 } 1684 }
1685 1685
1686 { 1686 {
1687 CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id); 1687 CompositorFrame aggregated_frame = aggregator_.Aggregate(root_surface_id);
1688 1688
1689 const RenderPassList& aggregated_pass_list = 1689 const RenderPassList& aggregated_pass_list =
1690 aggregated_frame.render_pass_list; 1690 aggregated_frame.render_pass_list;
1691 1691
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
2013 // Output is insecure, so texture should be drawn. 2013 // Output is insecure, so texture should be drawn.
2014 EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material); 2014 EXPECT_EQ(DrawQuad::SOLID_COLOR, render_pass->quad_list.back()->material);
2015 2015
2016 factory.Destroy(local_frame1_id); 2016 factory.Destroy(local_frame1_id);
2017 factory.Destroy(local_frame2_id); 2017 factory.Destroy(local_frame2_id);
2018 } 2018 }
2019 2019
2020 } // namespace 2020 } // namespace
2021 } // namespace cc 2021 } // namespace cc
2022 2022
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698