[MacViews] Frameless app windows: make content view cover title bar.
[chromium-blink-merge.git] / cc / test / fake_picture_layer_impl.h
blobca29b9bef79d730a5f34e4bfbb534b5e285c4992
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.
5 #ifndef CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_
6 #define CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "cc/layers/picture_layer_impl.h"
11 namespace cc {
13 class FakePictureLayerImpl : public PictureLayerImpl {
14 public:
15 static scoped_ptr<FakePictureLayerImpl> Create(
16 LayerTreeImpl* tree_impl, int id) {
17 bool is_mask = false;
18 return make_scoped_ptr(new FakePictureLayerImpl(tree_impl, id, is_mask));
21 // Create layer from a raster source that covers the entire layer.
22 static scoped_ptr<FakePictureLayerImpl> CreateWithRasterSource(
23 LayerTreeImpl* tree_impl,
24 int id,
25 scoped_refptr<RasterSource> raster_source) {
26 bool is_mask = false;
27 return make_scoped_ptr(
28 new FakePictureLayerImpl(tree_impl, id, raster_source, is_mask));
31 // Create layer from a raster source that only covers part of the layer.
32 static scoped_ptr<FakePictureLayerImpl> CreateWithPartialRasterSource(
33 LayerTreeImpl* tree_impl,
34 int id,
35 scoped_refptr<RasterSource> raster_source,
36 const gfx::Size& layer_bounds) {
37 bool is_mask = false;
38 return make_scoped_ptr(new FakePictureLayerImpl(
39 tree_impl, id, raster_source, is_mask, layer_bounds));
42 // Create layer from a raster source that covers the entire layer and is a
43 // mask.
44 static scoped_ptr<FakePictureLayerImpl> CreateMaskWithRasterSource(
45 LayerTreeImpl* tree_impl,
46 int id,
47 scoped_refptr<RasterSource> raster_source) {
48 bool is_mask = true;
49 return make_scoped_ptr(
50 new FakePictureLayerImpl(tree_impl, id, raster_source, is_mask));
53 scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override;
54 void PushPropertiesTo(LayerImpl* layer_impl) override;
55 void AppendQuads(RenderPass* render_pass,
56 AppendQuadsData* append_quads_data) override;
57 gfx::Size CalculateTileSize(const gfx::Size& content_bounds) const override;
59 void DidBecomeActive() override;
60 size_t did_become_active_call_count() {
61 return did_become_active_call_count_;
64 bool HasValidTilePriorities() const override;
65 void set_has_valid_tile_priorities(bool has_valid_priorities) {
66 has_valid_tile_priorities_ = has_valid_priorities;
67 use_set_valid_tile_priorities_flag_ = true;
70 size_t CountTilesRequired(
71 TileRequirementCheck is_tile_required_callback) const;
72 size_t CountTilesRequiredForActivation() const;
73 size_t CountTilesRequiredForDraw() const;
75 using PictureLayerImpl::AddTiling;
76 using PictureLayerImpl::CleanUpTilingsOnActiveLayer;
77 using PictureLayerImpl::CanHaveTilings;
78 using PictureLayerImpl::MinimumContentsScale;
79 using PictureLayerImpl::SanityCheckTilingState;
80 using PictureLayerImpl::GetRecycledTwinLayer;
81 using PictureLayerImpl::UpdateRasterSource;
83 using PictureLayerImpl::UpdateIdealScales;
84 using PictureLayerImpl::MaximumTilingContentsScale;
86 void AddTilingUntilNextDraw(float scale) {
87 last_append_quads_tilings_.push_back(AddTiling(scale));
90 float raster_page_scale() const { return raster_page_scale_; }
91 void set_raster_page_scale(float scale) { raster_page_scale_ = scale; }
93 float ideal_contents_scale() const { return ideal_contents_scale_; }
94 float raster_contents_scale() const { return raster_contents_scale_; }
96 PictureLayerTiling* HighResTiling() const;
97 PictureLayerTiling* LowResTiling() const;
98 size_t num_tilings() const { return tilings_->num_tilings(); }
100 PictureLayerTilingSet* tilings() { return tilings_.get(); }
101 RasterSource* raster_source() { return raster_source_.get(); }
102 void SetRasterSourceOnPending(scoped_refptr<RasterSource> raster_source,
103 const Region& invalidation);
104 size_t append_quads_count() { return append_quads_count_; }
106 const Region& invalidation() const { return invalidation_; }
107 void set_invalidation(const Region& region) { invalidation_ = region; }
109 gfx::Rect visible_rect_for_tile_priority() {
110 return visible_rect_for_tile_priority_;
113 gfx::Rect viewport_rect_for_tile_priority_in_content_space() {
114 return viewport_rect_for_tile_priority_in_content_space_;
117 void set_fixed_tile_size(const gfx::Size& size) { fixed_tile_size_ = size; }
119 void SetIsDrawnRenderSurfaceLayerListMember(bool is);
121 void CreateAllTiles();
122 void SetAllTilesVisible();
123 void SetAllTilesReady();
124 void SetAllTilesReadyInTiling(PictureLayerTiling* tiling);
125 void SetTileReady(Tile* tile);
126 void ResetAllTilesPriorities();
127 PictureLayerTilingSet* GetTilings() { return tilings_.get(); }
129 // Add the given tiling as a "used" tiling during AppendQuads. This ensures
130 // that future calls to UpdateTiles don't delete the tiling.
131 void MarkAllTilingsUsed() {
132 last_append_quads_tilings_.clear();
133 for (size_t i = 0; i < tilings_->num_tilings(); ++i)
134 last_append_quads_tilings_.push_back(tilings_->tiling_at(i));
137 size_t release_resources_count() const { return release_resources_count_; }
138 void reset_release_resources_count() { release_resources_count_ = 0; }
140 void ReleaseResources() override;
142 bool only_used_low_res_last_append_quads() const {
143 return only_used_low_res_last_append_quads_;
146 protected:
147 FakePictureLayerImpl(LayerTreeImpl* tree_impl,
148 int id,
149 scoped_refptr<RasterSource> raster_source,
150 bool is_mask);
151 FakePictureLayerImpl(LayerTreeImpl* tree_impl,
152 int id,
153 scoped_refptr<RasterSource> raster_source,
154 bool is_mask,
155 const gfx::Size& layer_bounds);
156 FakePictureLayerImpl(LayerTreeImpl* tree_impl, int id, bool is_mask);
157 FakePictureLayerImpl(
158 LayerTreeImpl* tree_impl,
159 int id,
160 bool is_mask,
161 scoped_refptr<LayerImpl::SyncedScrollOffset> synced_scroll_offset);
163 private:
164 gfx::Size fixed_tile_size_;
166 size_t append_quads_count_;
167 size_t did_become_active_call_count_;
168 bool has_valid_tile_priorities_;
169 bool use_set_valid_tile_priorities_flag_;
170 size_t release_resources_count_;
173 } // namespace cc
175 #endif // CC_TEST_FAKE_PICTURE_LAYER_IMPL_H_