Chromium Code Reviews| Index: cc/base/tiling_data.cc |
| diff --git a/cc/base/tiling_data.cc b/cc/base/tiling_data.cc |
| index 4852110e63715f1026ffde77f57ffd58492f2d19..d8cb29b838b477f1499f80ca04826621df6ba7cd 100644 |
| --- a/cc/base/tiling_data.cc |
| +++ b/cc/base/tiling_data.cc |
| @@ -6,6 +6,7 @@ |
| #include <algorithm> |
| +#include "cc/base/util.h" |
| #include "ui/gfx/rect.h" |
| #include "ui/gfx/vector2d.h" |
| @@ -72,10 +73,12 @@ std::pair<int, int> TilingData::UnclampedFirstBorderTileIndexFromSrcCoord( |
| int x, |
| int y) const { |
| int inner_tile_width = max_texture_size_.width() - 2 * border_texels_; |
| - int result_x = (x - 2 * border_texels_) / inner_tile_width; |
| + int result_x = |
| + RoundDown(x - 2 * border_texels_, inner_tile_width) / inner_tile_width; |
|
enne (OOO)
2014/03/06 02:30:45
Why?
vmpstr
2014/03/07 18:22:23
I moved this to a separate patch. It's a bug in th
|
| int inner_tile_height = max_texture_size_.height() - 2 * border_texels_; |
| - int result_y = (y - 2 * border_texels_) / inner_tile_height; |
| + int result_y = |
| + RoundDown(y - 2 * border_texels_, inner_tile_height) / inner_tile_height; |
| return std::make_pair(result_x, result_y); |
| } |
| @@ -84,10 +87,10 @@ std::pair<int, int> TilingData::UnclampedLastBorderTileIndexFromSrcCoord( |
| int x, |
| int y) const { |
| int inner_tile_width = max_texture_size_.width() - 2 * border_texels_; |
| - int result_x = x / inner_tile_width; |
| + int result_x = RoundDown(x, inner_tile_width) / inner_tile_width; |
| int inner_tile_height = max_texture_size_.height() - 2 * border_texels_; |
| - int result_y = y / inner_tile_height; |
| + int result_y = RoundDown(y, inner_tile_height) / inner_tile_height; |
| return std::make_pair(result_x, result_y); |
| } |
| @@ -296,6 +299,8 @@ TilingData::BaseIterator::BaseIterator(const TilingData* tiling_data) |
| index_y_(-1) { |
| } |
| +TilingData::Iterator::Iterator() : BaseIterator(NULL) { done(); } |
| + |
| TilingData::Iterator::Iterator(const TilingData* tiling_data, |
| const gfx::Rect& tiling_rect) |
| : BaseIterator(tiling_data), |
| @@ -433,6 +438,11 @@ TilingData::DifferenceIterator& TilingData::DifferenceIterator::operator++() { |
| return *this; |
| } |
| +TilingData::SpiralDifferenceIterator::SpiralDifferenceIterator() |
| + : BaseIterator(NULL) { |
| + done(); |
| +} |
| + |
| TilingData::SpiralDifferenceIterator::SpiralDifferenceIterator( |
| const TilingData* tiling_data, |
| const gfx::Rect& consider_rect, |