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

Side by Side Diff: cc/tiles/mipmap_util_unittest.cc

Issue 2107883003: Revert of Add display-resolution caching to GPU IDC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@drt
Patch Set: Created 4 years, 5 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/tiles/mipmap_util.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/tiles/mipmap_util.h" 5 #include "cc/tiles/mipmap_util.h"
6 6
7 #include "cc/test/geometry_test_utils.h" 7 #include "cc/test/geometry_test_utils.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace cc { 10 namespace cc {
11 namespace { 11 namespace {
12 12
13 // Ensures that a basic scale works. 13 // Ensures that a basic scale works.
14 TEST(MipMapUtilTest, Basic) { 14 TEST(MipMapUtilTest, Basic) {
15 const gfx::Size src_size(64, 64); 15 const gfx::Size src_size(64, 64);
16 const gfx::Size target_size(16, 16); 16 const gfx::Size target_size(16, 16);
17 const int target_level = 2; 17 const int target_level = 2;
18 const SkSize expected_scale = SkSize::Make(0.25f, 0.25f); 18 const SkSize expected_scale = SkSize::Make(0.25f, 0.25f);
19 19
20 EXPECT_EQ(target_level, MipMapUtil::GetLevelForSize(src_size, target_size)); 20 EXPECT_EQ(target_level, MipMapUtil::GetLevelForSize(src_size, target_size));
21 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForLevel( 21 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForLevel(
22 src_size, target_level)); 22 src_size, target_level));
23 EXPECT_SIZE_EQ(target_size,
24 MipMapUtil::GetSizeForLevel(src_size, target_level));
25 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForSize( 23 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForSize(
26 src_size, target_size)); 24 src_size, target_size));
27 } 25 }
28 26
29 // Ensures that a no-op scale works. 27 // Ensures that a no-op scale works.
30 TEST(MipMapUtilTest, NoScale) { 28 TEST(MipMapUtilTest, NoScale) {
31 const gfx::Size src_size(64, 64); 29 const gfx::Size src_size(64, 64);
32 const gfx::Size target_size(64, 64); 30 const gfx::Size target_size(64, 64);
33 const int target_level = 0; 31 const int target_level = 0;
34 const SkSize expected_scale = SkSize::Make(1, 1); 32 const SkSize expected_scale = SkSize::Make(1, 1);
35 33
36 EXPECT_EQ(target_level, MipMapUtil::GetLevelForSize(src_size, target_size)); 34 EXPECT_EQ(target_level, MipMapUtil::GetLevelForSize(src_size, target_size));
37 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForLevel( 35 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForLevel(
38 src_size, target_level)); 36 src_size, target_level));
39 EXPECT_SIZE_EQ(target_size,
40 MipMapUtil::GetSizeForLevel(src_size, target_level));
41 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForSize( 37 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForSize(
42 src_size, target_size)); 38 src_size, target_size));
43 } 39 }
44 40
45 // Ensures that we return the base mip level if the caller requests an upscale. 41 // Ensures that we return the base mip level if the caller requests an upscale.
46 TEST(MipMapUtilTest, Upscale) { 42 TEST(MipMapUtilTest, Upscale) {
47 const gfx::Size src_size(64, 64); 43 const gfx::Size src_size(64, 64);
48 const gfx::Size target_size(128, 128); 44 const gfx::Size target_size(128, 128);
49 const SkSize result_size = SkSize::Make(1, 1); 45 const SkSize result_size = SkSize::Make(1, 1);
50 const int result_level = 0; 46 const int result_level = 0;
51 47
52 EXPECT_EQ(result_level, MipMapUtil::GetLevelForSize(src_size, target_size)); 48 EXPECT_EQ(result_level, MipMapUtil::GetLevelForSize(src_size, target_size));
53 EXPECT_FLOAT_SIZE_EQ(result_size, MipMapUtil::GetScaleAdjustmentForSize( 49 EXPECT_FLOAT_SIZE_EQ(result_size, MipMapUtil::GetScaleAdjustmentForSize(
54 src_size, target_size)); 50 src_size, target_size));
55 EXPECT_SIZE_EQ(src_size, MipMapUtil::GetSizeForLevel(src_size, result_level));
56 } 51 }
57 52
58 // Ensures that the maximum mip level GetLevelForSize will ever return is 30. 53 // Ensures that the maximum mip level GetLevelForSize will ever return is 30.
59 TEST(MipMapUtilTest, MaxMipLevel) { 54 TEST(MipMapUtilTest, MaxMipLevel) {
60 int max_mip_level = 55 int max_mip_level =
61 MipMapUtil::GetLevelForSize(gfx::Size(std::numeric_limits<int>::max(), 56 MipMapUtil::GetLevelForSize(gfx::Size(std::numeric_limits<int>::max(),
62 std::numeric_limits<int>::max()), 57 std::numeric_limits<int>::max()),
63 gfx::Size(1, 1)); 58 gfx::Size(1, 1));
64 EXPECT_EQ(max_mip_level, 30); 59 EXPECT_EQ(max_mip_level, 30);
65 } 60 }
66 61
67 // Ensures that we handle mips of a non-square image correctly (the smaller side 62 // Ensures that we handle mips of a non-square image correctly (the smaller side
68 // should never be smaller than 1). 63 // should never be smaller than 1).
69 TEST(MipMapUtilTest, NonSquare) { 64 TEST(MipMapUtilTest, NonSquare) {
70 const gfx::Size src_size(1024, 1); 65 const gfx::Size src_size(1024, 1);
71 const gfx::Size target_size(64, 1); 66 const gfx::Size target_size(64, 1);
72 const int target_level = 4; 67 const int target_level = 4;
73 const SkSize expected_scale = SkSize::Make( 68 const SkSize expected_scale = SkSize::Make(
74 static_cast<float>(target_size.width()) / src_size.width(), 1); 69 static_cast<float>(target_size.width()) / src_size.width(), 1);
75 70
76 EXPECT_EQ(target_level, MipMapUtil::GetLevelForSize(src_size, target_size)); 71 EXPECT_EQ(target_level, MipMapUtil::GetLevelForSize(src_size, target_size));
77 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForLevel( 72 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForLevel(
78 src_size, target_level)); 73 src_size, target_level));
79 EXPECT_SIZE_EQ(target_size,
80 MipMapUtil::GetSizeForLevel(src_size, target_level));
81 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForSize( 74 EXPECT_FLOAT_SIZE_EQ(expected_scale, MipMapUtil::GetScaleAdjustmentForSize(
82 src_size, target_size)); 75 src_size, target_size));
83 } 76 }
84 77
85 // Ensures that we handle rounding images correctly. 78 // Ensures that we handle rounding images correctly.
86 TEST(MipMapUtilTest, Rounding) { 79 TEST(MipMapUtilTest, Rounding) {
87 const gfx::Size src_size(49, 49); 80 const gfx::Size src_size(49, 49);
88 const gfx::Size target_size_larger(25, 25); 81 const gfx::Size target_size_larger(25, 25);
89 const gfx::Size target_size_smaller(24, 24); 82 const gfx::Size target_size_smaller(24, 24);
90 const int target_level_larger = 0; 83 const int target_level_larger = 0;
91 const int target_level_smaller = 1; 84 const int target_level_smaller = 1;
92 const SkSize expected_scale_larger = SkSize::Make(1, 1); 85 const SkSize expected_scale_larger = SkSize::Make(1, 1);
93 const SkSize expected_scale_smaller = SkSize::Make( 86 const SkSize expected_scale_smaller = SkSize::Make(
94 static_cast<float>(target_size_smaller.width()) / src_size.width(), 87 static_cast<float>(target_size_smaller.width()) / src_size.width(),
95 static_cast<float>(target_size_smaller.height()) / src_size.height()); 88 static_cast<float>(target_size_smaller.height()) / src_size.height());
96 89
97 EXPECT_EQ(target_level_larger, 90 EXPECT_EQ(target_level_larger,
98 MipMapUtil::GetLevelForSize(src_size, target_size_larger)); 91 MipMapUtil::GetLevelForSize(src_size, target_size_larger));
99 EXPECT_EQ(target_level_smaller, 92 EXPECT_EQ(target_level_smaller,
100 MipMapUtil::GetLevelForSize(src_size, target_size_smaller)); 93 MipMapUtil::GetLevelForSize(src_size, target_size_smaller));
101 EXPECT_FLOAT_SIZE_EQ( 94 EXPECT_FLOAT_SIZE_EQ(
102 expected_scale_larger, 95 expected_scale_larger,
103 MipMapUtil::GetScaleAdjustmentForLevel(src_size, target_level_larger)); 96 MipMapUtil::GetScaleAdjustmentForLevel(src_size, target_level_larger));
104 EXPECT_FLOAT_SIZE_EQ( 97 EXPECT_FLOAT_SIZE_EQ(
105 expected_scale_smaller, 98 expected_scale_smaller,
106 MipMapUtil::GetScaleAdjustmentForLevel(src_size, target_level_smaller)); 99 MipMapUtil::GetScaleAdjustmentForLevel(src_size, target_level_smaller));
107 EXPECT_SIZE_EQ(src_size,
108 MipMapUtil::GetSizeForLevel(src_size, target_level_larger));
109 EXPECT_SIZE_EQ(target_size_smaller,
110 MipMapUtil::GetSizeForLevel(src_size, target_level_smaller));
111 EXPECT_FLOAT_SIZE_EQ( 100 EXPECT_FLOAT_SIZE_EQ(
112 expected_scale_larger, 101 expected_scale_larger,
113 MipMapUtil::GetScaleAdjustmentForSize(src_size, target_size_larger)); 102 MipMapUtil::GetScaleAdjustmentForSize(src_size, target_size_larger));
114 EXPECT_FLOAT_SIZE_EQ( 103 EXPECT_FLOAT_SIZE_EQ(
115 expected_scale_smaller, 104 expected_scale_smaller,
116 MipMapUtil::GetScaleAdjustmentForSize(src_size, target_size_smaller)); 105 MipMapUtil::GetScaleAdjustmentForSize(src_size, target_size_smaller));
117 } 106 }
118 107
119 // Ensures that we return invalid values correctly. 108 // Ensures that we return invalid values correctly.
120 TEST(MipMapUtilTest, Invalid) { 109 TEST(MipMapUtilTest, Invalid) {
121 const gfx::Size valid_size(1024, 1024); 110 const gfx::Size valid_size(1024, 1024);
122 const gfx::Size invalid_size(0, 1024); 111 const gfx::Size invalid_size(0, 1024);
123 const gfx::Size invalid_result_size(-1, -1); 112 const SkSize invalid_result_size = SkSize::Make(-1, -1);
124 const SkSize invalid_float_result_size = SkSize::Make(-1, -1);
125 const int invalid_result_level = -1; 113 const int invalid_result_level = -1;
126 114
127 EXPECT_EQ(invalid_result_level, 115 EXPECT_EQ(invalid_result_level,
128 MipMapUtil::GetLevelForSize(valid_size, invalid_size)); 116 MipMapUtil::GetLevelForSize(valid_size, invalid_size));
129 EXPECT_EQ(invalid_result_level, 117 EXPECT_EQ(invalid_result_level,
130 MipMapUtil::GetLevelForSize(invalid_size, valid_size)); 118 MipMapUtil::GetLevelForSize(invalid_size, valid_size));
131 EXPECT_FLOAT_SIZE_EQ( 119 EXPECT_FLOAT_SIZE_EQ(
132 invalid_float_result_size, 120 invalid_result_size,
133 MipMapUtil::GetScaleAdjustmentForSize(valid_size, invalid_size)); 121 MipMapUtil::GetScaleAdjustmentForSize(valid_size, invalid_size));
134 EXPECT_FLOAT_SIZE_EQ( 122 EXPECT_FLOAT_SIZE_EQ(
135 invalid_float_result_size, 123 invalid_result_size,
136 MipMapUtil::GetScaleAdjustmentForSize(invalid_size, valid_size)); 124 MipMapUtil::GetScaleAdjustmentForSize(invalid_size, valid_size));
137 EXPECT_SIZE_EQ(invalid_result_size, 125 EXPECT_FLOAT_SIZE_EQ(invalid_result_size,
138 MipMapUtil::GetSizeForLevel(valid_size, invalid_result_level));
139 EXPECT_SIZE_EQ(invalid_result_size,
140 MipMapUtil::GetSizeForLevel(invalid_size, 0));
141 EXPECT_FLOAT_SIZE_EQ(invalid_float_result_size,
142 MipMapUtil::GetScaleAdjustmentForLevel(invalid_size, 0)); 126 MipMapUtil::GetScaleAdjustmentForLevel(invalid_size, 0));
143 EXPECT_FLOAT_SIZE_EQ( 127 EXPECT_FLOAT_SIZE_EQ(
144 invalid_float_result_size, 128 invalid_result_size,
145 MipMapUtil::GetScaleAdjustmentForLevel(valid_size, invalid_result_level)); 129 MipMapUtil::GetScaleAdjustmentForLevel(valid_size, invalid_result_level));
146 } 130 }
147 131
148 } // namespace 132 } // namespace
149 } // namespace cc 133 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/mipmap_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698