Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Side by Side Diff: cc/base/tiling_data.cc

Issue 93663004: [#2] Pass gfx structs by const ref (gfx::Rect, gfx::RectF) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to ToT, fix builds on non-linux platforms! Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/base/tiling_data.h ('k') | cc/debug/debug_rect_history.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/rect.h" 9 #include "ui/gfx/rect.h"
10 #include "ui/gfx/vector2d.h" 10 #include "ui/gfx/vector2d.h"
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 num_tiles_y_ = ComputeNumTiles( 265 num_tiles_y_ = ComputeNumTiles(
266 max_texture_size_.height(), total_size_.height(), border_texels_); 266 max_texture_size_.height(), total_size_.height(), border_texels_);
267 } 267 }
268 268
269 TilingData::BaseIterator::BaseIterator(const TilingData* tiling_data) 269 TilingData::BaseIterator::BaseIterator(const TilingData* tiling_data)
270 : tiling_data_(tiling_data), 270 : tiling_data_(tiling_data),
271 index_x_(-1), 271 index_x_(-1),
272 index_y_(-1) { 272 index_y_(-1) {
273 } 273 }
274 274
275 TilingData::Iterator::Iterator(const TilingData* tiling_data, gfx::Rect rect) 275 TilingData::Iterator::Iterator(const TilingData* tiling_data,
276 const gfx::Rect& tiling_rect)
276 : BaseIterator(tiling_data), 277 : BaseIterator(tiling_data),
277 left_(-1), 278 left_(-1),
278 right_(-1), 279 right_(-1),
279 bottom_(-1) { 280 bottom_(-1) {
280 if (tiling_data_->num_tiles_x() <= 0 || tiling_data_->num_tiles_y() <= 0) { 281 if (tiling_data_->num_tiles_x() <= 0 || tiling_data_->num_tiles_y() <= 0) {
281 done(); 282 done();
282 return; 283 return;
283 } 284 }
284 285
286 gfx::Rect rect(tiling_rect);
285 rect.Intersect(gfx::Rect(tiling_data_->total_size())); 287 rect.Intersect(gfx::Rect(tiling_data_->total_size()));
286 index_x_ = tiling_data_->FirstBorderTileXIndexFromSrcCoord(rect.x()); 288 index_x_ = tiling_data_->FirstBorderTileXIndexFromSrcCoord(rect.x());
287 index_y_ = tiling_data_->FirstBorderTileYIndexFromSrcCoord(rect.y()); 289 index_y_ = tiling_data_->FirstBorderTileYIndexFromSrcCoord(rect.y());
288 left_ = index_x_; 290 left_ = index_x_;
289 right_ = tiling_data_->LastBorderTileXIndexFromSrcCoord(rect.right() - 1); 291 right_ = tiling_data_->LastBorderTileXIndexFromSrcCoord(rect.right() - 1);
290 bottom_ = tiling_data_->LastBorderTileYIndexFromSrcCoord(rect.bottom() - 1); 292 bottom_ = tiling_data_->LastBorderTileYIndexFromSrcCoord(rect.bottom() - 1);
291 293
292 // Index functions always return valid indices, so explicitly check 294 // Index functions always return valid indices, so explicitly check
293 // for non-intersecting rects. 295 // for non-intersecting rects.
294 gfx::Rect new_rect = tiling_data_->TileBoundsWithBorder(index_x_, index_y_); 296 gfx::Rect new_rect = tiling_data_->TileBoundsWithBorder(index_x_, index_y_);
(...skipping 11 matching lines...) Expand all
306 index_y_++; 308 index_y_++;
307 if (index_y_ > bottom_) 309 if (index_y_ > bottom_)
308 done(); 310 done();
309 } 311 }
310 312
311 return *this; 313 return *this;
312 } 314 }
313 315
314 TilingData::DifferenceIterator::DifferenceIterator( 316 TilingData::DifferenceIterator::DifferenceIterator(
315 const TilingData* tiling_data, 317 const TilingData* tiling_data,
316 gfx::Rect consider, 318 const gfx::Rect& consider_rect,
317 gfx::Rect ignore) 319 const gfx::Rect& ignore_rect)
318 : BaseIterator(tiling_data), 320 : BaseIterator(tiling_data),
319 consider_left_(-1), 321 consider_left_(-1),
320 consider_top_(-1), 322 consider_top_(-1),
321 consider_right_(-1), 323 consider_right_(-1),
322 consider_bottom_(-1), 324 consider_bottom_(-1),
323 ignore_left_(-1), 325 ignore_left_(-1),
324 ignore_top_(-1), 326 ignore_top_(-1),
325 ignore_right_(-1), 327 ignore_right_(-1),
326 ignore_bottom_(-1) { 328 ignore_bottom_(-1) {
327 if (tiling_data_->num_tiles_x() <= 0 || tiling_data_->num_tiles_y() <= 0) { 329 if (tiling_data_->num_tiles_x() <= 0 || tiling_data_->num_tiles_y() <= 0) {
328 done(); 330 done();
329 return; 331 return;
330 } 332 }
331 333
332 gfx::Rect bounds(tiling_data_->total_size()); 334 gfx::Rect bounds(tiling_data_->total_size());
335 gfx::Rect consider(consider_rect);
336 gfx::Rect ignore(ignore_rect);
333 consider.Intersect(bounds); 337 consider.Intersect(bounds);
334 ignore.Intersect(bounds); 338 ignore.Intersect(bounds);
335 if (consider.IsEmpty()) { 339 if (consider.IsEmpty()) {
336 done(); 340 done();
337 return; 341 return;
338 } 342 }
339 343
340 consider_left_ = 344 consider_left_ =
341 tiling_data_->FirstBorderTileXIndexFromSrcCoord(consider.x()); 345 tiling_data_->FirstBorderTileXIndexFromSrcCoord(consider.x());
342 consider_top_ = 346 consider_top_ =
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 } 403 }
400 404
401 if (index_y_ > consider_bottom_) 405 if (index_y_ > consider_bottom_)
402 done(); 406 done();
403 } 407 }
404 408
405 return *this; 409 return *this;
406 } 410 }
407 411
408 } // namespace cc 412 } // namespace cc
OLDNEW
« no previous file with comments | « cc/base/tiling_data.h ('k') | cc/debug/debug_rect_history.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698