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

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

Issue 1001833005: Update from https://crrev.com/320343 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Supress 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 921 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 middle_pass_list.swap(middle_frame_data->render_pass_list); 932 middle_pass_list.swap(middle_frame_data->render_pass_list);
933 933
934 scoped_ptr<CompositorFrame> middle_frame(new CompositorFrame); 934 scoped_ptr<CompositorFrame> middle_frame(new CompositorFrame);
935 middle_frame->delegated_frame_data = middle_frame_data.Pass(); 935 middle_frame->delegated_frame_data = middle_frame_data.Pass();
936 936
937 factory_.SubmitFrame(middle_surface_id, middle_frame.Pass(), 937 factory_.SubmitFrame(middle_surface_id, middle_frame.Pass(),
938 SurfaceFactory::DrawCallback()); 938 SurfaceFactory::DrawCallback());
939 } 939 }
940 940
941 // Root surface. 941 // Root surface.
942 test::Quad root_quads[] = {test::Quad::SolidColorQuad(1), 942 test::Quad secondary_quads[] = {
943 test::Quad::SurfaceQuad(middle_surface_id, 1.f)}; 943 test::Quad::SolidColorQuad(1),
944 test::Pass root_passes[] = {test::Pass(root_quads, arraysize(root_quads))}; 944 test::Quad::SurfaceQuad(middle_surface_id, 1.f)};
945 test::Quad root_quads[] = {test::Quad::SolidColorQuad(1)};
946 test::Pass root_passes[] = {
947 test::Pass(secondary_quads, arraysize(secondary_quads)),
948 test::Pass(root_quads, arraysize(root_quads))};
945 949
946 RenderPassList root_pass_list; 950 RenderPassList root_pass_list;
947 AddPasses(&root_pass_list, 951 AddPasses(&root_pass_list,
948 gfx::Rect(SurfaceSize()), 952 gfx::Rect(SurfaceSize()),
949 root_passes, 953 root_passes,
950 arraysize(root_passes)); 954 arraysize(root_passes));
951 955
952 root_pass_list.at(0) 956 root_pass_list.at(0)
953 ->shared_quad_state_list.front() 957 ->shared_quad_state_list.front()
954 ->content_to_target_transform.Translate(0, 7); 958 ->content_to_target_transform.Translate(0, 7);
955 root_pass_list.at(0) 959 root_pass_list.at(0)
956 ->shared_quad_state_list.ElementAt(1) 960 ->shared_quad_state_list.ElementAt(1)
957 ->content_to_target_transform.Translate(0, 10); 961 ->content_to_target_transform.Translate(0, 10);
958 root_pass_list.at(0)->quad_list.ElementAt(1)->visible_rect = 962 root_pass_list.at(0)->quad_list.ElementAt(1)->visible_rect =
959 gfx::Rect(0, 0, 8, 100); 963 gfx::Rect(0, 0, 8, 100);
960 964
965 root_pass_list[0]->transform_to_root_target.Translate(10, 5);
966
961 scoped_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData); 967 scoped_ptr<DelegatedFrameData> root_frame_data(new DelegatedFrameData);
962 root_pass_list.swap(root_frame_data->render_pass_list); 968 root_pass_list.swap(root_frame_data->render_pass_list);
963 969
964 scoped_ptr<CompositorFrame> root_frame(new CompositorFrame); 970 scoped_ptr<CompositorFrame> root_frame(new CompositorFrame);
965 root_frame->delegated_frame_data = root_frame_data.Pass(); 971 root_frame->delegated_frame_data = root_frame_data.Pass();
966 972
967 factory_.SubmitFrame(root_surface_id_, root_frame.Pass(), 973 factory_.SubmitFrame(root_surface_id_, root_frame.Pass(),
968 SurfaceFactory::DrawCallback()); 974 SurfaceFactory::DrawCallback());
969 975
970 scoped_ptr<CompositorFrame> aggregated_frame = 976 scoped_ptr<CompositorFrame> aggregated_frame =
971 aggregator_.Aggregate(root_surface_id_); 977 aggregator_.Aggregate(root_surface_id_);
972 978
973 ASSERT_TRUE(aggregated_frame); 979 ASSERT_TRUE(aggregated_frame);
974 ASSERT_TRUE(aggregated_frame->delegated_frame_data); 980 ASSERT_TRUE(aggregated_frame->delegated_frame_data);
975 981
976 DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get(); 982 DelegatedFrameData* frame_data = aggregated_frame->delegated_frame_data.get();
977 983
978 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list; 984 const RenderPassList& aggregated_pass_list = frame_data->render_pass_list;
979 985
980 ASSERT_EQ(2u, aggregated_pass_list.size()); 986 ASSERT_EQ(3u, aggregated_pass_list.size());
981 987
982 ASSERT_EQ(1u, aggregated_pass_list[0]->shared_quad_state_list.size()); 988 ASSERT_EQ(1u, aggregated_pass_list[0]->shared_quad_state_list.size());
983 989
984 // The first pass should have one shared quad state for the one solid color 990 // The first pass should have one shared quad state for the one solid color
985 // quad. 991 // quad.
986 EXPECT_EQ(1u, aggregated_pass_list[0]->shared_quad_state_list.size()); 992 EXPECT_EQ(1u, aggregated_pass_list[0]->shared_quad_state_list.size());
987 // The second (root) pass should have just two shared quad states. We'll 993 // The second pass should have just two shared quad states. We'll
988 // verify the properties through the quads. 994 // verify the properties through the quads.
989 EXPECT_EQ(2u, aggregated_pass_list[1]->shared_quad_state_list.size()); 995 EXPECT_EQ(2u, aggregated_pass_list[1]->shared_quad_state_list.size());
990 996
997 EXPECT_EQ(1u, aggregated_pass_list[2]->shared_quad_state_list.size());
998
991 SharedQuadState* aggregated_first_pass_sqs = 999 SharedQuadState* aggregated_first_pass_sqs =
992 aggregated_pass_list[0]->shared_quad_state_list.front(); 1000 aggregated_pass_list[0]->shared_quad_state_list.front();
993 1001
994 // The first pass's transform should be unaffected by the embedding and still 1002 // The first pass's transform should be unaffected by the embedding and still
995 // be a translation by +5 in the x direction. 1003 // be a translation by +5 in the x direction.
996 gfx::Transform expected_aggregated_first_pass_sqs_transform; 1004 gfx::Transform expected_aggregated_first_pass_sqs_transform;
997 expected_aggregated_first_pass_sqs_transform.Translate(5, 0); 1005 expected_aggregated_first_pass_sqs_transform.Translate(5, 0);
998 EXPECT_EQ(expected_aggregated_first_pass_sqs_transform.ToString(), 1006 EXPECT_EQ(expected_aggregated_first_pass_sqs_transform.ToString(),
999 aggregated_first_pass_sqs->content_to_target_transform.ToString()); 1007 aggregated_first_pass_sqs->content_to_target_transform.ToString());
1000 1008
1001 // The first pass's transform to the root target should include the aggregated 1009 // The first pass's transform to the root target should include the aggregated
1002 // transform. 1010 // transform, including the transform from the child pass to the root.
1003 gfx::Transform expected_first_pass_transform_to_root_target; 1011 gfx::Transform expected_first_pass_transform_to_root_target;
1012 expected_first_pass_transform_to_root_target.Translate(10, 5);
1004 expected_first_pass_transform_to_root_target.Translate(0, 10); 1013 expected_first_pass_transform_to_root_target.Translate(0, 10);
1005 expected_first_pass_transform_to_root_target.Scale(2, 3); 1014 expected_first_pass_transform_to_root_target.Scale(2, 3);
1006 expected_first_pass_transform_to_root_target.Translate(8, 0); 1015 expected_first_pass_transform_to_root_target.Translate(8, 0);
1007 EXPECT_EQ(expected_first_pass_transform_to_root_target.ToString(), 1016 EXPECT_EQ(expected_first_pass_transform_to_root_target.ToString(),
1008 aggregated_pass_list[0]->transform_to_root_target.ToString()); 1017 aggregated_pass_list[0]->transform_to_root_target.ToString());
1009 1018
1010 ASSERT_EQ(2u, aggregated_pass_list[1]->quad_list.size()); 1019 ASSERT_EQ(2u, aggregated_pass_list[1]->quad_list.size());
1011 1020
1012 gfx::Transform expected_root_pass_quad_transforms[2]; 1021 gfx::Transform expected_root_pass_quad_transforms[2];
1013 // The first quad in the root pass is the solid color quad from the original 1022 // The first quad in the root pass is the solid color quad from the original
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 EXPECT_THAT(returned_ids, 1415 EXPECT_THAT(returned_ids,
1407 testing::WhenSorted(testing::ElementsAreArray(ids))); 1416 testing::WhenSorted(testing::ElementsAreArray(ids)));
1408 EXPECT_EQ(3u, resource_provider_->num_resources()); 1417 EXPECT_EQ(3u, resource_provider_->num_resources());
1409 factory.Destroy(surface_id); 1418 factory.Destroy(surface_id);
1410 factory.Destroy(surface_id2); 1419 factory.Destroy(surface_id2);
1411 } 1420 }
1412 1421
1413 } // namespace 1422 } // namespace
1414 } // namespace cc 1423 } // namespace cc
1415 1424
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