OLD | NEW |
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/layers/tiled_layer_impl.h" | 5 #include "cc/layers/tiled_layer_impl.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "base/trace_event/trace_event_argument.h" | 9 #include "base/trace_event/trace_event_argument.h" |
10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "ui/gfx/geometry/quad_f.h" | 22 #include "ui/gfx/geometry/quad_f.h" |
23 | 23 |
24 namespace cc { | 24 namespace cc { |
25 | 25 |
26 class DrawableTile : public LayerTilingData::Tile { | 26 class DrawableTile : public LayerTilingData::Tile { |
27 public: | 27 public: |
28 static scoped_ptr<DrawableTile> Create() { | 28 static scoped_ptr<DrawableTile> Create() { |
29 return make_scoped_ptr(new DrawableTile()); | 29 return make_scoped_ptr(new DrawableTile()); |
30 } | 30 } |
31 | 31 |
32 ResourceProvider::ResourceId resource_id() const { return resource_id_; } | 32 ResourceId resource_id() const { return resource_id_; } |
33 void set_resource_id(ResourceProvider::ResourceId resource_id) { | 33 void set_resource_id(ResourceId resource_id) { resource_id_ = resource_id; } |
34 resource_id_ = resource_id; | |
35 } | |
36 bool contents_swizzled() { return contents_swizzled_; } | 34 bool contents_swizzled() { return contents_swizzled_; } |
37 void set_contents_swizzled(bool contents_swizzled) { | 35 void set_contents_swizzled(bool contents_swizzled) { |
38 contents_swizzled_ = contents_swizzled; | 36 contents_swizzled_ = contents_swizzled; |
39 } | 37 } |
40 | 38 |
41 private: | 39 private: |
42 DrawableTile() : resource_id_(0), contents_swizzled_(false) {} | 40 DrawableTile() : resource_id_(0), contents_swizzled_(false) {} |
43 | 41 |
44 ResourceProvider::ResourceId resource_id_; | 42 ResourceId resource_id_; |
45 bool contents_swizzled_; | 43 bool contents_swizzled_; |
46 | 44 |
47 DISALLOW_COPY_AND_ASSIGN(DrawableTile); | 45 DISALLOW_COPY_AND_ASSIGN(DrawableTile); |
48 }; | 46 }; |
49 | 47 |
50 TiledLayerImpl::TiledLayerImpl(LayerTreeImpl* tree_impl, int id) | 48 TiledLayerImpl::TiledLayerImpl(LayerTreeImpl* tree_impl, int id) |
51 : TiledLayerImpl(tree_impl, id, new LayerImpl::SyncedScrollOffset) { | 49 : TiledLayerImpl(tree_impl, id, new LayerImpl::SyncedScrollOffset) { |
52 } | 50 } |
53 | 51 |
54 TiledLayerImpl::TiledLayerImpl( | 52 TiledLayerImpl::TiledLayerImpl( |
55 LayerTreeImpl* tree_impl, | 53 LayerTreeImpl* tree_impl, |
56 int id, | 54 int id, |
57 scoped_refptr<LayerImpl::SyncedScrollOffset> synced_scroll_offset) | 55 scoped_refptr<LayerImpl::SyncedScrollOffset> synced_scroll_offset) |
58 : LayerImpl(tree_impl, id, synced_scroll_offset), skips_draw_(true) { | 56 : LayerImpl(tree_impl, id, synced_scroll_offset), skips_draw_(true) { |
59 } | 57 } |
60 | 58 |
61 TiledLayerImpl::~TiledLayerImpl() { | 59 TiledLayerImpl::~TiledLayerImpl() { |
62 } | 60 } |
63 | 61 |
64 void TiledLayerImpl::GetContentsResourceId( | 62 void TiledLayerImpl::GetContentsResourceId(ResourceId* resource_id, |
65 ResourceProvider::ResourceId* resource_id, | 63 gfx::Size* resource_size) const { |
66 gfx::Size* resource_size) const { | |
67 // This function is only valid for single texture layers, e.g. masks. | 64 // This function is only valid for single texture layers, e.g. masks. |
68 DCHECK(tiler_); | 65 DCHECK(tiler_); |
69 // It's possible the mask layer is created but has no size or otherwise | 66 // It's possible the mask layer is created but has no size or otherwise |
70 // can't draw. | 67 // can't draw. |
71 if (tiler_->num_tiles_x() == 0 || tiler_->num_tiles_y() == 0) { | 68 if (tiler_->num_tiles_x() == 0 || tiler_->num_tiles_y() == 0) { |
72 *resource_id = 0; | 69 *resource_id = 0; |
73 return; | 70 return; |
74 } | 71 } |
75 | 72 |
76 // Any other number of tiles other than 0 or 1 is incorrect for masks. | 73 // Any other number of tiles other than 0 or 1 is incorrect for masks. |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 tiler_->reset(); | 277 tiler_->reset(); |
281 } else { | 278 } else { |
282 tiler_ = LayerTilingData::Create(tiler.tile_size(), | 279 tiler_ = LayerTilingData::Create(tiler.tile_size(), |
283 tiler.has_border_texels() | 280 tiler.has_border_texels() |
284 ? LayerTilingData::HAS_BORDER_TEXELS | 281 ? LayerTilingData::HAS_BORDER_TEXELS |
285 : LayerTilingData::NO_BORDER_TEXELS); | 282 : LayerTilingData::NO_BORDER_TEXELS); |
286 } | 283 } |
287 *tiler_ = tiler; | 284 *tiler_ = tiler; |
288 } | 285 } |
289 | 286 |
290 void TiledLayerImpl::PushTileProperties( | 287 void TiledLayerImpl::PushTileProperties(int i, |
291 int i, | 288 int j, |
292 int j, | 289 ResourceId resource_id, |
293 ResourceProvider::ResourceId resource_id, | 290 bool contents_swizzled) { |
294 bool contents_swizzled) { | |
295 DrawableTile* tile = TileAt(i, j); | 291 DrawableTile* tile = TileAt(i, j); |
296 if (!tile) | 292 if (!tile) |
297 tile = CreateTile(i, j); | 293 tile = CreateTile(i, j); |
298 tile->set_resource_id(resource_id); | 294 tile->set_resource_id(resource_id); |
299 tile->set_contents_swizzled(contents_swizzled); | 295 tile->set_contents_swizzled(contents_swizzled); |
300 } | 296 } |
301 | 297 |
302 void TiledLayerImpl::PushInvalidTile(int i, int j) { | 298 void TiledLayerImpl::PushInvalidTile(int i, int j) { |
303 DrawableTile* tile = TileAt(i, j); | 299 DrawableTile* tile = TileAt(i, j); |
304 if (!tile) | 300 if (!tile) |
(...skipping 10 matching lines...) Expand all Loading... |
315 | 311 |
316 void TiledLayerImpl::ReleaseResources() { | 312 void TiledLayerImpl::ReleaseResources() { |
317 tiler_->reset(); | 313 tiler_->reset(); |
318 } | 314 } |
319 | 315 |
320 const char* TiledLayerImpl::LayerTypeAsString() const { | 316 const char* TiledLayerImpl::LayerTypeAsString() const { |
321 return "cc::TiledLayerImpl"; | 317 return "cc::TiledLayerImpl"; |
322 } | 318 } |
323 | 319 |
324 } // namespace cc | 320 } // namespace cc |
OLD | NEW |