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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 2096493002: Make cc::CompositorFrames movable [Part 1 of 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Dana's nits Created 4 years, 5 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/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 576
577 FakeOutputSurface* fake_output_surface = 577 FakeOutputSurface* fake_output_surface =
578 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); 578 static_cast<FakeOutputSurface*>(host_impl_->output_surface());
579 EXPECT_EQ(fake_output_surface->num_sent_frames(), 0u); 579 EXPECT_EQ(fake_output_surface->num_sent_frames(), 0u);
580 gfx::Transform identity; 580 gfx::Transform identity;
581 gfx::Rect viewport(100, 100); 581 gfx::Rect viewport(100, 100);
582 const bool resourceless_software_draw = true; 582 const bool resourceless_software_draw = true;
583 host_impl_->OnDraw(identity, viewport, viewport, resourceless_software_draw); 583 host_impl_->OnDraw(identity, viewport, viewport, resourceless_software_draw);
584 ASSERT_EQ(fake_output_surface->num_sent_frames(), 1u); 584 ASSERT_EQ(fake_output_surface->num_sent_frames(), 1u);
585 EXPECT_EQ(gfx::SizeF(100.f, 100.f), 585 EXPECT_EQ(gfx::SizeF(100.f, 100.f),
586 fake_output_surface->last_sent_frame().metadata.root_layer_size); 586 fake_output_surface->last_sent_frame()->metadata.root_layer_size);
587 } 587 }
588 588
589 TEST_F(LayerTreeHostImplTest, ScrollDeltaNoLayers) { 589 TEST_F(LayerTreeHostImplTest, ScrollDeltaNoLayers) {
590 ASSERT_FALSE(host_impl_->active_tree()->root_layer()); 590 ASSERT_FALSE(host_impl_->active_tree()->root_layer());
591 591
592 std::unique_ptr<ScrollAndScaleSet> scroll_info = 592 std::unique_ptr<ScrollAndScaleSet> scroll_info =
593 host_impl_->ProcessScrollDeltas(); 593 host_impl_->ProcessScrollDeltas();
594 ASSERT_EQ(scroll_info->scrolls.size(), 0u); 594 ASSERT_EQ(scroll_info->scrolls.size(), 0u);
595 } 595 }
596 596
(...skipping 7752 matching lines...) Expand 10 before | Expand all | Expand 10 after
8349 root->SetPosition(gfx::PointF()); 8349 root->SetPosition(gfx::PointF());
8350 root->SetBounds(gfx::Size(10, 10)); 8350 root->SetBounds(gfx::Size(10, 10));
8351 root->SetDrawsContent(true); 8351 root->SetDrawsContent(true);
8352 root->test_properties()->force_render_surface = true; 8352 root->test_properties()->force_render_surface = true;
8353 8353
8354 host_impl_->active_tree()->SetRootLayer(std::move(root)); 8354 host_impl_->active_tree()->SetRootLayer(std::move(root));
8355 8355
8356 FakeOutputSurface* fake_output_surface = 8356 FakeOutputSurface* fake_output_surface =
8357 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); 8357 static_cast<FakeOutputSurface*>(host_impl_->output_surface());
8358 8358
8359 const std::vector<ui::LatencyInfo>& metadata_latency_before =
8360 fake_output_surface->last_sent_frame().metadata.latency_info;
8361 EXPECT_TRUE(metadata_latency_before.empty());
8362
8363 ui::LatencyInfo latency_info; 8359 ui::LatencyInfo latency_info;
8364 latency_info.AddLatencyNumber( 8360 latency_info.AddLatencyNumber(
8365 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, 0); 8361 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, 0);
8366 std::unique_ptr<SwapPromise> swap_promise( 8362 std::unique_ptr<SwapPromise> swap_promise(
8367 new LatencyInfoSwapPromise(latency_info)); 8363 new LatencyInfoSwapPromise(latency_info));
8368 host_impl_->active_tree()->QueuePinnedSwapPromise(std::move(swap_promise)); 8364 host_impl_->active_tree()->QueuePinnedSwapPromise(std::move(swap_promise));
8369 host_impl_->SetNeedsRedraw(); 8365 host_impl_->SetNeedsRedraw();
8370 8366
8371 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); 8367 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize());
8372 LayerTreeHostImpl::FrameData frame; 8368 LayerTreeHostImpl::FrameData frame;
8373 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 8369 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
8374 host_impl_->DrawLayers(&frame); 8370 host_impl_->DrawLayers(&frame);
8375 host_impl_->DidDrawAllLayers(frame); 8371 host_impl_->DidDrawAllLayers(frame);
8376 EXPECT_TRUE(host_impl_->SwapBuffers(frame)); 8372 EXPECT_TRUE(host_impl_->SwapBuffers(frame));
8377 8373
8378 const std::vector<ui::LatencyInfo>& metadata_latency_after = 8374 const std::vector<ui::LatencyInfo>& metadata_latency_after =
8379 fake_output_surface->last_sent_frame().metadata.latency_info; 8375 fake_output_surface->last_sent_frame()->metadata.latency_info;
8380 EXPECT_EQ(1u, metadata_latency_after.size()); 8376 EXPECT_EQ(1u, metadata_latency_after.size());
8381 EXPECT_TRUE(metadata_latency_after[0].FindLatency( 8377 EXPECT_TRUE(metadata_latency_after[0].FindLatency(
8382 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); 8378 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL));
8383 } 8379 }
8384 8380
8385 TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) { 8381 TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) {
8386 int root_layer_id = 1; 8382 int root_layer_id = 1;
8387 std::unique_ptr<SolidColorLayerImpl> root = 8383 std::unique_ptr<SolidColorLayerImpl> root =
8388 SolidColorLayerImpl::Create(host_impl_->active_tree(), root_layer_id); 8384 SolidColorLayerImpl::Create(host_impl_->active_tree(), root_layer_id);
8389 root->SetPosition(gfx::PointF()); 8385 root->SetPosition(gfx::PointF());
8390 root->SetBounds(gfx::Size(10, 10)); 8386 root->SetBounds(gfx::Size(10, 10));
8391 root->SetDrawsContent(true); 8387 root->SetDrawsContent(true);
8392 root->test_properties()->force_render_surface = true; 8388 root->test_properties()->force_render_surface = true;
8393 8389
8394 host_impl_->active_tree()->SetRootLayer(std::move(root)); 8390 host_impl_->active_tree()->SetRootLayer(std::move(root));
8395 8391
8396 // Ensure the default frame selection bounds are empty. 8392 // Ensure the default frame selection bounds are empty.
8397 FakeOutputSurface* fake_output_surface = 8393 FakeOutputSurface* fake_output_surface =
8398 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); 8394 static_cast<FakeOutputSurface*>(host_impl_->output_surface());
8399 const Selection<gfx::SelectionBound>& selection_before =
8400 fake_output_surface->last_sent_frame().metadata.selection;
8401 EXPECT_EQ(gfx::SelectionBound(), selection_before.start);
8402 EXPECT_EQ(gfx::SelectionBound(), selection_before.end);
8403 8395
8404 // Plumb the layer-local selection bounds. 8396 // Plumb the layer-local selection bounds.
8405 gfx::Point selection_top(5, 0); 8397 gfx::Point selection_top(5, 0);
8406 gfx::Point selection_bottom(5, 5); 8398 gfx::Point selection_bottom(5, 5);
8407 LayerSelection selection; 8399 LayerSelection selection;
8408 selection.start.type = gfx::SelectionBound::CENTER; 8400 selection.start.type = gfx::SelectionBound::CENTER;
8409 selection.start.layer_id = root_layer_id; 8401 selection.start.layer_id = root_layer_id;
8410 selection.start.edge_bottom = selection_bottom; 8402 selection.start.edge_bottom = selection_bottom;
8411 selection.start.edge_top = selection_top; 8403 selection.start.edge_top = selection_top;
8412 selection.end = selection.start; 8404 selection.end = selection.start;
8413 host_impl_->active_tree()->RegisterSelection(selection); 8405 host_impl_->active_tree()->RegisterSelection(selection);
8414 8406
8415 // Trigger a draw-swap sequence. 8407 // Trigger a draw-swap sequence.
8416 host_impl_->SetNeedsRedraw(); 8408 host_impl_->SetNeedsRedraw();
8417 8409
8418 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); 8410 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize());
8419 LayerTreeHostImpl::FrameData frame; 8411 LayerTreeHostImpl::FrameData frame;
8420 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 8412 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
8421 host_impl_->DrawLayers(&frame); 8413 host_impl_->DrawLayers(&frame);
8422 host_impl_->DidDrawAllLayers(frame); 8414 host_impl_->DidDrawAllLayers(frame);
8423 EXPECT_TRUE(host_impl_->SwapBuffers(frame)); 8415 EXPECT_TRUE(host_impl_->SwapBuffers(frame));
8424 8416
8425 // Ensure the selection bounds have propagated to the frame metadata. 8417 // Ensure the selection bounds have propagated to the frame metadata.
8426 const Selection<gfx::SelectionBound>& selection_after = 8418 const Selection<gfx::SelectionBound>& selection_after =
8427 fake_output_surface->last_sent_frame().metadata.selection; 8419 fake_output_surface->last_sent_frame()->metadata.selection;
8428 EXPECT_EQ(selection.start.type, selection_after.start.type()); 8420 EXPECT_EQ(selection.start.type, selection_after.start.type());
8429 EXPECT_EQ(selection.end.type, selection_after.end.type()); 8421 EXPECT_EQ(selection.end.type, selection_after.end.type());
8430 EXPECT_EQ(gfx::PointF(selection_bottom), selection_after.start.edge_bottom()); 8422 EXPECT_EQ(gfx::PointF(selection_bottom), selection_after.start.edge_bottom());
8431 EXPECT_EQ(gfx::PointF(selection_top), selection_after.start.edge_top()); 8423 EXPECT_EQ(gfx::PointF(selection_top), selection_after.start.edge_top());
8432 EXPECT_TRUE(selection_after.start.visible()); 8424 EXPECT_TRUE(selection_after.start.visible());
8433 EXPECT_TRUE(selection_after.start.visible()); 8425 EXPECT_TRUE(selection_after.start.visible());
8434 } 8426 }
8435 8427
8436 class SimpleSwapPromiseMonitor : public SwapPromiseMonitor { 8428 class SimpleSwapPromiseMonitor : public SwapPromiseMonitor {
8437 public: 8429 public:
(...skipping 2465 matching lines...) Expand 10 before | Expand all | Expand 10 after
10903 10895
10904 // Re-initialize with a software output surface. 10896 // Re-initialize with a software output surface.
10905 output_surface_ = FakeOutputSurface::CreateSoftware( 10897 output_surface_ = FakeOutputSurface::CreateSoftware(
10906 base::WrapUnique(new SoftwareOutputDevice)); 10898 base::WrapUnique(new SoftwareOutputDevice));
10907 host_impl_->InitializeRenderer(output_surface_.get()); 10899 host_impl_->InitializeRenderer(output_surface_.get());
10908 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 10900 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
10909 } 10901 }
10910 10902
10911 } // namespace 10903 } // namespace
10912 } // namespace cc 10904 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698