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

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

Issue 308193003: Removed QuadSink and MockQuadCuller (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@plumLayerImpl
Patch Set: rebase Created 6 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
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 <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/containers/hash_tables.h" 11 #include "base/containers/hash_tables.h"
12 #include "base/containers/scoped_ptr_hash_map.h" 12 #include "base/containers/scoped_ptr_hash_map.h"
13 #include "cc/animation/scrollbar_animation_controller_thinning.h" 13 #include "cc/animation/scrollbar_animation_controller_thinning.h"
14 #include "cc/base/latency_info_swap_promise.h" 14 #include "cc/base/latency_info_swap_promise.h"
15 #include "cc/base/math_util.h" 15 #include "cc/base/math_util.h"
16 #include "cc/input/top_controls_manager.h" 16 #include "cc/input/top_controls_manager.h"
17 #include "cc/layers/append_quads_data.h" 17 #include "cc/layers/append_quads_data.h"
18 #include "cc/layers/delegated_renderer_layer_impl.h" 18 #include "cc/layers/delegated_renderer_layer_impl.h"
19 #include "cc/layers/heads_up_display_layer_impl.h" 19 #include "cc/layers/heads_up_display_layer_impl.h"
20 #include "cc/layers/io_surface_layer_impl.h" 20 #include "cc/layers/io_surface_layer_impl.h"
21 #include "cc/layers/layer_impl.h" 21 #include "cc/layers/layer_impl.h"
22 #include "cc/layers/painted_scrollbar_layer_impl.h" 22 #include "cc/layers/painted_scrollbar_layer_impl.h"
23 #include "cc/layers/quad_sink.h"
24 #include "cc/layers/render_surface_impl.h" 23 #include "cc/layers/render_surface_impl.h"
25 #include "cc/layers/solid_color_layer_impl.h" 24 #include "cc/layers/solid_color_layer_impl.h"
26 #include "cc/layers/solid_color_scrollbar_layer_impl.h" 25 #include "cc/layers/solid_color_scrollbar_layer_impl.h"
27 #include "cc/layers/texture_layer_impl.h" 26 #include "cc/layers/texture_layer_impl.h"
28 #include "cc/layers/tiled_layer_impl.h" 27 #include "cc/layers/tiled_layer_impl.h"
29 #include "cc/layers/video_layer_impl.h" 28 #include "cc/layers/video_layer_impl.h"
30 #include "cc/output/begin_frame_args.h" 29 #include "cc/output/begin_frame_args.h"
31 #include "cc/output/compositor_frame_ack.h" 30 #include "cc/output/compositor_frame_ack.h"
32 #include "cc/output/compositor_frame_metadata.h" 31 #include "cc/output/compositor_frame_metadata.h"
33 #include "cc/output/copy_output_request.h" 32 #include "cc/output/copy_output_request.h"
(...skipping 1613 matching lines...) Expand 10 before | Expand all | Expand 10 after
1647 } 1646 }
1648 1647
1649 virtual bool WillDraw(DrawMode draw_mode, ResourceProvider* provider) 1648 virtual bool WillDraw(DrawMode draw_mode, ResourceProvider* provider)
1650 OVERRIDE { 1649 OVERRIDE {
1651 will_draw_called_ = true; 1650 will_draw_called_ = true;
1652 if (will_draw_returns_false_) 1651 if (will_draw_returns_false_)
1653 return false; 1652 return false;
1654 return LayerImpl::WillDraw(draw_mode, provider); 1653 return LayerImpl::WillDraw(draw_mode, provider);
1655 } 1654 }
1656 1655
1657 virtual void AppendQuads(QuadSink* quad_sink, 1656 virtual void AppendQuads(RenderPass* render_pass,
1657 const OcclusionTracker<LayerImpl>& occlusion_tracker,
1658 AppendQuadsData* append_quads_data) OVERRIDE { 1658 AppendQuadsData* append_quads_data) OVERRIDE {
1659 append_quads_called_ = true; 1659 append_quads_called_ = true;
1660 LayerImpl::AppendQuads(quad_sink, append_quads_data); 1660 LayerImpl::AppendQuads(render_pass, occlusion_tracker, append_quads_data);
1661 } 1661 }
1662 1662
1663 virtual void DidDraw(ResourceProvider* provider) OVERRIDE { 1663 virtual void DidDraw(ResourceProvider* provider) OVERRIDE {
1664 did_draw_called_ = true; 1664 did_draw_called_ = true;
1665 LayerImpl::DidDraw(provider); 1665 LayerImpl::DidDraw(provider);
1666 } 1666 }
1667 1667
1668 bool will_draw_called() const { return will_draw_called_; } 1668 bool will_draw_called() const { return will_draw_called_; }
1669 bool append_quads_called() const { return append_quads_called_; } 1669 bool append_quads_called() const { return append_quads_called_; }
1670 bool did_draw_called() const { return did_draw_called_; } 1670 bool did_draw_called() const { return did_draw_called_; }
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1868 ResourceProvider* resource_provider) { 1868 ResourceProvider* resource_provider) {
1869 return scoped_ptr<LayerImpl>( 1869 return scoped_ptr<LayerImpl>(
1870 new MissingTextureAnimatingLayer(tree_impl, 1870 new MissingTextureAnimatingLayer(tree_impl,
1871 id, 1871 id,
1872 tile_missing, 1872 tile_missing,
1873 had_incomplete_tile, 1873 had_incomplete_tile,
1874 animating, 1874 animating,
1875 resource_provider)); 1875 resource_provider));
1876 } 1876 }
1877 1877
1878 virtual void AppendQuads(QuadSink* quad_sink, 1878 virtual void AppendQuads(RenderPass* render_pass,
1879 const OcclusionTracker<LayerImpl>& occlusion_tracker,
1879 AppendQuadsData* append_quads_data) OVERRIDE { 1880 AppendQuadsData* append_quads_data) OVERRIDE {
1880 LayerImpl::AppendQuads(quad_sink, append_quads_data); 1881 LayerImpl::AppendQuads(render_pass, occlusion_tracker, append_quads_data);
1881 if (had_incomplete_tile_) 1882 if (had_incomplete_tile_)
1882 append_quads_data->had_incomplete_tile = true; 1883 append_quads_data->had_incomplete_tile = true;
1883 if (tile_missing_) 1884 if (tile_missing_)
1884 append_quads_data->num_missing_tiles++; 1885 append_quads_data->num_missing_tiles++;
1885 } 1886 }
1886 1887
1887 private: 1888 private:
1888 MissingTextureAnimatingLayer(LayerTreeImpl* tree_impl, 1889 MissingTextureAnimatingLayer(LayerTreeImpl* tree_impl,
1889 int id, 1890 int id,
1890 bool tile_missing, 1891 bool tile_missing,
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after
3475 class BlendStateCheckLayer : public LayerImpl { 3476 class BlendStateCheckLayer : public LayerImpl {
3476 public: 3477 public:
3477 static scoped_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl, 3478 static scoped_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl,
3478 int id, 3479 int id,
3479 ResourceProvider* resource_provider) { 3480 ResourceProvider* resource_provider) {
3480 return scoped_ptr<LayerImpl>(new BlendStateCheckLayer(tree_impl, 3481 return scoped_ptr<LayerImpl>(new BlendStateCheckLayer(tree_impl,
3481 id, 3482 id,
3482 resource_provider)); 3483 resource_provider));
3483 } 3484 }
3484 3485
3485 virtual void AppendQuads(QuadSink* quad_sink, 3486 virtual void AppendQuads(RenderPass* render_pass,
3487 const OcclusionTracker<LayerImpl>& occlusion_tracker,
3486 AppendQuadsData* append_quads_data) OVERRIDE { 3488 AppendQuadsData* append_quads_data) OVERRIDE {
3487 quads_appended_ = true; 3489 quads_appended_ = true;
3488 3490
3489 gfx::Rect opaque_rect; 3491 gfx::Rect opaque_rect;
3490 if (contents_opaque()) 3492 if (contents_opaque())
3491 opaque_rect = quad_rect_; 3493 opaque_rect = quad_rect_;
3492 else 3494 else
3493 opaque_rect = opaque_content_rect_; 3495 opaque_rect = opaque_content_rect_;
3494 gfx::Rect visible_quad_rect = quad_rect_; 3496 gfx::Rect visible_quad_rect = quad_rect_;
3495 3497
3496 SharedQuadState* shared_quad_state = quad_sink->CreateSharedQuadState(); 3498 SharedQuadState* shared_quad_state =
3499 render_pass->CreateAndAppendSharedQuadState();
3497 PopulateSharedQuadState(shared_quad_state); 3500 PopulateSharedQuadState(shared_quad_state);
3498 3501
3499 scoped_ptr<TileDrawQuad> test_blending_draw_quad = TileDrawQuad::Create(); 3502 scoped_ptr<TileDrawQuad> test_blending_draw_quad = TileDrawQuad::Create();
3500 test_blending_draw_quad->SetNew(shared_quad_state, 3503 test_blending_draw_quad->SetNew(shared_quad_state,
3501 quad_rect_, 3504 quad_rect_,
3502 opaque_rect, 3505 opaque_rect,
3503 visible_quad_rect, 3506 visible_quad_rect,
3504 resource_id_, 3507 resource_id_,
3505 gfx::RectF(0.f, 0.f, 1.f, 1.f), 3508 gfx::RectF(0.f, 0.f, 1.f, 1.f),
3506 gfx::Size(1, 1), 3509 gfx::Size(1, 1),
3507 false); 3510 false);
3508 test_blending_draw_quad->visible_rect = quad_visible_rect_; 3511 test_blending_draw_quad->visible_rect = quad_visible_rect_;
3509 EXPECT_EQ(blend_, test_blending_draw_quad->ShouldDrawWithBlending()); 3512 EXPECT_EQ(blend_, test_blending_draw_quad->ShouldDrawWithBlending());
3510 EXPECT_EQ(has_render_surface_, !!render_surface()); 3513 EXPECT_EQ(has_render_surface_, !!render_surface());
3511 quad_sink->Append(test_blending_draw_quad.PassAs<DrawQuad>()); 3514 render_pass->AppendDrawQuad(test_blending_draw_quad.PassAs<DrawQuad>());
3512 } 3515 }
3513 3516
3514 void SetExpectation(bool blend, bool has_render_surface) { 3517 void SetExpectation(bool blend, bool has_render_surface) {
3515 blend_ = blend; 3518 blend_ = blend;
3516 has_render_surface_ = has_render_surface; 3519 has_render_surface_ = has_render_surface;
3517 quads_appended_ = false; 3520 quads_appended_ = false;
3518 } 3521 }
3519 3522
3520 bool quads_appended() const { return quads_appended_; } 3523 bool quads_appended() const { return quads_appended_; }
3521 3524
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
4233 EXPECT_EQ(1u, frame.render_passes.size()); 4236 EXPECT_EQ(1u, frame.render_passes.size());
4234 host_impl_->DidDrawAllLayers(frame); 4237 host_impl_->DidDrawAllLayers(frame);
4235 } 4238 }
4236 4239
4237 class FakeLayerWithQuads : public LayerImpl { 4240 class FakeLayerWithQuads : public LayerImpl {
4238 public: 4241 public:
4239 static scoped_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl, int id) { 4242 static scoped_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl, int id) {
4240 return scoped_ptr<LayerImpl>(new FakeLayerWithQuads(tree_impl, id)); 4243 return scoped_ptr<LayerImpl>(new FakeLayerWithQuads(tree_impl, id));
4241 } 4244 }
4242 4245
4243 virtual void AppendQuads(QuadSink* quad_sink, 4246 virtual void AppendQuads(RenderPass* render_pass,
4247 const OcclusionTracker<LayerImpl>& occlusion_tracker,
4244 AppendQuadsData* append_quads_data) OVERRIDE { 4248 AppendQuadsData* append_quads_data) OVERRIDE {
4245 SharedQuadState* shared_quad_state = quad_sink->CreateSharedQuadState(); 4249 SharedQuadState* shared_quad_state =
4250 render_pass->CreateAndAppendSharedQuadState();
4246 PopulateSharedQuadState(shared_quad_state); 4251 PopulateSharedQuadState(shared_quad_state);
4247 4252
4248 SkColor gray = SkColorSetRGB(100, 100, 100); 4253 SkColor gray = SkColorSetRGB(100, 100, 100);
4249 gfx::Rect quad_rect(content_bounds()); 4254 gfx::Rect quad_rect(content_bounds());
4250 gfx::Rect visible_quad_rect(quad_rect); 4255 gfx::Rect visible_quad_rect(quad_rect);
4251 scoped_ptr<SolidColorDrawQuad> my_quad = SolidColorDrawQuad::Create(); 4256 scoped_ptr<SolidColorDrawQuad> my_quad = SolidColorDrawQuad::Create();
4252 my_quad->SetNew( 4257 my_quad->SetNew(
4253 shared_quad_state, quad_rect, visible_quad_rect, gray, false); 4258 shared_quad_state, quad_rect, visible_quad_rect, gray, false);
4254 quad_sink->Append(my_quad.PassAs<DrawQuad>()); 4259 render_pass->AppendDrawQuad(my_quad.PassAs<DrawQuad>());
4255 } 4260 }
4256 4261
4257 private: 4262 private:
4258 FakeLayerWithQuads(LayerTreeImpl* tree_impl, int id) 4263 FakeLayerWithQuads(LayerTreeImpl* tree_impl, int id)
4259 : LayerImpl(tree_impl, id) {} 4264 : LayerImpl(tree_impl, id) {}
4260 }; 4265 };
4261 4266
4262 class MockContext : public TestWebGraphicsContext3D { 4267 class MockContext : public TestWebGraphicsContext3D {
4263 public: 4268 public:
4264 MOCK_METHOD1(useProgram, void(GLuint program)); 4269 MOCK_METHOD1(useProgram, void(GLuint program));
(...skipping 2303 matching lines...) Expand 10 before | Expand all | Expand 10 after
6568 // Verify implicit limits are calculated correctly with no overflows 6573 // Verify implicit limits are calculated correctly with no overflows
6569 host_impl_->SetMemoryPolicy(mem_policy); 6574 host_impl_->SetMemoryPolicy(mem_policy);
6570 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes, 6575 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes,
6571 300u * 1024u * 1024u); 6576 300u * 1024u * 1024u);
6572 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, 6577 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes,
6573 150u * 1024u * 1024u); 6578 150u * 1024u * 1024u);
6574 } 6579 }
6575 6580
6576 } // namespace 6581 } // namespace
6577 } // namespace cc 6582 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_pixeltest_on_demand_raster.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698