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

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

Issue 2905523003: Revert of Enforce constant size and device scale factor for surfaces (Closed)
Patch Set: Created 3 years, 6 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.cc ('k') | cc/surfaces/surface_manager.h » ('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/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
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());
1110 std::unique_ptr<RenderPass> grandchild_pass = RenderPass::Create(); 1112 std::unique_ptr<RenderPass> grandchild_pass = RenderPass::Create();
1111 gfx::Rect output_rect(SurfaceSize()); 1113 gfx::Rect output_rect(SurfaceSize());
1112 gfx::Rect damage_rect(SurfaceSize()); 1114 gfx::Rect damage_rect(SurfaceSize());
1113 gfx::Transform transform_to_root_target; 1115 gfx::Transform transform_to_root_target;
1114 grandchild_pass->SetNew(pass_id, output_rect, damage_rect, 1116 grandchild_pass->SetNew(pass_id, output_rect, damage_rect,
1115 transform_to_root_target); 1117 transform_to_root_target);
1116 AddSolidColorQuadWithBlendMode( 1118 AddSolidColorQuadWithBlendMode(
1117 SurfaceSize(), grandchild_pass.get(), blend_modes[2]); 1119 SurfaceSize(), grandchild_pass.get(), blend_modes[2]);
1118 QueuePassAsFrame(std::move(grandchild_pass), grandchild_local_surface_id, 1120 QueuePassAsFrame(std::move(grandchild_pass), grandchild_local_surface_id,
1119 grandchild_support.get()); 1121 grandchild_support.get());
1120 1122
1121 LocalSurfaceId child_one_local_surface_id = allocator_.GenerateId(); 1123 LocalSurfaceId child_one_local_surface_id = allocator_.GenerateId();
1122 SurfaceId child_one_surface_id(child_one_support->frame_sink_id(), 1124 SurfaceId child_one_surface_id(child_one_support->frame_sink_id(),
1123 child_one_local_surface_id); 1125 child_one_local_surface_id);
1126 child_one_support->SubmitCompositorFrame(child_one_local_surface_id,
1127 test::MakeCompositorFrame());
1124 1128
1125 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create(); 1129 std::unique_ptr<RenderPass> child_one_pass = RenderPass::Create();
1126 child_one_pass->SetNew(pass_id, output_rect, damage_rect, 1130 child_one_pass->SetNew(pass_id, output_rect, damage_rect,
1127 transform_to_root_target); 1131 transform_to_root_target);
1128 AddSolidColorQuadWithBlendMode( 1132 AddSolidColorQuadWithBlendMode(
1129 SurfaceSize(), child_one_pass.get(), blend_modes[1]); 1133 SurfaceSize(), child_one_pass.get(), blend_modes[1]);
1130 SurfaceDrawQuad* grandchild_surface_quad = 1134 SurfaceDrawQuad* grandchild_surface_quad =
1131 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 1135 child_one_pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
1132 grandchild_surface_quad->SetNew( 1136 grandchild_surface_quad->SetNew(
1133 child_one_pass->shared_quad_state_list.back(), gfx::Rect(SurfaceSize()), 1137 child_one_pass->shared_quad_state_list.back(), gfx::Rect(SurfaceSize()),
1134 gfx::Rect(SurfaceSize()), grandchild_surface_id, 1138 gfx::Rect(SurfaceSize()), grandchild_surface_id,
1135 SurfaceDrawQuadType::PRIMARY, nullptr); 1139 SurfaceDrawQuadType::PRIMARY, nullptr);
1136 AddSolidColorQuadWithBlendMode( 1140 AddSolidColorQuadWithBlendMode(
1137 SurfaceSize(), child_one_pass.get(), blend_modes[3]); 1141 SurfaceSize(), child_one_pass.get(), blend_modes[3]);
1138 QueuePassAsFrame(std::move(child_one_pass), child_one_local_surface_id, 1142 QueuePassAsFrame(std::move(child_one_pass), child_one_local_surface_id,
1139 child_one_support.get()); 1143 child_one_support.get());
1140 1144
1141 LocalSurfaceId child_two_local_surface_id = allocator_.GenerateId(); 1145 LocalSurfaceId child_two_local_surface_id = allocator_.GenerateId();
1142 SurfaceId child_two_surface_id(child_two_support->frame_sink_id(), 1146 SurfaceId child_two_surface_id(child_two_support->frame_sink_id(),
1143 child_two_local_surface_id); 1147 child_two_local_surface_id);
1148 child_two_support->SubmitCompositorFrame(child_two_local_surface_id,
1149 test::MakeCompositorFrame());
1144 1150
1145 std::unique_ptr<RenderPass> child_two_pass = RenderPass::Create(); 1151 std::unique_ptr<RenderPass> child_two_pass = RenderPass::Create();
1146 child_two_pass->SetNew(pass_id, output_rect, damage_rect, 1152 child_two_pass->SetNew(pass_id, output_rect, damage_rect,
1147 transform_to_root_target); 1153 transform_to_root_target);
1148 AddSolidColorQuadWithBlendMode( 1154 AddSolidColorQuadWithBlendMode(
1149 SurfaceSize(), child_two_pass.get(), blend_modes[5]); 1155 SurfaceSize(), child_two_pass.get(), blend_modes[5]);
1150 QueuePassAsFrame(std::move(child_two_pass), child_two_local_surface_id, 1156 QueuePassAsFrame(std::move(child_two_pass), child_two_local_surface_id,
1151 child_two_support.get()); 1157 child_two_support.get());
1152 1158
1153 std::unique_ptr<RenderPass> root_pass = RenderPass::Create(); 1159 std::unique_ptr<RenderPass> root_pass = RenderPass::Create();
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
1946 }; 1952 };
1947 1953
1948 void SubmitCompositorFrameWithResources(ResourceId* resource_ids, 1954 void SubmitCompositorFrameWithResources(ResourceId* resource_ids,
1949 size_t num_resource_ids, 1955 size_t num_resource_ids,
1950 bool valid, 1956 bool valid,
1951 SurfaceId child_id, 1957 SurfaceId child_id,
1952 CompositorFrameSinkSupport* support, 1958 CompositorFrameSinkSupport* support,
1953 SurfaceId surface_id) { 1959 SurfaceId surface_id) {
1954 CompositorFrame frame = test::MakeEmptyCompositorFrame(); 1960 CompositorFrame frame = test::MakeEmptyCompositorFrame();
1955 std::unique_ptr<RenderPass> pass = RenderPass::Create(); 1961 std::unique_ptr<RenderPass> pass = RenderPass::Create();
1956 pass->SetNew(1, gfx::Rect(0, 0, 20, 20), gfx::Rect(), gfx::Transform()); 1962 pass->id = 1;
1957 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 1963 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
1958 sqs->opacity = 1.f; 1964 sqs->opacity = 1.f;
1959 if (child_id.is_valid()) { 1965 if (child_id.is_valid()) {
1960 SurfaceDrawQuad* surface_quad = 1966 SurfaceDrawQuad* surface_quad =
1961 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 1967 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
1962 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), 1968 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1),
1963 child_id, SurfaceDrawQuadType::PRIMARY, nullptr); 1969 child_id, SurfaceDrawQuadType::PRIMARY, nullptr);
1964 } 1970 }
1965 1971
1966 for (size_t i = 0u; i < num_resource_ids; ++i) { 1972 for (size_t i = 0u; i < num_resource_ids; ++i) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2028 2034
2029 TEST_F(SurfaceAggregatorWithResourcesTest, TakeInvalidResources) { 2035 TEST_F(SurfaceAggregatorWithResourcesTest, TakeInvalidResources) {
2030 FakeCompositorFrameSinkSupportClient client; 2036 FakeCompositorFrameSinkSupportClient client;
2031 std::unique_ptr<CompositorFrameSinkSupport> support = 2037 std::unique_ptr<CompositorFrameSinkSupport> support =
2032 CompositorFrameSinkSupport::Create( 2038 CompositorFrameSinkSupport::Create(
2033 &client, &manager_, kArbitraryRootFrameSinkId, kRootIsRoot, 2039 &client, &manager_, kArbitraryRootFrameSinkId, kRootIsRoot,
2034 kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints); 2040 kHandlesFrameSinkIdInvalidation, kNeedsSyncPoints);
2035 LocalSurfaceId local_surface_id(7u, base::UnguessableToken::Create()); 2041 LocalSurfaceId local_surface_id(7u, base::UnguessableToken::Create());
2036 SurfaceId surface_id(support->frame_sink_id(), local_surface_id); 2042 SurfaceId surface_id(support->frame_sink_id(), local_surface_id);
2037 2043
2038 CompositorFrame frame = test::MakeCompositorFrame(); 2044 CompositorFrame frame = test::MakeEmptyCompositorFrame();
2045 std::unique_ptr<RenderPass> pass = RenderPass::Create();
2046 pass->id = 1;
2039 TransferableResource resource; 2047 TransferableResource resource;
2040 resource.id = 11; 2048 resource.id = 11;
2041 // ResourceProvider is software but resource is not, so it should be 2049 // ResourceProvider is software but resource is not, so it should be
2042 // ignored. 2050 // ignored.
2043 resource.is_software = false; 2051 resource.is_software = false;
2044 frame.resource_list.push_back(resource); 2052 frame.resource_list.push_back(resource);
2053 frame.render_pass_list.push_back(std::move(pass));
2045 support->SubmitCompositorFrame(local_surface_id, std::move(frame)); 2054 support->SubmitCompositorFrame(local_surface_id, std::move(frame));
2046 2055
2047 CompositorFrame returned_frame = aggregator_->Aggregate(surface_id); 2056 CompositorFrame returned_frame = aggregator_->Aggregate(surface_id);
2048 2057
2049 // Nothing should be available to be returned yet. 2058 // Nothing should be available to be returned yet.
2050 EXPECT_TRUE(client.returned_resources().empty()); 2059 EXPECT_TRUE(client.returned_resources().empty());
2051 2060
2052 SubmitCompositorFrameWithResources(NULL, 0, true, SurfaceId(), support.get(), 2061 SubmitCompositorFrameWithResources(NULL, 0, true, SurfaceId(), support.get(),
2053 surface_id); 2062 surface_id);
2054 ASSERT_EQ(1u, client.returned_resources().size()); 2063 ASSERT_EQ(1u, client.returned_resources().size());
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
2186 support1.get(), surface1_id); 2195 support1.get(), surface1_id);
2187 2196
2188 CompositorFrame frame = aggregator_->Aggregate(surface1_id); 2197 CompositorFrame frame = aggregator_->Aggregate(surface1_id);
2189 2198
2190 RenderPass* render_pass = frame.render_pass_list.back().get(); 2199 RenderPass* render_pass = frame.render_pass_list.back().get();
2191 2200
2192 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, render_pass->quad_list.back()->material); 2201 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, render_pass->quad_list.back()->material);
2193 2202
2194 { 2203 {
2195 std::unique_ptr<RenderPass> pass = RenderPass::Create(); 2204 std::unique_ptr<RenderPass> pass = RenderPass::Create();
2196 pass->SetNew(1, gfx::Rect(0, 0, 20, 20), gfx::Rect(), gfx::Transform()); 2205 pass->id = 1;
2197 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 2206 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
2198 sqs->opacity = 1.f; 2207 sqs->opacity = 1.f;
2199 SurfaceDrawQuad* surface_quad = 2208 SurfaceDrawQuad* surface_quad =
2200 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 2209 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
2201 2210
2202 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), 2211 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1),
2203 surface1_id, SurfaceDrawQuadType::PRIMARY, nullptr); 2212 surface1_id, SurfaceDrawQuadType::PRIMARY, nullptr);
2204 pass->copy_requests.push_back(CopyOutputRequest::CreateEmptyRequest()); 2213 pass->copy_requests.push_back(CopyOutputRequest::CreateEmptyRequest());
2205 2214
2206 CompositorFrame frame = test::MakeEmptyCompositorFrame(); 2215 CompositorFrame frame = test::MakeEmptyCompositorFrame();
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2270 aggregated_frame = aggregator_.Aggregate(surface_id); 2279 aggregated_frame = aggregator_.Aggregate(surface_id);
2271 EXPECT_EQ(3u, aggregated_frame.render_pass_list.size()); 2280 EXPECT_EQ(3u, aggregated_frame.render_pass_list.size());
2272 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[0]->color_space); 2281 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[0]->color_space);
2273 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[1]->color_space); 2282 EXPECT_EQ(color_space1, aggregated_frame.render_pass_list[1]->color_space);
2274 EXPECT_EQ(color_space3, aggregated_frame.render_pass_list[2]->color_space); 2283 EXPECT_EQ(color_space3, aggregated_frame.render_pass_list[2]->color_space);
2275 } 2284 }
2276 2285
2277 } // namespace 2286 } // namespace
2278 } // namespace cc 2287 } // namespace cc
2279 2288
OLDNEW
« no previous file with comments | « cc/surfaces/surface.cc ('k') | cc/surfaces/surface_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698