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

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

Issue 675083002: Add cc::RendererSettings for use in with cc::Display (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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_pixeltest_blending.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 <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 reduce_memory_result_(true), 94 reduce_memory_result_(true),
95 current_limit_bytes_(0), 95 current_limit_bytes_(0),
96 current_priority_cutoff_value_(0) { 96 current_priority_cutoff_value_(0) {
97 media::InitializeMediaLibraryForTesting(); 97 media::InitializeMediaLibraryForTesting();
98 } 98 }
99 99
100 LayerTreeSettings DefaultSettings() { 100 LayerTreeSettings DefaultSettings() {
101 LayerTreeSettings settings; 101 LayerTreeSettings settings;
102 settings.minimum_occlusion_tracking_size = gfx::Size(); 102 settings.minimum_occlusion_tracking_size = gfx::Size();
103 settings.impl_side_painting = true; 103 settings.impl_side_painting = true;
104 settings.texture_id_allocation_chunk_size = 1; 104 settings.renderer_settings.texture_id_allocation_chunk_size = 1;
105 settings.report_overscroll_only_for_scrollable_axes = true; 105 settings.report_overscroll_only_for_scrollable_axes = true;
106 settings.use_pinch_virtual_viewport = true; 106 settings.use_pinch_virtual_viewport = true;
107 return settings; 107 return settings;
108 } 108 }
109 109
110 void SetUp() override { 110 void SetUp() override {
111 CreateHostImpl(DefaultSettings(), CreateOutputSurface()); 111 CreateHostImpl(DefaultSettings(), CreateOutputSurface());
112 } 112 }
113 113
114 void TearDown() override {} 114 void TearDown() override {}
(...skipping 4678 matching lines...) Expand 10 before | Expand all | Expand 10 after
4793 context_provider->BindToCurrentThread(); 4793 context_provider->BindToCurrentThread();
4794 context_provider->TestContext3d()->set_have_post_sub_buffer(true); 4794 context_provider->TestContext3d()->set_have_post_sub_buffer(true);
4795 4795
4796 scoped_ptr<FakeOutputSurface> output_surface( 4796 scoped_ptr<FakeOutputSurface> output_surface(
4797 FakeOutputSurface::Create3d(context_provider)); 4797 FakeOutputSurface::Create3d(context_provider));
4798 FakeOutputSurface* fake_output_surface = output_surface.get(); 4798 FakeOutputSurface* fake_output_surface = output_surface.get();
4799 4799
4800 // This test creates its own LayerTreeHostImpl, so 4800 // This test creates its own LayerTreeHostImpl, so
4801 // that we can force partial swap enabled. 4801 // that we can force partial swap enabled.
4802 LayerTreeSettings settings; 4802 LayerTreeSettings settings;
4803 settings.partial_swap_enabled = true; 4803 settings.renderer_settings.partial_swap_enabled = true;
4804 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( 4804 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
4805 new TestSharedBitmapManager()); 4805 new TestSharedBitmapManager());
4806 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl = 4806 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl =
4807 LayerTreeHostImpl::Create(settings, 4807 LayerTreeHostImpl::Create(settings,
4808 this, 4808 this,
4809 &proxy_, 4809 &proxy_,
4810 &stats_instrumentation_, 4810 &stats_instrumentation_,
4811 shared_bitmap_manager.get(), 4811 shared_bitmap_manager.get(),
4812 NULL, 4812 NULL,
4813 0); 4813 0);
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
5009 } 5009 }
5010 }; 5010 };
5011 5011
5012 TEST_F(LayerTreeHostImplTest, NoPartialSwap) { 5012 TEST_F(LayerTreeHostImplTest, NoPartialSwap) {
5013 scoped_ptr<MockContext> mock_context_owned(new MockContext); 5013 scoped_ptr<MockContext> mock_context_owned(new MockContext);
5014 MockContext* mock_context = mock_context_owned.get(); 5014 MockContext* mock_context = mock_context_owned.get();
5015 MockContextHarness harness(mock_context); 5015 MockContextHarness harness(mock_context);
5016 5016
5017 // Run test case 5017 // Run test case
5018 LayerTreeSettings settings = DefaultSettings(); 5018 LayerTreeSettings settings = DefaultSettings();
5019 settings.partial_swap_enabled = false; 5019 settings.renderer_settings.partial_swap_enabled = false;
5020 CreateHostImpl(settings, 5020 CreateHostImpl(settings,
5021 FakeOutputSurface::Create3d(mock_context_owned.Pass())); 5021 FakeOutputSurface::Create3d(mock_context_owned.Pass()));
5022 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); 5022 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1));
5023 5023
5024 // Without partial swap, and no clipping, no scissor is set. 5024 // Without partial swap, and no clipping, no scissor is set.
5025 harness.MustDrawSolidQuad(); 5025 harness.MustDrawSolidQuad();
5026 harness.MustSetNoScissor(); 5026 harness.MustSetNoScissor();
5027 { 5027 {
5028 LayerTreeHostImpl::FrameData frame; 5028 LayerTreeHostImpl::FrameData frame;
5029 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 5029 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
(...skipping 15 matching lines...) Expand all
5045 } 5045 }
5046 Mock::VerifyAndClearExpectations(&mock_context); 5046 Mock::VerifyAndClearExpectations(&mock_context);
5047 } 5047 }
5048 5048
5049 TEST_F(LayerTreeHostImplTest, PartialSwap) { 5049 TEST_F(LayerTreeHostImplTest, PartialSwap) {
5050 scoped_ptr<MockContext> context_owned(new MockContext); 5050 scoped_ptr<MockContext> context_owned(new MockContext);
5051 MockContext* mock_context = context_owned.get(); 5051 MockContext* mock_context = context_owned.get();
5052 MockContextHarness harness(mock_context); 5052 MockContextHarness harness(mock_context);
5053 5053
5054 LayerTreeSettings settings = DefaultSettings(); 5054 LayerTreeSettings settings = DefaultSettings();
5055 settings.partial_swap_enabled = true; 5055 settings.renderer_settings.partial_swap_enabled = true;
5056 CreateHostImpl(settings, FakeOutputSurface::Create3d(context_owned.Pass())); 5056 CreateHostImpl(settings, FakeOutputSurface::Create3d(context_owned.Pass()));
5057 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); 5057 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1));
5058 5058
5059 // The first frame is not a partially-swapped one. 5059 // The first frame is not a partially-swapped one.
5060 harness.MustSetScissor(0, 0, 10, 10); 5060 harness.MustSetScissor(0, 0, 10, 10);
5061 harness.MustDrawSolidQuad(); 5061 harness.MustDrawSolidQuad();
5062 { 5062 {
5063 LayerTreeHostImpl::FrameData frame; 5063 LayerTreeHostImpl::FrameData frame;
5064 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 5064 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
5065 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 5065 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
(...skipping 23 matching lines...) Expand all
5089 Proxy* proxy, 5089 Proxy* proxy,
5090 SharedBitmapManager* manager, 5090 SharedBitmapManager* manager,
5091 RenderingStatsInstrumentation* stats_instrumentation) { 5091 RenderingStatsInstrumentation* stats_instrumentation) {
5092 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); 5092 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create());
5093 scoped_ptr<OutputSurface> output_surface( 5093 scoped_ptr<OutputSurface> output_surface(
5094 FakeOutputSurface::Create3d(provider)); 5094 FakeOutputSurface::Create3d(provider));
5095 provider->BindToCurrentThread(); 5095 provider->BindToCurrentThread();
5096 provider->TestContext3d()->set_have_post_sub_buffer(true); 5096 provider->TestContext3d()->set_have_post_sub_buffer(true);
5097 5097
5098 LayerTreeSettings settings; 5098 LayerTreeSettings settings;
5099 settings.partial_swap_enabled = partial_swap; 5099 settings.renderer_settings.partial_swap_enabled = partial_swap;
5100 scoped_ptr<LayerTreeHostImpl> my_host_impl = LayerTreeHostImpl::Create( 5100 scoped_ptr<LayerTreeHostImpl> my_host_impl = LayerTreeHostImpl::Create(
5101 settings, client, proxy, stats_instrumentation, manager, NULL, 0); 5101 settings, client, proxy, stats_instrumentation, manager, NULL, 0);
5102 my_host_impl->InitializeRenderer(output_surface.Pass()); 5102 my_host_impl->InitializeRenderer(output_surface.Pass());
5103 my_host_impl->SetViewportSize(gfx::Size(100, 100)); 5103 my_host_impl->SetViewportSize(gfx::Size(100, 100));
5104 5104
5105 /* 5105 /*
5106 Layers are created as follows: 5106 Layers are created as follows:
5107 5107
5108 +--------------------+ 5108 +--------------------+
5109 | 1 | 5109 | 1 |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
5274 GLintptr offset)); 5274 GLintptr offset));
5275 }; 5275 };
5276 5276
5277 TEST_F(LayerTreeHostImplTest, HasTransparentBackground) { 5277 TEST_F(LayerTreeHostImplTest, HasTransparentBackground) {
5278 scoped_ptr<MockDrawQuadsToFillScreenContext> mock_context_owned( 5278 scoped_ptr<MockDrawQuadsToFillScreenContext> mock_context_owned(
5279 new MockDrawQuadsToFillScreenContext); 5279 new MockDrawQuadsToFillScreenContext);
5280 MockDrawQuadsToFillScreenContext* mock_context = mock_context_owned.get(); 5280 MockDrawQuadsToFillScreenContext* mock_context = mock_context_owned.get();
5281 5281
5282 // Run test case 5282 // Run test case
5283 LayerTreeSettings settings = DefaultSettings(); 5283 LayerTreeSettings settings = DefaultSettings();
5284 settings.partial_swap_enabled = false; 5284 settings.renderer_settings.partial_swap_enabled = false;
5285 CreateHostImpl(settings, 5285 CreateHostImpl(settings,
5286 FakeOutputSurface::Create3d(mock_context_owned.Pass())); 5286 FakeOutputSurface::Create3d(mock_context_owned.Pass()));
5287 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); 5287 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1));
5288 host_impl_->active_tree()->set_background_color(SK_ColorWHITE); 5288 host_impl_->active_tree()->set_background_color(SK_ColorWHITE);
5289 5289
5290 // Verify one quad is drawn when transparent background set is not set. 5290 // Verify one quad is drawn when transparent background set is not set.
5291 host_impl_->active_tree()->set_has_transparent_background(false); 5291 host_impl_->active_tree()->set_has_transparent_background(false);
5292 EXPECT_CALL(*mock_context, useProgram(_)) 5292 EXPECT_CALL(*mock_context, useProgram(_))
5293 .Times(1); 5293 .Times(1);
5294 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)) 5294 EXPECT_CALL(*mock_context, drawElements(_, _, _, _))
(...skipping 2481 matching lines...) Expand 10 before | Expand all | Expand 10 after
7776 // surface. 7776 // surface.
7777 EXPECT_EQ(0, num_lost_surfaces_); 7777 EXPECT_EQ(0, num_lost_surfaces_);
7778 host_impl_->DidLoseOutputSurface(); 7778 host_impl_->DidLoseOutputSurface();
7779 EXPECT_EQ(1, num_lost_surfaces_); 7779 EXPECT_EQ(1, num_lost_surfaces_);
7780 host_impl_->DidLoseOutputSurface(); 7780 host_impl_->DidLoseOutputSurface();
7781 EXPECT_LE(1, num_lost_surfaces_); 7781 EXPECT_LE(1, num_lost_surfaces_);
7782 } 7782 }
7783 7783
7784 } // namespace 7784 } // namespace
7785 } // namespace cc 7785 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_pixeltest_blending.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698