fake_picture_layer_impl.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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 void SetNeedsPostCommitInitialization() { 52 needs_post_commit_initialization_ = true; 53 } 54 55 bool needs_post_commit_initialization() const { 56 return needs_post_commit_initialization_; 57 } 58 59 bool is_using_lcd_text() const { return is_using_lcd_text_; } 60 void force_set_lcd_text(bool enabled) { is_using_lcd_text_ = enabled; } 61 62 PictureLayerTiling* HighResTiling() const; 63 PictureLayerTiling* LowResTiling() const; 64 size_t num_tilings() const { return tilings_->num_tilings(); } 65 66 PictureLayerImpl* twin_layer() { return twin_layer_; } 67 void set_twin_layer(PictureLayerImpl* twin) { twin_layer_ = twin; } 68 PictureLayerTilingSet* tilings() { return tilings_.get(); } 69 PicturePileImpl* pile() { return pile_.get(); } 70 size_t append_quads_count() { return append_quads_count_; } 71 72 const Region& invalidation() const { return invalidation_; } 73 void set_invalidation(const Region& region) { invalidation_ = region; } 74 75 gfx::Rect visible_rect_for_tile_priority() { 76 return visible_rect_for_tile_priority_; 77 } 78 gfx::Size viewport_size_for_tile_priority() { 79 return viewport_size_for_tile_priority_; 80 } 81 gfx::Transform screen_space_transform_for_tile_priority() { 82 return screen_space_transform_for_tile_priority_; 83 } 84 85 void set_fixed_tile_size(const gfx::Size& size) { fixed_tile_size_ = size; } 86 87 void CreateDefaultTilingsAndTiles(); 88 void SetAllTilesVisible(); 89 void SetAllTilesReady(); 90 void SetAllTilesReadyInTiling(PictureLayerTiling* tiling); 91 void ResetAllTilesPriorities(); 92 93 protected: 94 FakePictureLayerImpl( 95 LayerTreeImpl* tree_impl, 96 int id, 97 scoped_refptr<PicturePileImpl> pile); 98 FakePictureLayerImpl(LayerTreeImpl* tree_impl, 99 int id, 100 scoped_refptr<PicturePileImpl> pile, 101 const gfx::Size& layer_bounds); 102 FakePictureLayerImpl(LayerTreeImpl* tree_impl, int id); 103 104 private: 105 gfx::Size fixed_tile_size_; 106 107 size_t append_quads_count_; 108}; 109 110} // namespace cc 111 112#endif // CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_ 113