Chromium Code Reviews| Index: cc/tiling_data.h |
| diff --git a/cc/tiling_data.h b/cc/tiling_data.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6d052c0c944ea66a6222dc080e5de84857e7e942 |
| --- /dev/null |
| +++ b/cc/tiling_data.h |
| @@ -0,0 +1,71 @@ |
| +// Copyright 2010 The Chromium Authors. All rights reserved. |
|
tfarina
2012/11/02 00:19:07
2010 -> 2012?
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CC_TILING_DATA_H_ |
| +#define CC_TILING_DATA_H_ |
| + |
| +#include "base/basictypes.h" |
| +#include "base/logging.h" |
| +#include "ui/gfx/size.h" |
| + |
| +namespace gfx { |
| +class Rect; |
| +class Vector2d; |
| +} |
| + |
| +namespace cc { |
| + |
| +class TilingData { |
| + public: |
| + TilingData(gfx::Size max_texture_size, gfx::Size total_size, bool has_border_texels); |
| + ~TilingData(); |
| + |
| + gfx::Size total_size() const { return total_size_; } |
|
tfarina
2012/11/02 00:18:46
const-ref as well.
danakj
2012/11/02 00:28:03
no const ref for <= 4 ints :)
|
| + void SetTotalSize(const gfx::Size total_size); |
|
tfarina
2012/11/02 00:18:46
const-ref!
|
| + |
| + gfx::Size max_texture_size() const { return max_texture_size_; } |
| + void SetMaxTextureSize(gfx::Size max_texture_size); |
|
tfarina
2012/11/02 00:18:46
const-ref!
Same at the ctor!
|
| + |
| + int border_texels() const { return border_texels_; } |
| + void SetHasBorderTexels(bool has_border_texels); |
| + |
| + bool has_empty_bounds() const { return !num_tiles_x_ || !num_tiles_y_; } |
| + int num_tiles_x() const { return num_tiles_x_; } |
| + int num_tiles_y() const { return num_tiles_y_; } |
| + int TileXIndexFromSrcCoord(int src_position) const; |
| + int TileYIndexFromSrcCoord(int src_position) const; |
| + |
| + gfx::Rect TileBounds(int i, int j) const; |
| + gfx::Rect TileBoundsWithBorder(int i, int j) const; |
| + int TilePositionX(int x_index) const; |
| + int TilePositionY(int y_index) const; |
| + int TileSizeX(int x_index) const; |
| + int TileSizeY(int y_index) const; |
| + |
| + // Difference between TileBound's and TileBoundWithBorder's origin(). |
| + gfx::Vector2d TextureOffset(int x_index, int y_index) const; |
| + |
| + private: |
| + void AssertTile(int i, int j) const { |
| + DCHECK_GE(i, 0); |
| + DCHECK_LT(i, num_tiles_x_); |
| + DCHECK_GE(j, 0); |
| + DCHECK_LT(j, num_tiles_y_); |
| + } |
| + |
| + void RecomputeNumTiles(); |
| + |
| + gfx::Size max_texture_size_; |
| + gfx::Size total_size_; |
| + // This value is always 0 or 1. |
| + int border_texels_; |
| + |
| + // These are computed values. |
| + int num_tiles_x_; |
| + int num_tiles_y_; |
| +}; |
| + |
| +} // namespace cc |
| + |
| +#endif // CC_TILING_DATA_H_ |