| OLD | NEW | 
|---|
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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/base/tiling_data.h" | 5 #include "cc/base/tiling_data.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 | 8 | 
| 9 #include "ui/gfx/geometry/rect.h" | 9 #include "ui/gfx/geometry/rect.h" | 
| 10 #include "ui/gfx/geometry/vector2d.h" | 10 #include "ui/gfx/geometry/vector2d.h" | 
| 11 | 11 | 
| 12 namespace cc { | 12 namespace cc { | 
|  | 13 namespace { | 
| 13 | 14 | 
| 14 static int ComputeNumTiles(int max_texture_size, | 15 int ComputeNumTiles(int max_texture_size, int total_size, int border_texels) { | 
| 15                            int total_size, |  | 
| 16                            int border_texels) { |  | 
| 17   if (max_texture_size - 2 * border_texels <= 0) | 16   if (max_texture_size - 2 * border_texels <= 0) | 
| 18     return total_size > 0 && max_texture_size >= total_size ? 1 : 0; | 17     return total_size > 0 && max_texture_size >= total_size ? 1 : 0; | 
| 19 | 18 | 
| 20   int num_tiles = std::max(1, | 19   int num_tiles = std::max(1, | 
| 21                            1 + (total_size - 1 - 2 * border_texels) / | 20                            1 + (total_size - 1 - 2 * border_texels) / | 
| 22                            (max_texture_size - 2 * border_texels)); | 21                            (max_texture_size - 2 * border_texels)); | 
| 23   return total_size > 0 ? num_tiles : 0; | 22   return total_size > 0 ? num_tiles : 0; | 
| 24 } | 23 } | 
| 25 | 24 | 
|  | 25 }  // namespace | 
|  | 26 | 
| 26 TilingData::TilingData() | 27 TilingData::TilingData() | 
| 27     : border_texels_(0) { | 28     : border_texels_(0) { | 
| 28   RecomputeNumTiles(); | 29   RecomputeNumTiles(); | 
| 29 } | 30 } | 
| 30 | 31 | 
| 31 TilingData::TilingData(const gfx::Size& max_texture_size, | 32 TilingData::TilingData(const gfx::Size& max_texture_size, | 
| 32                        const gfx::Size& tiling_size, | 33                        const gfx::Size& tiling_size, | 
| 33                        bool has_border_texels) | 34                        bool has_border_texels) | 
| 34     : max_texture_size_(max_texture_size), | 35     : max_texture_size_(max_texture_size), | 
| 35       tiling_size_(tiling_size), | 36       tiling_size_(tiling_size), | 
| 36       border_texels_(has_border_texels ? 1 : 0) { | 37       border_texels_(has_border_texels ? 1 : 0) { | 
| 37   RecomputeNumTiles(); | 38   RecomputeNumTiles(); | 
| 38 } | 39 } | 
| 39 | 40 | 
| 40 TilingData::TilingData(const gfx::Size& max_texture_size, | 41 TilingData::TilingData(const gfx::Size& max_texture_size, | 
| 41                        const gfx::Size& tiling_size, | 42                        const gfx::Size& tiling_size, | 
| 42                        int border_texels) | 43                        int border_texels) | 
| 43     : max_texture_size_(max_texture_size), | 44     : max_texture_size_(max_texture_size), | 
| 44       tiling_size_(tiling_size), | 45       tiling_size_(tiling_size), | 
| 45       border_texels_(border_texels) { | 46       border_texels_(border_texels) { | 
| 46   RecomputeNumTiles(); | 47   RecomputeNumTiles(); | 
| 47 } | 48 } | 
| 48 | 49 | 
|  | 50 TilingData::TilingData(const TilingData& other) = default; | 
|  | 51 | 
|  | 52 TilingData::~TilingData() = default; | 
|  | 53 | 
| 49 void TilingData::SetTilingSize(const gfx::Size& tiling_size) { | 54 void TilingData::SetTilingSize(const gfx::Size& tiling_size) { | 
| 50   tiling_size_ = tiling_size; | 55   tiling_size_ = tiling_size; | 
| 51   RecomputeNumTiles(); | 56   RecomputeNumTiles(); | 
| 52 } | 57 } | 
| 53 | 58 | 
| 54 void TilingData::SetMaxTextureSize(const gfx::Size& max_texture_size) { | 59 void TilingData::SetMaxTextureSize(const gfx::Size& max_texture_size) { | 
| 55   max_texture_size_ = max_texture_size; | 60   max_texture_size_ = max_texture_size; | 
| 56   RecomputeNumTiles(); | 61   RecomputeNumTiles(); | 
| 57 } | 62 } | 
| 58 | 63 | 
| 59 void TilingData::SetHasBorderTexels(bool has_border_texels) { | 64 void TilingData::SetHasBorderTexels(bool has_border_texels) { | 
| 60   border_texels_ = has_border_texels ? 1 : 0; | 65   border_texels_ = has_border_texels ? 1 : 0; | 
| 61   RecomputeNumTiles(); | 66   RecomputeNumTiles(); | 
| 62 } | 67 } | 
| 63 | 68 | 
| 64 void TilingData::SetBorderTexels(int border_texels) { | 69 void TilingData::SetBorderTexels(int border_texels) { | 
| 65   border_texels_ = border_texels; | 70   border_texels_ = border_texels; | 
| 66   RecomputeNumTiles(); | 71   RecomputeNumTiles(); | 
| 67 } | 72 } | 
| 68 | 73 | 
| 69 int TilingData::TileXIndexFromSrcCoord(int src_position) const { | 74 int TilingData::TileXIndexFromSrcCoord(int src_position) const { | 
| 70   if (num_tiles_x_ <= 1) | 75   if (num_tiles_x_ <= 1) | 
| 71     return 0; | 76     return 0; | 
| 72 | 77 | 
| 73   DCHECK_GT(max_texture_size_.width() - 2 * border_texels_, 0); | 78   int x = | 
| 74   int x = (src_position - border_texels_) / | 79       (src_position - border_texels_) / borderless_max_texture_size_.width(); | 
| 75       (max_texture_size_.width() - 2 * border_texels_); |  | 
| 76   return std::min(std::max(x, 0), num_tiles_x_ - 1); | 80   return std::min(std::max(x, 0), num_tiles_x_ - 1); | 
| 77 } | 81 } | 
| 78 | 82 | 
| 79 int TilingData::TileYIndexFromSrcCoord(int src_position) const { | 83 int TilingData::TileYIndexFromSrcCoord(int src_position) const { | 
| 80   if (num_tiles_y_ <= 1) | 84   if (num_tiles_y_ <= 1) | 
| 81     return 0; | 85     return 0; | 
| 82 | 86 | 
| 83   DCHECK_GT(max_texture_size_.height() - 2 * border_texels_, 0); | 87   int y = | 
| 84   int y = (src_position - border_texels_) / | 88       (src_position - border_texels_) / borderless_max_texture_size_.height(); | 
| 85       (max_texture_size_.height() - 2 * border_texels_); |  | 
| 86   return std::min(std::max(y, 0), num_tiles_y_ - 1); | 89   return std::min(std::max(y, 0), num_tiles_y_ - 1); | 
| 87 } | 90 } | 
| 88 | 91 | 
| 89 int TilingData::FirstBorderTileXIndexFromSrcCoord(int src_position) const { | 92 int TilingData::FirstBorderTileXIndexFromSrcCoord(int src_position) const { | 
| 90   if (num_tiles_x_ <= 1) | 93   if (num_tiles_x_ <= 1) | 
| 91     return 0; | 94     return 0; | 
| 92 | 95 | 
| 93   DCHECK_GT(max_texture_size_.width() - 2 * border_texels_, 0); | 96   int x = (src_position - 2 * border_texels_) / | 
| 94   int inner_tile_size = max_texture_size_.width() - 2 * border_texels_; | 97           borderless_max_texture_size_.width(); | 
| 95   int x = (src_position - 2 * border_texels_) / inner_tile_size; |  | 
| 96   return std::min(std::max(x, 0), num_tiles_x_ - 1); | 98   return std::min(std::max(x, 0), num_tiles_x_ - 1); | 
| 97 } | 99 } | 
| 98 | 100 | 
| 99 int TilingData::FirstBorderTileYIndexFromSrcCoord(int src_position) const { | 101 int TilingData::FirstBorderTileYIndexFromSrcCoord(int src_position) const { | 
| 100   if (num_tiles_y_ <= 1) | 102   if (num_tiles_y_ <= 1) | 
| 101     return 0; | 103     return 0; | 
| 102 | 104 | 
| 103   DCHECK_GT(max_texture_size_.height() - 2 * border_texels_, 0); | 105   int y = (src_position - 2 * border_texels_) / | 
| 104   int inner_tile_size = max_texture_size_.height() - 2 * border_texels_; | 106           borderless_max_texture_size_.height(); | 
| 105   int y = (src_position - 2 * border_texels_) / inner_tile_size; |  | 
| 106   return std::min(std::max(y, 0), num_tiles_y_ - 1); | 107   return std::min(std::max(y, 0), num_tiles_y_ - 1); | 
| 107 } | 108 } | 
| 108 | 109 | 
| 109 int TilingData::LastBorderTileXIndexFromSrcCoord(int src_position) const { | 110 int TilingData::LastBorderTileXIndexFromSrcCoord(int src_position) const { | 
| 110   if (num_tiles_x_ <= 1) | 111   if (num_tiles_x_ <= 1) | 
| 111     return 0; | 112     return 0; | 
| 112 | 113 | 
| 113   DCHECK_GT(max_texture_size_.width() - 2 * border_texels_, 0); | 114   int x = src_position / borderless_max_texture_size_.width(); | 
| 114   int inner_tile_size = max_texture_size_.width() - 2 * border_texels_; |  | 
| 115   int x = src_position / inner_tile_size; |  | 
| 116   return std::min(std::max(x, 0), num_tiles_x_ - 1); | 115   return std::min(std::max(x, 0), num_tiles_x_ - 1); | 
| 117 } | 116 } | 
| 118 | 117 | 
| 119 int TilingData::LastBorderTileYIndexFromSrcCoord(int src_position) const { | 118 int TilingData::LastBorderTileYIndexFromSrcCoord(int src_position) const { | 
| 120   if (num_tiles_y_ <= 1) | 119   if (num_tiles_y_ <= 1) | 
| 121     return 0; | 120     return 0; | 
| 122 | 121 | 
| 123   DCHECK_GT(max_texture_size_.height() - 2 * border_texels_, 0); | 122   int y = src_position / borderless_max_texture_size_.height(); | 
| 124   int inner_tile_size = max_texture_size_.height() - 2 * border_texels_; |  | 
| 125   int y = src_position / inner_tile_size; |  | 
| 126   return std::min(std::max(y, 0), num_tiles_y_ - 1); | 123   return std::min(std::max(y, 0), num_tiles_y_ - 1); | 
| 127 } | 124 } | 
| 128 | 125 | 
| 129 gfx::Rect TilingData::ExpandRectIgnoringBordersToTileBounds( | 126 gfx::Rect TilingData::ExpandRectIgnoringBordersToTileBounds( | 
| 130     const gfx::Rect& rect) const { | 127     const gfx::Rect& rect) const { | 
| 131   if (rect.IsEmpty() || has_empty_bounds()) | 128   if (rect.IsEmpty() || has_empty_bounds()) | 
| 132     return gfx::Rect(); | 129     return gfx::Rect(); | 
| 133   if (rect.x() > tiling_size_.width() || rect.y() > tiling_size_.height()) | 130   if (rect.x() > tiling_size_.width() || rect.y() > tiling_size_.height()) | 
| 134     return gfx::Rect(); | 131     return gfx::Rect(); | 
| 135   int index_x = TileXIndexFromSrcCoord(rect.x()); | 132   int index_x = TileXIndexFromSrcCoord(rect.x()); | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 154   int index_bottom = LastBorderTileYIndexFromSrcCoord(rect.bottom() - 1); | 151   int index_bottom = LastBorderTileYIndexFromSrcCoord(rect.bottom() - 1); | 
| 155 | 152 | 
| 156   gfx::Rect rect_top_left(TileBounds(index_x, index_y)); | 153   gfx::Rect rect_top_left(TileBounds(index_x, index_y)); | 
| 157   gfx::Rect rect_bottom_right(TileBounds(index_right, index_bottom)); | 154   gfx::Rect rect_bottom_right(TileBounds(index_right, index_bottom)); | 
| 158 | 155 | 
| 159   return gfx::UnionRects(rect_top_left, rect_bottom_right); | 156   return gfx::UnionRects(rect_top_left, rect_bottom_right); | 
| 160 } | 157 } | 
| 161 | 158 | 
| 162 gfx::Rect TilingData::TileBounds(int i, int j) const { | 159 gfx::Rect TilingData::TileBounds(int i, int j) const { | 
| 163   AssertTile(i, j); | 160   AssertTile(i, j); | 
| 164   int max_texture_size_x = max_texture_size_.width() - 2 * border_texels_; |  | 
| 165   int max_texture_size_y = max_texture_size_.height() - 2 * border_texels_; |  | 
| 166 | 161 | 
| 167   int lo_x = max_texture_size_x * i; | 162   int lo_x = borderless_max_texture_size_.width() * i; | 
| 168   if (i != 0) | 163   if (i != 0) | 
| 169     lo_x += border_texels_; | 164     lo_x += border_texels_; | 
| 170 | 165 | 
| 171   int lo_y = max_texture_size_y * j; | 166   int lo_y = borderless_max_texture_size_.height() * j; | 
| 172   if (j != 0) | 167   if (j != 0) | 
| 173     lo_y += border_texels_; | 168     lo_y += border_texels_; | 
| 174 | 169 | 
| 175   int hi_x = max_texture_size_x * (i + 1) + border_texels_; | 170   int hi_x = borderless_max_texture_size_.width() * (i + 1) + border_texels_; | 
| 176   if (i + 1 == num_tiles_x_) | 171   if (i + 1 == num_tiles_x_) | 
| 177     hi_x += border_texels_; | 172     hi_x += border_texels_; | 
| 178 | 173 | 
| 179   int hi_y = max_texture_size_y * (j + 1) + border_texels_; | 174   int hi_y = borderless_max_texture_size_.height() * (j + 1) + border_texels_; | 
| 180   if (j + 1 == num_tiles_y_) | 175   if (j + 1 == num_tiles_y_) | 
| 181     hi_y += border_texels_; | 176     hi_y += border_texels_; | 
| 182 | 177 | 
| 183   hi_x = std::min(hi_x, tiling_size_.width()); | 178   hi_x = std::min(hi_x, tiling_size_.width()); | 
| 184   hi_y = std::min(hi_y, tiling_size_.height()); | 179   hi_y = std::min(hi_y, tiling_size_.height()); | 
| 185 | 180 | 
| 186   int x = lo_x; | 181   int x = lo_x; | 
| 187   int y = lo_y; | 182   int y = lo_y; | 
| 188   int width = hi_x - lo_x; | 183   int width = hi_x - lo_x; | 
| 189   int height = hi_y - lo_y; | 184   int height = hi_y - lo_y; | 
| 190   DCHECK_GE(x, 0); | 185   DCHECK_GE(x, 0); | 
| 191   DCHECK_GE(y, 0); | 186   DCHECK_GE(y, 0); | 
| 192   DCHECK_GE(width, 0); | 187   DCHECK_GE(width, 0); | 
| 193   DCHECK_GE(height, 0); | 188   DCHECK_GE(height, 0); | 
| 194   DCHECK_LE(x, tiling_size_.width()); | 189   DCHECK_LE(x, tiling_size_.width()); | 
| 195   DCHECK_LE(y, tiling_size_.height()); | 190   DCHECK_LE(y, tiling_size_.height()); | 
| 196   return gfx::Rect(x, y, width, height); | 191   return gfx::Rect(x, y, width, height); | 
| 197 } | 192 } | 
| 198 | 193 | 
| 199 gfx::Rect TilingData::TileBoundsWithBorder(int i, int j) const { | 194 gfx::Rect TilingData::TileBoundsWithBorder(int i, int j) const { | 
| 200   AssertTile(i, j); | 195   AssertTile(i, j); | 
| 201   int max_texture_size_x = max_texture_size_.width() - 2 * border_texels_; |  | 
| 202   int max_texture_size_y = max_texture_size_.height() - 2 * border_texels_; |  | 
| 203 | 196 | 
| 204   int lo_x = max_texture_size_x * i; | 197   int lo_x = borderless_max_texture_size_.width() * i; | 
| 205   int lo_y = max_texture_size_y * j; | 198   int lo_y = borderless_max_texture_size_.height() * j; | 
| 206 | 199 | 
| 207   int hi_x = lo_x + max_texture_size_x + 2 * border_texels_; | 200   int hi_x = lo_x + borderless_max_texture_size_.width() + 2 * border_texels_; | 
| 208   int hi_y = lo_y + max_texture_size_y + 2 * border_texels_; | 201   int hi_y = lo_y + borderless_max_texture_size_.height() + 2 * border_texels_; | 
| 209 | 202 | 
| 210   hi_x = std::min(hi_x, tiling_size_.width()); | 203   hi_x = std::min(hi_x, tiling_size_.width()); | 
| 211   hi_y = std::min(hi_y, tiling_size_.height()); | 204   hi_y = std::min(hi_y, tiling_size_.height()); | 
| 212 | 205 | 
| 213   int x = lo_x; | 206   int x = lo_x; | 
| 214   int y = lo_y; | 207   int y = lo_y; | 
| 215   int width = hi_x - lo_x; | 208   int width = hi_x - lo_x; | 
| 216   int height = hi_y - lo_y; | 209   int height = hi_y - lo_y; | 
| 217   DCHECK_GE(x, 0); | 210   DCHECK_GE(x, 0); | 
| 218   DCHECK_GE(y, 0); | 211   DCHECK_GE(y, 0); | 
| 219   DCHECK_GE(width, 0); | 212   DCHECK_GE(width, 0); | 
| 220   DCHECK_GE(height, 0); | 213   DCHECK_GE(height, 0); | 
| 221   DCHECK_LE(x, tiling_size_.width()); | 214   DCHECK_LE(x, tiling_size_.width()); | 
| 222   DCHECK_LE(y, tiling_size_.height()); | 215   DCHECK_LE(y, tiling_size_.height()); | 
| 223   return gfx::Rect(x, y, width, height); | 216   return gfx::Rect(x, y, width, height); | 
| 224 } | 217 } | 
| 225 | 218 | 
| 226 int TilingData::TilePositionX(int x_index) const { | 219 int TilingData::TilePositionX(int x_index) const { | 
| 227   DCHECK_GE(x_index, 0); | 220   DCHECK_GE(x_index, 0); | 
| 228   DCHECK_LT(x_index, num_tiles_x_); | 221   DCHECK_LT(x_index, num_tiles_x_); | 
| 229 | 222 | 
| 230   int pos = (max_texture_size_.width() - 2 * border_texels_) * x_index; | 223   int pos = (borderless_max_texture_size_.width()) * x_index; | 
| 231   if (x_index != 0) | 224   if (x_index != 0) | 
| 232     pos += border_texels_; | 225     pos += border_texels_; | 
| 233 | 226 | 
| 234   return pos; | 227   return pos; | 
| 235 } | 228 } | 
| 236 | 229 | 
| 237 int TilingData::TilePositionY(int y_index) const { | 230 int TilingData::TilePositionY(int y_index) const { | 
| 238   DCHECK_GE(y_index, 0); | 231   DCHECK_GE(y_index, 0); | 
| 239   DCHECK_LT(y_index, num_tiles_y_); | 232   DCHECK_LT(y_index, num_tiles_y_); | 
| 240 | 233 | 
| 241   int pos = (max_texture_size_.height() - 2 * border_texels_) * y_index; | 234   int pos = (borderless_max_texture_size_.height()) * y_index; | 
| 242   if (y_index != 0) | 235   if (y_index != 0) | 
| 243     pos += border_texels_; | 236     pos += border_texels_; | 
| 244 | 237 | 
| 245   return pos; | 238   return pos; | 
| 246 } | 239 } | 
| 247 | 240 | 
| 248 int TilingData::TileSizeX(int x_index) const { | 241 int TilingData::TileSizeX(int x_index) const { | 
| 249   DCHECK_GE(x_index, 0); | 242   DCHECK_GE(x_index, 0); | 
| 250   DCHECK_LT(x_index, num_tiles_x_); | 243   DCHECK_LT(x_index, num_tiles_x_); | 
| 251 | 244 | 
| 252   if (!x_index && num_tiles_x_ == 1) | 245   if (!x_index && num_tiles_x_ == 1) | 
| 253     return tiling_size_.width(); | 246     return tiling_size_.width(); | 
| 254   if (!x_index && num_tiles_x_ > 1) | 247   if (!x_index && num_tiles_x_ > 1) | 
| 255     return max_texture_size_.width() - border_texels_; | 248     return max_texture_size_.width() - border_texels_; | 
| 256   if (x_index < num_tiles_x_ - 1) | 249   if (x_index < num_tiles_x_ - 1) | 
| 257     return max_texture_size_.width() - 2 * border_texels_; | 250     return borderless_max_texture_size_.width(); | 
| 258   if (x_index == num_tiles_x_ - 1) | 251   if (x_index == num_tiles_x_ - 1) | 
| 259     return tiling_size_.width() - TilePositionX(x_index); | 252     return tiling_size_.width() - TilePositionX(x_index); | 
| 260 | 253 | 
| 261   NOTREACHED(); | 254   NOTREACHED(); | 
| 262   return 0; | 255   return 0; | 
| 263 } | 256 } | 
| 264 | 257 | 
| 265 int TilingData::TileSizeY(int y_index) const { | 258 int TilingData::TileSizeY(int y_index) const { | 
| 266   DCHECK_GE(y_index, 0); | 259   DCHECK_GE(y_index, 0); | 
| 267   DCHECK_LT(y_index, num_tiles_y_); | 260   DCHECK_LT(y_index, num_tiles_y_); | 
| 268 | 261 | 
| 269   if (!y_index && num_tiles_y_ == 1) | 262   if (!y_index && num_tiles_y_ == 1) | 
| 270     return tiling_size_.height(); | 263     return tiling_size_.height(); | 
| 271   if (!y_index && num_tiles_y_ > 1) | 264   if (!y_index && num_tiles_y_ > 1) | 
| 272     return max_texture_size_.height() - border_texels_; | 265     return max_texture_size_.height() - border_texels_; | 
| 273   if (y_index < num_tiles_y_ - 1) | 266   if (y_index < num_tiles_y_ - 1) | 
| 274     return max_texture_size_.height() - 2 * border_texels_; | 267     return borderless_max_texture_size_.height(); | 
| 275   if (y_index == num_tiles_y_ - 1) | 268   if (y_index == num_tiles_y_ - 1) | 
| 276     return tiling_size_.height() - TilePositionY(y_index); | 269     return tiling_size_.height() - TilePositionY(y_index); | 
| 277 | 270 | 
| 278   NOTREACHED(); | 271   NOTREACHED(); | 
| 279   return 0; | 272   return 0; | 
| 280 } | 273 } | 
| 281 | 274 | 
| 282 gfx::Vector2d TilingData::TextureOffset(int x_index, int y_index) const { | 275 gfx::Vector2d TilingData::TextureOffset(int x_index, int y_index) const { | 
| 283   int left = (!x_index || num_tiles_x_ == 1) ? 0 : border_texels_; | 276   int left = (!x_index || num_tiles_x_ == 1) ? 0 : border_texels_; | 
| 284   int top = (!y_index || num_tiles_y_ == 1) ? 0 : border_texels_; | 277   int top = (!y_index || num_tiles_y_ == 1) ? 0 : border_texels_; | 
| 285 | 278 | 
| 286   return gfx::Vector2d(left, top); | 279   return gfx::Vector2d(left, top); | 
| 287 } | 280 } | 
| 288 | 281 | 
| 289 void TilingData::RecomputeNumTiles() { | 282 void TilingData::RecomputeNumTiles() { | 
| 290   num_tiles_x_ = ComputeNumTiles( | 283   num_tiles_x_ = ComputeNumTiles( | 
| 291       max_texture_size_.width(), tiling_size_.width(), border_texels_); | 284       max_texture_size_.width(), tiling_size_.width(), border_texels_); | 
| 292   num_tiles_y_ = ComputeNumTiles( | 285   num_tiles_y_ = ComputeNumTiles( | 
| 293       max_texture_size_.height(), tiling_size_.height(), border_texels_); | 286       max_texture_size_.height(), tiling_size_.height(), border_texels_); | 
|  | 287 | 
|  | 288   borderless_max_texture_size_.set_width(max_texture_size_.width() - | 
|  | 289                                          2 * border_texels_); | 
|  | 290   borderless_max_texture_size_.set_height(max_texture_size_.height() - | 
|  | 291                                           2 * border_texels_); | 
|  | 292   DCHECK_GE(borderless_max_texture_size_.width(), 0); | 
|  | 293   DCHECK_GE(borderless_max_texture_size_.height(), 0); | 
| 294 } | 294 } | 
| 295 | 295 | 
| 296 TilingData::BaseIterator::BaseIterator() : index_x_(-1), index_y_(-1) { | 296 TilingData::BaseIterator::BaseIterator() : index_x_(-1), index_y_(-1) { | 
| 297 } | 297 } | 
| 298 | 298 | 
| 299 TilingData::Iterator::Iterator() { | 299 TilingData::Iterator::Iterator() { | 
| 300   done(); | 300   done(); | 
| 301 } | 301 } | 
| 302 | 302 | 
| 303 TilingData::Iterator::Iterator(const TilingData* tiling_data, | 303 TilingData::Iterator::Iterator(const TilingData* tiling_data, | 
| (...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 858 | 858 | 
| 859     // We should always end up in an around rect at some point. | 859     // We should always end up in an around rect at some point. | 
| 860     // Since the direction is now vertical, we have to ensure that we will | 860     // Since the direction is now vertical, we have to ensure that we will | 
| 861     // advance. | 861     // advance. | 
| 862     DCHECK_GE(horizontal_step_count_, 1); | 862     DCHECK_GE(horizontal_step_count_, 1); | 
| 863     DCHECK_GE(vertical_step_count_, 1); | 863     DCHECK_GE(vertical_step_count_, 1); | 
| 864   } | 864   } | 
| 865 } | 865 } | 
| 866 | 866 | 
| 867 }  // namespace cc | 867 }  // namespace cc | 
| OLD | NEW | 
|---|