OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <vector> | 7 #include <vector> |
8 | 8 |
9 #include "cc/test/geometry_test_utils.h" | 9 #include "cc/test/geometry_test_utils.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 | 11 |
12 namespace cc { | 12 namespace cc { |
13 namespace { | 13 namespace { |
14 | 14 |
15 int NumTiles( | 15 int NumTiles( |
16 gfx::Size max_texture_size, | 16 const gfx::Size& max_texture_size, |
17 gfx::Size total_size, | 17 const gfx::Size& total_size, |
18 bool has_border_texels) { | 18 bool has_border_texels) { |
19 TilingData tiling(max_texture_size, total_size, has_border_texels); | 19 TilingData tiling(max_texture_size, total_size, has_border_texels); |
20 int num_tiles = tiling.num_tiles_x() * tiling.num_tiles_y(); | 20 int num_tiles = tiling.num_tiles_x() * tiling.num_tiles_y(); |
21 | 21 |
22 // Assert no overflow. | 22 // Assert no overflow. |
23 EXPECT_GE(num_tiles, 0); | 23 EXPECT_GE(num_tiles, 0); |
24 if (num_tiles > 0) | 24 if (num_tiles > 0) |
25 EXPECT_EQ(num_tiles / tiling.num_tiles_x(), tiling.num_tiles_y()); | 25 EXPECT_EQ(num_tiles / tiling.num_tiles_x(), tiling.num_tiles_y()); |
26 | 26 |
27 return num_tiles; | 27 return num_tiles; |
28 } | 28 } |
29 | 29 |
30 int XIndex( | 30 int XIndex( |
31 gfx::Size max_texture_size, | 31 const gfx::Size& max_texture_size, |
32 gfx::Size total_size, | 32 const gfx::Size& total_size, |
33 bool has_border_texels, | 33 bool has_border_texels, |
34 int x_coord) { | 34 int x_coord) { |
35 TilingData tiling(max_texture_size, total_size, has_border_texels); | 35 TilingData tiling(max_texture_size, total_size, has_border_texels); |
36 return tiling.TileXIndexFromSrcCoord(x_coord); | 36 return tiling.TileXIndexFromSrcCoord(x_coord); |
37 } | 37 } |
38 | 38 |
39 int YIndex( | 39 int YIndex( |
40 gfx::Size max_texture_size, | 40 const gfx::Size& max_texture_size, |
41 gfx::Size total_size, | 41 const gfx::Size& total_size, |
42 bool has_border_texels, | 42 bool has_border_texels, |
43 int y_coord) { | 43 int y_coord) { |
44 TilingData tiling(max_texture_size, total_size, has_border_texels); | 44 TilingData tiling(max_texture_size, total_size, has_border_texels); |
45 return tiling.TileYIndexFromSrcCoord(y_coord); | 45 return tiling.TileYIndexFromSrcCoord(y_coord); |
46 } | 46 } |
47 | 47 |
48 int MinBorderXIndex( | 48 int MinBorderXIndex( |
49 gfx::Size max_texture_size, | 49 const gfx::Size& max_texture_size, |
50 gfx::Size total_size, | 50 const gfx::Size& total_size, |
51 bool has_border_texels, | 51 bool has_border_texels, |
52 int x_coord) { | 52 int x_coord) { |
53 TilingData tiling(max_texture_size, total_size, has_border_texels); | 53 TilingData tiling(max_texture_size, total_size, has_border_texels); |
54 return tiling.FirstBorderTileXIndexFromSrcCoord(x_coord); | 54 return tiling.FirstBorderTileXIndexFromSrcCoord(x_coord); |
55 } | 55 } |
56 | 56 |
57 int MinBorderYIndex( | 57 int MinBorderYIndex( |
58 gfx::Size max_texture_size, | 58 const gfx::Size& max_texture_size, |
59 gfx::Size total_size, | 59 const gfx::Size& total_size, |
60 bool has_border_texels, | 60 bool has_border_texels, |
61 int y_coord) { | 61 int y_coord) { |
62 TilingData tiling(max_texture_size, total_size, has_border_texels); | 62 TilingData tiling(max_texture_size, total_size, has_border_texels); |
63 return tiling.FirstBorderTileYIndexFromSrcCoord(y_coord); | 63 return tiling.FirstBorderTileYIndexFromSrcCoord(y_coord); |
64 } | 64 } |
65 | 65 |
66 int MaxBorderXIndex( | 66 int MaxBorderXIndex( |
67 gfx::Size max_texture_size, | 67 const gfx::Size& max_texture_size, |
68 gfx::Size total_size, | 68 const gfx::Size& total_size, |
69 bool has_border_texels, | 69 bool has_border_texels, |
70 int x_coord) { | 70 int x_coord) { |
71 TilingData tiling(max_texture_size, total_size, has_border_texels); | 71 TilingData tiling(max_texture_size, total_size, has_border_texels); |
72 return tiling.LastBorderTileXIndexFromSrcCoord(x_coord); | 72 return tiling.LastBorderTileXIndexFromSrcCoord(x_coord); |
73 } | 73 } |
74 | 74 |
75 int MaxBorderYIndex( | 75 int MaxBorderYIndex( |
76 gfx::Size max_texture_size, | 76 const gfx::Size& max_texture_size, |
77 gfx::Size total_size, | 77 const gfx::Size& total_size, |
78 bool has_border_texels, | 78 bool has_border_texels, |
79 int y_coord) { | 79 int y_coord) { |
80 TilingData tiling(max_texture_size, total_size, has_border_texels); | 80 TilingData tiling(max_texture_size, total_size, has_border_texels); |
81 return tiling.LastBorderTileYIndexFromSrcCoord(y_coord); | 81 return tiling.LastBorderTileYIndexFromSrcCoord(y_coord); |
82 } | 82 } |
83 | 83 |
84 int PosX( | 84 int PosX( |
85 gfx::Size max_texture_size, | 85 const gfx::Size& max_texture_size, |
86 gfx::Size total_size, | 86 const gfx::Size& total_size, |
87 bool has_border_texels, | 87 bool has_border_texels, |
88 int x_index) { | 88 int x_index) { |
89 TilingData tiling(max_texture_size, total_size, has_border_texels); | 89 TilingData tiling(max_texture_size, total_size, has_border_texels); |
90 return tiling.TilePositionX(x_index); | 90 return tiling.TilePositionX(x_index); |
91 } | 91 } |
92 | 92 |
93 int PosY( | 93 int PosY( |
94 gfx::Size max_texture_size, | 94 const gfx::Size& max_texture_size, |
95 gfx::Size total_size, | 95 const gfx::Size& total_size, |
96 bool has_border_texels, | 96 bool has_border_texels, |
97 int y_index) { | 97 int y_index) { |
98 TilingData tiling(max_texture_size, total_size, has_border_texels); | 98 TilingData tiling(max_texture_size, total_size, has_border_texels); |
99 return tiling.TilePositionY(y_index); | 99 return tiling.TilePositionY(y_index); |
100 } | 100 } |
101 | 101 |
102 int SizeX( | 102 int SizeX( |
103 gfx::Size max_texture_size, | 103 const gfx::Size& max_texture_size, |
104 gfx::Size total_size, | 104 const gfx::Size& total_size, |
105 bool has_border_texels, | 105 bool has_border_texels, |
106 int x_index) { | 106 int x_index) { |
107 TilingData tiling(max_texture_size, total_size, has_border_texels); | 107 TilingData tiling(max_texture_size, total_size, has_border_texels); |
108 return tiling.TileSizeX(x_index); | 108 return tiling.TileSizeX(x_index); |
109 } | 109 } |
110 | 110 |
111 int SizeY( | 111 int SizeY( |
112 gfx::Size max_texture_size, | 112 const gfx::Size& max_texture_size, |
113 gfx::Size total_size, | 113 const gfx::Size& total_size, |
114 bool has_border_texels, | 114 bool has_border_texels, |
115 int y_index) { | 115 int y_index) { |
116 TilingData tiling(max_texture_size, total_size, has_border_texels); | 116 TilingData tiling(max_texture_size, total_size, has_border_texels); |
117 return tiling.TileSizeY(y_index); | 117 return tiling.TileSizeY(y_index); |
118 } | 118 } |
119 | 119 |
120 TEST(TilingDataTest, NumTiles_NoTiling) { | 120 TEST(TilingDataTest, NumTiles_NoTiling) { |
121 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), false)); | 121 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), false)); |
122 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(15, 15), true)); | 122 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(15, 15), true)); |
123 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), true)); | 123 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), true)); |
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1162 TestDiff(big_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); | 1162 TestDiff(big_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); |
1163 } | 1163 } |
1164 | 1164 |
1165 TEST(TilingDataTest, DifferenceIteratorNoTiles) { | 1165 TEST(TilingDataTest, DifferenceIteratorNoTiles) { |
1166 TilingData data(gfx::Size(100, 100), gfx::Size(), false); | 1166 TilingData data(gfx::Size(100, 100), gfx::Size(), false); |
1167 TestDiff(data, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 5, 5), 0); | 1167 TestDiff(data, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 5, 5), 0); |
1168 } | 1168 } |
1169 | 1169 |
1170 } // namespace | 1170 } // namespace |
1171 } // namespace cc | 1171 } // namespace cc |
OLD | NEW |