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

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

Issue 1411663002: cc: Split Proxy to eliminate unnecessary dependencies on the impl side (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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
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 30 matching lines...) Expand all
41 #include "cc/quads/solid_color_draw_quad.h" 41 #include "cc/quads/solid_color_draw_quad.h"
42 #include "cc/quads/texture_draw_quad.h" 42 #include "cc/quads/texture_draw_quad.h"
43 #include "cc/quads/tile_draw_quad.h" 43 #include "cc/quads/tile_draw_quad.h"
44 #include "cc/test/animation_test_common.h" 44 #include "cc/test/animation_test_common.h"
45 #include "cc/test/begin_frame_args_test.h" 45 #include "cc/test/begin_frame_args_test.h"
46 #include "cc/test/fake_display_list_raster_source.h" 46 #include "cc/test/fake_display_list_raster_source.h"
47 #include "cc/test/fake_layer_tree_host_impl.h" 47 #include "cc/test/fake_layer_tree_host_impl.h"
48 #include "cc/test/fake_output_surface.h" 48 #include "cc/test/fake_output_surface.h"
49 #include "cc/test/fake_output_surface_client.h" 49 #include "cc/test/fake_output_surface_client.h"
50 #include "cc/test/fake_picture_layer_impl.h" 50 #include "cc/test/fake_picture_layer_impl.h"
51 #include "cc/test/fake_proxy.h"
52 #include "cc/test/fake_video_frame_provider.h" 51 #include "cc/test/fake_video_frame_provider.h"
53 #include "cc/test/geometry_test_utils.h" 52 #include "cc/test/geometry_test_utils.h"
54 #include "cc/test/gpu_rasterization_enabled_settings.h" 53 #include "cc/test/gpu_rasterization_enabled_settings.h"
55 #include "cc/test/layer_test_common.h" 54 #include "cc/test/layer_test_common.h"
56 #include "cc/test/layer_tree_test.h" 55 #include "cc/test/layer_tree_test.h"
57 #include "cc/test/test_gpu_memory_buffer_manager.h" 56 #include "cc/test/test_gpu_memory_buffer_manager.h"
58 #include "cc/test/test_shared_bitmap_manager.h" 57 #include "cc/test/test_shared_bitmap_manager.h"
59 #include "cc/test/test_task_graph_runner.h" 58 #include "cc/test/test_task_graph_runner.h"
60 #include "cc/test/test_web_graphics_context_3d.h" 59 #include "cc/test/test_web_graphics_context_3d.h"
61 #include "cc/trees/layer_tree_impl.h" 60 #include "cc/trees/layer_tree_impl.h"
(...skipping 13 matching lines...) Expand all
75 using ::testing::_; 74 using ::testing::_;
76 using media::VideoFrame; 75 using media::VideoFrame;
77 76
78 namespace cc { 77 namespace cc {
79 namespace { 78 namespace {
80 79
81 class LayerTreeHostImplTest : public testing::Test, 80 class LayerTreeHostImplTest : public testing::Test,
82 public LayerTreeHostImplClient { 81 public LayerTreeHostImplClient {
83 public: 82 public:
84 LayerTreeHostImplTest() 83 LayerTreeHostImplTest()
85 : proxy_(base::ThreadTaskRunnerHandle::Get(), 84 : thread_verifier_(base::ThreadTaskRunnerHandle::Get(),
86 base::ThreadTaskRunnerHandle::Get()), 85 base::ThreadTaskRunnerHandle::Get()),
87 always_impl_thread_(&proxy_), 86 always_impl_thread_(&thread_verifier_),
88 always_main_thread_blocked_(&proxy_), 87 always_main_thread_blocked_(&thread_verifier_),
89 on_can_draw_state_changed_called_(false), 88 on_can_draw_state_changed_called_(false),
90 did_notify_ready_to_activate_(false), 89 did_notify_ready_to_activate_(false),
91 did_request_commit_(false), 90 did_request_commit_(false),
92 did_request_redraw_(false), 91 did_request_redraw_(false),
93 did_request_animate_(false), 92 did_request_animate_(false),
94 did_request_prepare_tiles_(false), 93 did_request_prepare_tiles_(false),
95 did_complete_page_scale_animation_(false), 94 did_complete_page_scale_animation_(false),
96 reduce_memory_result_(true) { 95 reduce_memory_result_(true) {
97 media::InitializeMediaLibrary(); 96 media::InitializeMediaLibrary();
98 } 97 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 scoped_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events) 158 scoped_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events)
160 override {} 159 override {}
161 160
162 void set_reduce_memory_result(bool reduce_memory_result) { 161 void set_reduce_memory_result(bool reduce_memory_result) {
163 reduce_memory_result_ = reduce_memory_result; 162 reduce_memory_result_ = reduce_memory_result;
164 } 163 }
165 164
166 virtual bool CreateHostImpl(const LayerTreeSettings& settings, 165 virtual bool CreateHostImpl(const LayerTreeSettings& settings,
167 scoped_ptr<OutputSurface> output_surface) { 166 scoped_ptr<OutputSurface> output_surface) {
168 host_impl_ = LayerTreeHostImpl::Create( 167 host_impl_ = LayerTreeHostImpl::Create(
169 settings, this, &proxy_, &stats_instrumentation_, 168 settings, this, &thread_verifier_, &stats_instrumentation_,
170 &shared_bitmap_manager_, &gpu_memory_buffer_manager_, 169 &shared_bitmap_manager_, &gpu_memory_buffer_manager_,
171 &task_graph_runner_, 0); 170 &task_graph_runner_, 0);
172 output_surface_ = output_surface.Pass(); 171 output_surface_ = output_surface.Pass();
173 host_impl_->SetVisible(true); 172 host_impl_->SetVisible(true);
174 bool init = host_impl_->InitializeRenderer(output_surface_.get()); 173 bool init = host_impl_->InitializeRenderer(output_surface_.get());
175 host_impl_->SetViewportSize(gfx::Size(10, 10)); 174 host_impl_->SetViewportSize(gfx::Size(10, 10));
176 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f); 175 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 1.f);
177 // Set the BeginFrameArgs so that methods which use it are able to. 176 // Set the BeginFrameArgs so that methods which use it are able to.
178 host_impl_->WillBeginImplFrame(CreateBeginFrameArgsForTesting( 177 host_impl_->WillBeginImplFrame(CreateBeginFrameArgsForTesting(
179 BEGINFRAME_FROM_HERE, 178 BEGINFRAME_FROM_HERE,
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 virtual scoped_ptr<OutputSurface> CreateOutputSurface() { 421 virtual scoped_ptr<OutputSurface> CreateOutputSurface() {
423 return FakeOutputSurface::Create3d(); 422 return FakeOutputSurface::Create3d();
424 } 423 }
425 424
426 void DrawOneFrame() { 425 void DrawOneFrame() {
427 LayerTreeHostImpl::FrameData frame_data; 426 LayerTreeHostImpl::FrameData frame_data;
428 PrepareToDrawFrame(&frame_data); 427 PrepareToDrawFrame(&frame_data);
429 host_impl_->DidDrawAllLayers(frame_data); 428 host_impl_->DidDrawAllLayers(frame_data);
430 } 429 }
431 430
432 FakeProxy proxy_; 431 ThreadVerifier thread_verifier_;
433 DebugScopedSetImplThread always_impl_thread_; 432 DebugScopedSetImplThread always_impl_thread_;
434 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; 433 DebugScopedSetMainThreadBlocked always_main_thread_blocked_;
435 434
436 TestSharedBitmapManager shared_bitmap_manager_; 435 TestSharedBitmapManager shared_bitmap_manager_;
437 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 436 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
438 TestTaskGraphRunner task_graph_runner_; 437 TestTaskGraphRunner task_graph_runner_;
439 scoped_ptr<OutputSurface> output_surface_; 438 scoped_ptr<OutputSurface> output_surface_;
440 scoped_ptr<LayerTreeHostImpl> host_impl_; 439 scoped_ptr<LayerTreeHostImpl> host_impl_;
441 FakeRenderingStatsInstrumentation stats_instrumentation_; 440 FakeRenderingStatsInstrumentation stats_instrumentation_;
442 bool on_can_draw_state_changed_called_; 441 bool on_can_draw_state_changed_called_;
(...skipping 1699 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 host_impl_->Animate(); 2141 host_impl_->Animate();
2143 EXPECT_TRUE(did_complete_page_scale_animation_); 2142 EXPECT_TRUE(did_complete_page_scale_animation_);
2144 host_impl_->DidFinishImplFrame(); 2143 host_impl_->DidFinishImplFrame();
2145 } 2144 }
2146 2145
2147 class LayerTreeHostImplOverridePhysicalTime : public LayerTreeHostImpl { 2146 class LayerTreeHostImplOverridePhysicalTime : public LayerTreeHostImpl {
2148 public: 2147 public:
2149 LayerTreeHostImplOverridePhysicalTime( 2148 LayerTreeHostImplOverridePhysicalTime(
2150 const LayerTreeSettings& settings, 2149 const LayerTreeSettings& settings,
2151 LayerTreeHostImplClient* client, 2150 LayerTreeHostImplClient* client,
2152 Proxy* proxy, 2151 ThreadVerifier* thread_verifier,
2153 SharedBitmapManager* manager, 2152 SharedBitmapManager* manager,
2154 TaskGraphRunner* task_graph_runner, 2153 TaskGraphRunner* task_graph_runner,
2155 RenderingStatsInstrumentation* rendering_stats_instrumentation) 2154 RenderingStatsInstrumentation* rendering_stats_instrumentation)
2156 : LayerTreeHostImpl(settings, 2155 : LayerTreeHostImpl(settings,
2157 client, 2156 client,
2158 proxy, 2157 thread_verifier,
2159 rendering_stats_instrumentation, 2158 rendering_stats_instrumentation,
2160 manager, 2159 manager,
2161 nullptr, 2160 nullptr,
2162 task_graph_runner, 2161 task_graph_runner,
2163 0) {} 2162 0) {}
2164 2163
2165 BeginFrameArgs CurrentBeginFrameArgs() const override { 2164 BeginFrameArgs CurrentBeginFrameArgs() const override {
2166 return CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, 2165 return CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE,
2167 fake_current_physical_time_); 2166 fake_current_physical_time_);
2168 } 2167 }
2169 2168
2170 void SetCurrentPhysicalTimeTicksForTest(base::TimeTicks fake_now) { 2169 void SetCurrentPhysicalTimeTicksForTest(base::TimeTicks fake_now) {
2171 fake_current_physical_time_ = fake_now; 2170 fake_current_physical_time_ = fake_now;
2172 } 2171 }
2173 2172
2174 private: 2173 private:
2175 base::TimeTicks fake_current_physical_time_; 2174 base::TimeTicks fake_current_physical_time_;
2176 }; 2175 };
2177 2176
2178 class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest { 2177 class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest {
2179 protected: 2178 protected:
2180 void SetupLayers(LayerTreeSettings settings) { 2179 void SetupLayers(LayerTreeSettings settings) {
2181 gfx::Size content_size(100, 100); 2180 gfx::Size content_size(100, 100);
2182 2181
2183 LayerTreeHostImplOverridePhysicalTime* host_impl_override_time = 2182 LayerTreeHostImplOverridePhysicalTime* host_impl_override_time =
2184 new LayerTreeHostImplOverridePhysicalTime( 2183 new LayerTreeHostImplOverridePhysicalTime(
2185 settings, this, &proxy_, &shared_bitmap_manager_, 2184 settings, this, &thread_verifier_, &shared_bitmap_manager_,
2186 &task_graph_runner_, &stats_instrumentation_); 2185 &task_graph_runner_, &stats_instrumentation_);
2187 host_impl_ = make_scoped_ptr(host_impl_override_time); 2186 host_impl_ = make_scoped_ptr(host_impl_override_time);
2188 output_surface_ = CreateOutputSurface(); 2187 output_surface_ = CreateOutputSurface();
2189 host_impl_->SetVisible(true); 2188 host_impl_->SetVisible(true);
2190 host_impl_->InitializeRenderer(output_surface_.get()); 2189 host_impl_->InitializeRenderer(output_surface_.get());
2191 2190
2192 SetupScrollAndContentsLayers(content_size); 2191 SetupScrollAndContentsLayers(content_size);
2193 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 4.f); 2192 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 4.f);
2194 host_impl_->SetViewportSize( 2193 host_impl_->SetViewportSize(
2195 gfx::Size(content_size.width() / 2, content_size.height() / 2)); 2194 gfx::Size(content_size.width() / 2, content_size.height() / 2));
(...skipping 3639 matching lines...) Expand 10 before | Expand all | Expand 10 after
5835 scoped_ptr<FakeOutputSurface> output_surface( 5834 scoped_ptr<FakeOutputSurface> output_surface(
5836 FakeOutputSurface::Create3d(context_provider)); 5835 FakeOutputSurface::Create3d(context_provider));
5837 FakeOutputSurface* fake_output_surface = output_surface.get(); 5836 FakeOutputSurface* fake_output_surface = output_surface.get();
5838 5837
5839 // This test creates its own LayerTreeHostImpl, so 5838 // This test creates its own LayerTreeHostImpl, so
5840 // that we can force partial swap enabled. 5839 // that we can force partial swap enabled.
5841 LayerTreeSettings settings; 5840 LayerTreeSettings settings;
5842 settings.renderer_settings.partial_swap_enabled = true; 5841 settings.renderer_settings.partial_swap_enabled = true;
5843 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl = 5842 scoped_ptr<LayerTreeHostImpl> layer_tree_host_impl =
5844 LayerTreeHostImpl::Create( 5843 LayerTreeHostImpl::Create(
5845 settings, this, &proxy_, &stats_instrumentation_, 5844 settings, this, &thread_verifier_, &stats_instrumentation_,
5846 &shared_bitmap_manager_, NULL, &task_graph_runner_, 0); 5845 &shared_bitmap_manager_, NULL, &task_graph_runner_, 0);
5847 layer_tree_host_impl->SetVisible(true); 5846 layer_tree_host_impl->SetVisible(true);
5848 layer_tree_host_impl->InitializeRenderer(output_surface.get()); 5847 layer_tree_host_impl->InitializeRenderer(output_surface.get());
5849 layer_tree_host_impl->WillBeginImplFrame( 5848 layer_tree_host_impl->WillBeginImplFrame(
5850 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); 5849 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE));
5851 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); 5850 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500));
5852 5851
5853 scoped_ptr<LayerImpl> root = 5852 scoped_ptr<LayerImpl> root =
5854 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); 5853 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1);
5855 root->SetHasRenderSurface(true); 5854 root->SetHasRenderSurface(true);
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
6111 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); 6110 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame));
6112 host_impl_->DrawLayers(&frame); 6111 host_impl_->DrawLayers(&frame);
6113 host_impl_->DidDrawAllLayers(frame); 6112 host_impl_->DidDrawAllLayers(frame);
6114 } 6113 }
6115 Mock::VerifyAndClearExpectations(&mock_context); 6114 Mock::VerifyAndClearExpectations(&mock_context);
6116 } 6115 }
6117 6116
6118 static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity( 6117 static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity(
6119 bool partial_swap, 6118 bool partial_swap,
6120 LayerTreeHostImplClient* client, 6119 LayerTreeHostImplClient* client,
6121 Proxy* proxy, 6120 ThreadVerifier* thread_verifier,
6122 SharedBitmapManager* manager, 6121 SharedBitmapManager* manager,
6123 TaskGraphRunner* task_graph_runner, 6122 TaskGraphRunner* task_graph_runner,
6124 RenderingStatsInstrumentation* stats_instrumentation, 6123 RenderingStatsInstrumentation* stats_instrumentation,
6125 OutputSurface* output_surface) { 6124 OutputSurface* output_surface) {
6126 LayerTreeSettings settings; 6125 LayerTreeSettings settings;
6127 settings.renderer_settings.partial_swap_enabled = partial_swap; 6126 settings.renderer_settings.partial_swap_enabled = partial_swap;
6128 scoped_ptr<LayerTreeHostImpl> my_host_impl = 6127 scoped_ptr<LayerTreeHostImpl> my_host_impl = LayerTreeHostImpl::Create(
6129 LayerTreeHostImpl::Create(settings, client, proxy, stats_instrumentation, 6128 settings, client, thread_verifier, stats_instrumentation, manager,
6130 manager, nullptr, task_graph_runner, 0); 6129 nullptr, task_graph_runner, 0);
6131 my_host_impl->SetVisible(true); 6130 my_host_impl->SetVisible(true);
6132 my_host_impl->InitializeRenderer(output_surface); 6131 my_host_impl->InitializeRenderer(output_surface);
6133 my_host_impl->WillBeginImplFrame( 6132 my_host_impl->WillBeginImplFrame(
6134 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); 6133 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE));
6135 my_host_impl->SetViewportSize(gfx::Size(100, 100)); 6134 my_host_impl->SetViewportSize(gfx::Size(100, 100));
6136 6135
6137 /* 6136 /*
6138 Layers are created as follows: 6137 Layers are created as follows:
6139 6138
6140 +--------------------+ 6139 +--------------------+
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
6191 6190
6192 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorPartialSwap) { 6191 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorPartialSwap) {
6193 TestSharedBitmapManager shared_bitmap_manager; 6192 TestSharedBitmapManager shared_bitmap_manager;
6194 TestTaskGraphRunner task_graph_runner; 6193 TestTaskGraphRunner task_graph_runner;
6195 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); 6194 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create());
6196 provider->BindToCurrentThread(); 6195 provider->BindToCurrentThread();
6197 provider->TestContext3d()->set_have_post_sub_buffer(true); 6196 provider->TestContext3d()->set_have_post_sub_buffer(true);
6198 scoped_ptr<OutputSurface> output_surface( 6197 scoped_ptr<OutputSurface> output_surface(
6199 FakeOutputSurface::Create3d(provider)); 6198 FakeOutputSurface::Create3d(provider));
6200 scoped_ptr<LayerTreeHostImpl> my_host_impl = SetupLayersForOpacity( 6199 scoped_ptr<LayerTreeHostImpl> my_host_impl = SetupLayersForOpacity(
6201 true, this, &proxy_, &shared_bitmap_manager, &task_graph_runner, 6200 true, this, &thread_verifier_, &shared_bitmap_manager, &task_graph_runner,
6202 &stats_instrumentation_, output_surface.get()); 6201 &stats_instrumentation_, output_surface.get());
6203 { 6202 {
6204 LayerTreeHostImpl::FrameData frame; 6203 LayerTreeHostImpl::FrameData frame;
6205 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); 6204 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame));
6206 6205
6207 // Verify all quads have been computed 6206 // Verify all quads have been computed
6208 ASSERT_EQ(2U, frame.render_passes.size()); 6207 ASSERT_EQ(2U, frame.render_passes.size());
6209 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); 6208 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size());
6210 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); 6209 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size());
6211 EXPECT_EQ(DrawQuad::SOLID_COLOR, 6210 EXPECT_EQ(DrawQuad::SOLID_COLOR,
6212 frame.render_passes[0]->quad_list.front()->material); 6211 frame.render_passes[0]->quad_list.front()->material);
6213 EXPECT_EQ(DrawQuad::RENDER_PASS, 6212 EXPECT_EQ(DrawQuad::RENDER_PASS,
6214 frame.render_passes[1]->quad_list.front()->material); 6213 frame.render_passes[1]->quad_list.front()->material);
6215 6214
6216 my_host_impl->DrawLayers(&frame); 6215 my_host_impl->DrawLayers(&frame);
6217 my_host_impl->DidDrawAllLayers(frame); 6216 my_host_impl->DidDrawAllLayers(frame);
6218 } 6217 }
6219 } 6218 }
6220 6219
6221 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorNoPartialSwap) { 6220 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorNoPartialSwap) {
6222 TestSharedBitmapManager shared_bitmap_manager; 6221 TestSharedBitmapManager shared_bitmap_manager;
6223 TestTaskGraphRunner task_graph_runner; 6222 TestTaskGraphRunner task_graph_runner;
6224 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); 6223 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create());
6225 provider->BindToCurrentThread(); 6224 provider->BindToCurrentThread();
6226 provider->TestContext3d()->set_have_post_sub_buffer(true); 6225 provider->TestContext3d()->set_have_post_sub_buffer(true);
6227 scoped_ptr<OutputSurface> output_surface( 6226 scoped_ptr<OutputSurface> output_surface(
6228 FakeOutputSurface::Create3d(provider)); 6227 FakeOutputSurface::Create3d(provider));
6229 scoped_ptr<LayerTreeHostImpl> my_host_impl = SetupLayersForOpacity( 6228 scoped_ptr<LayerTreeHostImpl> my_host_impl = SetupLayersForOpacity(
6230 false, this, &proxy_, &shared_bitmap_manager, &task_graph_runner, 6229 false, this, &thread_verifier_, &shared_bitmap_manager,
6231 &stats_instrumentation_, output_surface.get()); 6230 &task_graph_runner, &stats_instrumentation_, output_surface.get());
6232 { 6231 {
6233 LayerTreeHostImpl::FrameData frame; 6232 LayerTreeHostImpl::FrameData frame;
6234 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); 6233 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame));
6235 6234
6236 // Verify all quads have been computed 6235 // Verify all quads have been computed
6237 ASSERT_EQ(2U, frame.render_passes.size()); 6236 ASSERT_EQ(2U, frame.render_passes.size());
6238 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); 6237 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size());
6239 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); 6238 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size());
6240 EXPECT_EQ(DrawQuad::SOLID_COLOR, 6239 EXPECT_EQ(DrawQuad::SOLID_COLOR,
6241 frame.render_passes[0]->quad_list.front()->material); 6240 frame.render_passes[0]->quad_list.front()->material);
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
6637 6636
6638 EXPECT_EQ(1u, frame.will_draw_layers.size()); 6637 EXPECT_EQ(1u, frame.will_draw_layers.size());
6639 EXPECT_EQ(host_impl_->active_tree()->root_layer(), frame.will_draw_layers[0]); 6638 EXPECT_EQ(host_impl_->active_tree()->root_layer(), frame.will_draw_layers[0]);
6640 } 6639 }
6641 6640
6642 // Checks that we have a non-0 default allocation if we pass a context that 6641 // Checks that we have a non-0 default allocation if we pass a context that
6643 // doesn't support memory management extensions. 6642 // doesn't support memory management extensions.
6644 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) { 6643 TEST_F(LayerTreeHostImplTest, DefaultMemoryAllocation) {
6645 LayerTreeSettings settings; 6644 LayerTreeSettings settings;
6646 host_impl_ = LayerTreeHostImpl::Create( 6645 host_impl_ = LayerTreeHostImpl::Create(
6647 settings, this, &proxy_, &stats_instrumentation_, &shared_bitmap_manager_, 6646 settings, this, &thread_verifier_, &stats_instrumentation_,
6648 &gpu_memory_buffer_manager_, &task_graph_runner_, 0); 6647 &shared_bitmap_manager_, &gpu_memory_buffer_manager_, &task_graph_runner_,
6648 0);
6649 6649
6650 output_surface_ = 6650 output_surface_ =
6651 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); 6651 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create());
6652 host_impl_->SetVisible(true); 6652 host_impl_->SetVisible(true);
6653 host_impl_->InitializeRenderer(output_surface_.get()); 6653 host_impl_->InitializeRenderer(output_surface_.get());
6654 EXPECT_LT(0ul, host_impl_->memory_allocation_limit_bytes()); 6654 EXPECT_LT(0ul, host_impl_->memory_allocation_limit_bytes());
6655 } 6655 }
6656 6656
6657 TEST_F(LayerTreeHostImplTest, RequireHighResWhenVisible) { 6657 TEST_F(LayerTreeHostImplTest, RequireHighResWhenVisible) {
6658 ASSERT_TRUE(host_impl_->active_tree()); 6658 ASSERT_TRUE(host_impl_->active_tree());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
6701 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); 6701 EXPECT_FALSE(host_impl_->RequiresHighResToDraw());
6702 host_impl_->SetHasGpuRasterizationTrigger(true); 6702 host_impl_->SetHasGpuRasterizationTrigger(true);
6703 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded(); 6703 host_impl_->UpdateTreeResourcesForGpuRasterizationIfNeeded();
6704 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); 6704 EXPECT_TRUE(host_impl_->RequiresHighResToDraw());
6705 } 6705 }
6706 6706
6707 class LayerTreeHostImplTestPrepareTiles : public LayerTreeHostImplTest { 6707 class LayerTreeHostImplTestPrepareTiles : public LayerTreeHostImplTest {
6708 public: 6708 public:
6709 void SetUp() override { 6709 void SetUp() override {
6710 fake_host_impl_ = 6710 fake_host_impl_ =
6711 new FakeLayerTreeHostImpl(LayerTreeSettings(), &proxy_, 6711 new FakeLayerTreeHostImpl(LayerTreeSettings(), &thread_verifier_,
6712 &shared_bitmap_manager_, &task_graph_runner_); 6712 &shared_bitmap_manager_, &task_graph_runner_);
6713 host_impl_.reset(fake_host_impl_); 6713 host_impl_.reset(fake_host_impl_);
6714 output_surface_ = CreateOutputSurface(); 6714 output_surface_ = CreateOutputSurface();
6715 host_impl_->SetVisible(true); 6715 host_impl_->SetVisible(true);
6716 host_impl_->InitializeRenderer(output_surface_.get()); 6716 host_impl_->InitializeRenderer(output_surface_.get());
6717 host_impl_->SetViewportSize(gfx::Size(10, 10)); 6717 host_impl_->SetViewportSize(gfx::Size(10, 10));
6718 } 6718 }
6719 6719
6720 FakeLayerTreeHostImpl* fake_host_impl_; 6720 FakeLayerTreeHostImpl* fake_host_impl_;
6721 }; 6721 };
(...skipping 2046 matching lines...) Expand 10 before | Expand all | Expand 10 after
8768 host_impl_->ActivateSyncTree(); 8768 host_impl_->ActivateSyncTree();
8769 host_impl_->active_tree()->UpdateDrawProperties(false); 8769 host_impl_->active_tree()->UpdateDrawProperties(false);
8770 active_tree_node = 8770 active_tree_node =
8771 host_impl_->active_tree()->property_trees()->transform_tree.Node( 8771 host_impl_->active_tree()->property_trees()->transform_tree.Node(
8772 page_scale_layer->transform_tree_index()); 8772 page_scale_layer->transform_tree_index());
8773 EXPECT_EQ(active_tree_node->data.post_local_scale_factor, 2.f); 8773 EXPECT_EQ(active_tree_node->data.post_local_scale_factor, 2.f);
8774 } 8774 }
8775 8775
8776 } // namespace 8776 } // namespace
8777 } // namespace cc 8777 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698