diff options
Diffstat (limited to 'cc/base')
-rw-r--r-- | cc/base/tiling_data.cc | 10 | ||||
-rw-r--r-- | cc/base/tiling_data.h | 3 | ||||
-rw-r--r-- | cc/base/tiling_data_unittest.cc | 73 |
3 files changed, 50 insertions, 36 deletions
diff --git a/cc/base/tiling_data.cc b/cc/base/tiling_data.cc index 185bbed..6921a8b 100644 --- a/cc/base/tiling_data.cc +++ b/cc/base/tiling_data.cc @@ -138,14 +138,14 @@ int TilingData::LastBorderTileYIndexFromSrcCoord(int src_position) const { return std::min(std::max(y, 0), num_tiles_y_ - 1); } -gfx::Rect TilingData::ExpandRectToTileBoundsWithBorders( +gfx::Rect TilingData::ExpandRectIgnoringBordersToTileBoundsWithBorders( const gfx::Rect& rect) const { if (!rect.Intersects(tiling_rect_) || has_empty_bounds()) return gfx::Rect(); - int index_x = FirstBorderTileXIndexFromSrcCoord(rect.x()); - int index_y = FirstBorderTileYIndexFromSrcCoord(rect.y()); - int index_right = LastBorderTileXIndexFromSrcCoord(rect.right() - 1); - int index_bottom = LastBorderTileYIndexFromSrcCoord(rect.bottom() - 1); + int index_x = TileXIndexFromSrcCoord(rect.x()); + int index_y = TileYIndexFromSrcCoord(rect.y()); + int index_right = TileXIndexFromSrcCoord(rect.right() - 1); + int index_bottom = TileYIndexFromSrcCoord(rect.bottom() - 1); gfx::Rect rect_top_left(TileBoundsWithBorder(index_x, index_y)); gfx::Rect rect_bottom_right(TileBoundsWithBorder(index_right, index_bottom)); diff --git a/cc/base/tiling_data.h b/cc/base/tiling_data.h index 8550e5f..94bee34 100644 --- a/cc/base/tiling_data.h +++ b/cc/base/tiling_data.h @@ -52,7 +52,8 @@ class CC_EXPORT TilingData { int LastBorderTileXIndexFromSrcCoord(int src_position) const; int LastBorderTileYIndexFromSrcCoord(int src_position) const; - gfx::Rect ExpandRectToTileBoundsWithBorders(const gfx::Rect& rect) const; + gfx::Rect ExpandRectIgnoringBordersToTileBoundsWithBorders( + const gfx::Rect& rect) const; gfx::Rect ExpandRectToTileBounds(const gfx::Rect& rect) const; gfx::Rect TileBounds(int i, int j) const; diff --git a/cc/base/tiling_data_unittest.cc b/cc/base/tiling_data_unittest.cc index 84d9e79..0bf601a 100644 --- a/cc/base/tiling_data_unittest.cc +++ b/cc/base/tiling_data_unittest.cc @@ -2133,34 +2133,40 @@ TEST_P(TilingDataTest, SetMaxTextureSizeBorders) { EXPECT_EQ(10, data.num_tiles_y()); } -TEST_P(TilingDataTest, ExpandRectToTileBoundsWithBordersEmpty) { +TEST_P(TilingDataTest, ExpandRectIgnoringBordersToTileBoundsWithBordersEmpty) { gfx::Point origin = GetParam(); TilingData empty_total_size( gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(8, 8)), true); EXPECT_RECT_EQ( gfx::Rect(), - empty_total_size.ExpandRectToTileBoundsWithBorders(gfx::Rect())); - EXPECT_RECT_EQ(gfx::Rect(), - empty_total_size.ExpandRectToTileBoundsWithBorders( - gfx::Rect(100, 100, 100, 100))); - EXPECT_RECT_EQ(gfx::Rect(), - empty_total_size.ExpandRectToTileBoundsWithBorders( - gfx::Rect(0, 0, 100, 100))); + empty_total_size.ExpandRectIgnoringBordersToTileBoundsWithBorders( + gfx::Rect())); + EXPECT_RECT_EQ( + gfx::Rect(), + empty_total_size.ExpandRectIgnoringBordersToTileBoundsWithBorders( + gfx::Rect(100, 100, 100, 100))); + EXPECT_RECT_EQ( + gfx::Rect(), + empty_total_size.ExpandRectIgnoringBordersToTileBoundsWithBorders( + gfx::Rect(0, 0, 100, 100))); TilingData empty_max_texture_size( gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(0, 0)), true); EXPECT_RECT_EQ( gfx::Rect(), - empty_max_texture_size.ExpandRectToTileBoundsWithBorders(gfx::Rect())); - EXPECT_RECT_EQ(gfx::Rect(), - empty_max_texture_size.ExpandRectToTileBoundsWithBorders( - gfx::Rect(100, 100, 100, 100))); - EXPECT_RECT_EQ(gfx::Rect(), - empty_max_texture_size.ExpandRectToTileBoundsWithBorders( - gfx::Rect(0, 0, 100, 100))); + empty_max_texture_size.ExpandRectIgnoringBordersToTileBoundsWithBorders( + gfx::Rect())); + EXPECT_RECT_EQ( + gfx::Rect(), + empty_max_texture_size.ExpandRectIgnoringBordersToTileBoundsWithBorders( + gfx::Rect(100, 100, 100, 100))); + EXPECT_RECT_EQ( + gfx::Rect(), + empty_max_texture_size.ExpandRectIgnoringBordersToTileBoundsWithBorders( + gfx::Rect(0, 0, 100, 100))); } -TEST_P(TilingDataTest, ExpandRectToTileBoundsWithBorders) { +TEST_P(TilingDataTest, ExpandRectIgnoringBordersToTileBoundsWithBorders) { gfx::Point origin = GetParam(); TilingData data(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(16, 32)), true); @@ -2168,40 +2174,46 @@ TEST_P(TilingDataTest, ExpandRectToTileBoundsWithBorders) { gfx::Rect at_origin_src(origin, gfx::Size(1, 1)); gfx::Rect at_origin_result(data.TileBoundsWithBorder(0, 0)); EXPECT_NE(at_origin_src, at_origin_result); - EXPECT_RECT_EQ(at_origin_result, - data.ExpandRectToTileBoundsWithBorders(at_origin_src)); + EXPECT_RECT_EQ( + at_origin_result, + data.ExpandRectIgnoringBordersToTileBoundsWithBorders(at_origin_src)); // Arbitrary internal rect. gfx::Rect rect_src(origin.x() + 6, origin.y() + 6, 1, 3); // Tile 2, 2 => gfx::Rect(4, 4, 4, 4) - // Tile 3, 4 => gfx::Rect(6, 8, 4, 4) + // Tile 2, 3 => gfx::Rect(4, 6, 4, 4) gfx::Rect rect_result(gfx::UnionRects(data.TileBoundsWithBorder(2, 2), - data.TileBoundsWithBorder(3, 4))); + data.TileBoundsWithBorder(2, 3))); EXPECT_NE(rect_src, rect_result); - EXPECT_RECT_EQ(rect_result, data.ExpandRectToTileBoundsWithBorders(rect_src)); + EXPECT_RECT_EQ( + rect_result, + data.ExpandRectIgnoringBordersToTileBoundsWithBorders(rect_src)); - // On tile bounds rounds up to next tile (since border overlaps). + // On tile bounds does not round up to next tile (ignores the border). gfx::Rect border_rect_src( gfx::UnionRects(data.TileBounds(1, 2), data.TileBounds(3, 4))); gfx::Rect border_rect_result(gfx::UnionRects( - data.TileBoundsWithBorder(0, 1), data.TileBoundsWithBorder(4, 5))); - EXPECT_RECT_EQ(border_rect_result, - data.ExpandRectToTileBoundsWithBorders(border_rect_src)); + data.TileBoundsWithBorder(1, 2), data.TileBoundsWithBorder(3, 4))); + EXPECT_RECT_EQ( + border_rect_result, + data.ExpandRectIgnoringBordersToTileBoundsWithBorders(border_rect_src)); // Equal to tiling rect. EXPECT_RECT_EQ(data.tiling_rect(), - data.ExpandRectToTileBoundsWithBorders(data.tiling_rect())); + data.ExpandRectIgnoringBordersToTileBoundsWithBorders( + data.tiling_rect())); // Containing, but larger than tiling rect. EXPECT_RECT_EQ(data.tiling_rect(), - data.ExpandRectToTileBoundsWithBorders( + data.ExpandRectIgnoringBordersToTileBoundsWithBorders( gfx::Rect(origin, gfx::Size(100, 100)))); // Non-intersecting with tiling rect. gfx::Rect non_intersect(origin.x() + 200, origin.y() + 200, 100, 100); EXPECT_FALSE(non_intersect.Intersects(data.tiling_rect())); - EXPECT_RECT_EQ(gfx::Rect(), - data.ExpandRectToTileBoundsWithBorders(non_intersect)); + EXPECT_RECT_EQ( + gfx::Rect(), + data.ExpandRectIgnoringBordersToTileBoundsWithBorders(non_intersect)); TilingData data2(gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(32, 64)), true); @@ -2209,7 +2221,8 @@ TEST_P(TilingDataTest, ExpandRectToTileBoundsWithBorders) { gfx::Rect inner_rect_src(data2.TileBounds(1, 1)); inner_rect_src.Inset(data2.border_texels(), data.border_texels()); gfx::Rect inner_rect_result(data2.TileBoundsWithBorder(1, 1)); - gfx::Rect expanded = data2.ExpandRectToTileBoundsWithBorders(inner_rect_src); + gfx::Rect expanded = + data2.ExpandRectIgnoringBordersToTileBoundsWithBorders(inner_rect_src); EXPECT_EQ(inner_rect_result.ToString(), expanded.ToString()); } |