fake_picture_layer_impl.h revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_ 6#define CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "cc/layers/picture_layer_impl.h" 10 11namespace cc { 12 13class FakePictureLayerImpl : public PictureLayerImpl { 14 public: 15 static scoped_ptr<FakePictureLayerImpl> Create( 16 LayerTreeImpl* tree_impl, int id) { 17 return make_scoped_ptr(new FakePictureLayerImpl(tree_impl, id)); 18 } 19 20 // Create layer from a pile that covers the entire layer. 21 static scoped_ptr<FakePictureLayerImpl> CreateWithPile( 22 LayerTreeImpl* tree_impl, int id, scoped_refptr<PicturePileImpl> pile) { 23 return make_scoped_ptr(new FakePictureLayerImpl(tree_impl, id, pile)); 24 } 25 26 // Create layer from a pile that only covers part of the layer. 27 static scoped_ptr<FakePictureLayerImpl> CreateWithPartialPile( 28 LayerTreeImpl* tree_impl, 29 int id, 30 scoped_refptr<PicturePileImpl> pile, 31 const gfx::Size& layer_bounds) { 32 return make_scoped_ptr( 33 new FakePictureLayerImpl(tree_impl, id, pile, layer_bounds)); 34 } 35 36 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) 37 OVERRIDE; 38 virtual void AppendQuads(QuadSink* quad_sink, 39 AppendQuadsData* append_quads_data) OVERRIDE; 40 virtual gfx::Size CalculateTileSize( 41 const gfx::Size& content_bounds) const OVERRIDE; 42 43 using PictureLayerImpl::AddTiling; 44 using PictureLayerImpl::CleanUpTilingsOnActiveLayer; 45 using PictureLayerImpl::CanHaveTilings; 46 using PictureLayerImpl::MarkVisibleResourcesAsRequired; 47 using PictureLayerImpl::DoPostCommitInitializationIfNeeded; 48 using PictureLayerImpl::MinimumContentsScale; 49 using PictureLayerImpl::SanityCheckTilingState; 50 51 using PictureLayerImpl::UpdateIdealScales; 52 using PictureLayerImpl::MaximumTilingContentsScale; 53 using PictureLayerImpl::ManageTilings; 54 55 void SetNeedsPostCommitInitialization() { 56 needs_post_commit_initialization_ = true; 57 } 58 59 bool needs_post_commit_initialization() const { 60 return needs_post_commit_initialization_; 61 } 62 63 float raster_page_scale() const { return raster_page_scale_; } 64 void set_raster_page_scale(float scale) { raster_page_scale_ = scale; } 65 66 PictureLayerTiling* HighResTiling() const; 67 PictureLayerTiling* LowResTiling() const; 68 size_t num_tilings() const { return tilings_->num_tilings(); } 69 70 PictureLayerImpl* twin_layer() { return twin_layer_; } 71 void set_twin_layer(PictureLayerImpl* twin) { twin_layer_ = twin; } 72 PictureLayerTilingSet* tilings() { return tilings_.get(); } 73 PicturePileImpl* pile() { return pile_.get(); } 74 size_t append_quads_count() { return append_quads_count_; } 75 76 const Region& invalidation() const { return invalidation_; } 77 void set_invalidation(const Region& region) { invalidation_ = region; } 78 79 gfx::Rect visible_rect_for_tile_priority() { 80 return visible_rect_for_tile_priority_; 81 } 82 gfx::Size viewport_size_for_tile_priority() { 83 return viewport_size_for_tile_priority_; 84 } 85 gfx::Transform screen_space_transform_for_tile_priority() { 86 return screen_space_transform_for_tile_priority_; 87 } 88 89 void set_fixed_tile_size(const gfx::Size& size) { fixed_tile_size_ = size; } 90 91 void CreateDefaultTilingsAndTiles(); 92 void SetAllTilesVisible(); 93 void SetAllTilesReady(); 94 void SetAllTilesReadyInTiling(PictureLayerTiling* tiling); 95 void ResetAllTilesPriorities(); 96 97 void ScaleAndManageTilings(bool animating_transform_to_screen, 98 float maximum_animation_contents_scale) { 99 UpdateIdealScales(); 100 if (CanHaveTilings()) { 101 ManageTilings(animating_transform_to_screen, 102 maximum_animation_contents_scale); 103 } 104 } 105 106 protected: 107 FakePictureLayerImpl( 108 LayerTreeImpl* tree_impl, 109 int id, 110 scoped_refptr<PicturePileImpl> pile); 111 FakePictureLayerImpl(LayerTreeImpl* tree_impl, 112 int id, 113 scoped_refptr<PicturePileImpl> pile, 114 const gfx::Size& layer_bounds); 115 FakePictureLayerImpl(LayerTreeImpl* tree_impl, int id); 116 117 private: 118 gfx::Size fixed_tile_size_; 119 120 size_t append_quads_count_; 121}; 122 123} // namespace cc 124 125#endif // CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_ 126