OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Because the unit tests for gfx::Image are spread across multiple | 5 // Because the unit tests for gfx::Image are spread across multiple |
6 // implementation files, this header contains the reusable components. | 6 // implementation files, this header contains the reusable components. |
7 | 7 |
8 #include "ui/gfx/image/image_unittest_util.h" | 8 #include "ui/gfx/image/image_unittest_util.h" |
9 | 9 |
10 #include <cmath> | 10 #include <cmath> |
(...skipping 30 matching lines...) Expand all Loading... |
41 bool ColorsClose(SkColor color1, SkColor color2) { | 41 bool ColorsClose(SkColor color1, SkColor color2) { |
42 // Be tolerant of floating point rounding and lossy color space conversions. | 42 // Be tolerant of floating point rounding and lossy color space conversions. |
43 return ColorComponentsClose(SkColorGetR(color1), SkColorGetR(color2)) && | 43 return ColorComponentsClose(SkColorGetR(color1), SkColorGetR(color2)) && |
44 ColorComponentsClose(SkColorGetG(color1), SkColorGetG(color2)) && | 44 ColorComponentsClose(SkColorGetG(color1), SkColorGetG(color2)) && |
45 ColorComponentsClose(SkColorGetB(color1), SkColorGetB(color2)) && | 45 ColorComponentsClose(SkColorGetB(color1), SkColorGetB(color2)) && |
46 ColorComponentsClose(SkColorGetA(color1), SkColorGetA(color2)); | 46 ColorComponentsClose(SkColorGetA(color1), SkColorGetA(color2)); |
47 } | 47 } |
48 | 48 |
49 } // namespace | 49 } // namespace |
50 | 50 |
51 std::vector<ui::ScaleFactor> Get1xAnd2xScaleFactors() { | 51 std::vector<float> Get1xAnd2xScales() { |
52 std::vector<ui::ScaleFactor> scale_factors; | 52 std::vector<float> scales; |
53 scale_factors.push_back(ui::SCALE_FACTOR_100P); | 53 scales.push_back(1.0f); |
54 scale_factors.push_back(ui::SCALE_FACTOR_200P); | 54 scales.push_back(2.0f); |
55 return scale_factors; | 55 return scales; |
56 } | 56 } |
57 | 57 |
58 const SkBitmap CreateBitmap(int width, int height) { | 58 const SkBitmap CreateBitmap(int width, int height) { |
59 SkBitmap bitmap; | 59 SkBitmap bitmap; |
60 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); | 60 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
61 bitmap.allocPixels(); | 61 bitmap.allocPixels(); |
62 bitmap.eraseRGB(0, 255, 0); | 62 bitmap.eraseRGB(0, 255, 0); |
63 return bitmap; | 63 return bitmap; |
64 } | 64 } |
65 | 65 |
(...skipping 16 matching lines...) Expand all Loading... |
82 return gfx::Image::CreateFrom1xBitmap(CreateBitmap(width, height)); | 82 return gfx::Image::CreateFrom1xBitmap(CreateBitmap(width, height)); |
83 } | 83 } |
84 | 84 |
85 bool IsEqual(const gfx::Image& img1, const gfx::Image& img2) { | 85 bool IsEqual(const gfx::Image& img1, const gfx::Image& img2) { |
86 std::vector<gfx::ImageSkiaRep> img1_reps = img1.AsImageSkia().image_reps(); | 86 std::vector<gfx::ImageSkiaRep> img1_reps = img1.AsImageSkia().image_reps(); |
87 gfx::ImageSkia image_skia2 = img2.AsImageSkia(); | 87 gfx::ImageSkia image_skia2 = img2.AsImageSkia(); |
88 if (image_skia2.image_reps().size() != img1_reps.size()) | 88 if (image_skia2.image_reps().size() != img1_reps.size()) |
89 return false; | 89 return false; |
90 | 90 |
91 for (size_t i = 0; i < img1_reps.size(); ++i) { | 91 for (size_t i = 0; i < img1_reps.size(); ++i) { |
92 ui::ScaleFactor scale_factor = img1_reps[i].scale_factor(); | 92 float scale = img1_reps[i].scale(); |
93 const gfx::ImageSkiaRep& image_rep2 = image_skia2.GetRepresentation( | 93 const gfx::ImageSkiaRep& image_rep2 = image_skia2.GetRepresentation(scale); |
94 scale_factor); | 94 if (image_rep2.scale() != scale || |
95 if (image_rep2.scale_factor() != scale_factor || | |
96 !IsEqual(img1_reps[i].sk_bitmap(), image_rep2.sk_bitmap())) { | 95 !IsEqual(img1_reps[i].sk_bitmap(), image_rep2.sk_bitmap())) { |
97 return false; | 96 return false; |
98 } | 97 } |
99 } | 98 } |
100 return true; | 99 return true; |
101 } | 100 } |
102 | 101 |
103 bool IsEqual(const SkBitmap& bmp1, const SkBitmap& bmp2) { | 102 bool IsEqual(const SkBitmap& bmp1, const SkBitmap& bmp2) { |
104 if (bmp1.isNull() && bmp2.isNull()) | 103 if (bmp1.isNull() && bmp2.isNull()) |
105 return true; | 104 return true; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 EXPECT_LE(16, bitmap.width()); | 142 EXPECT_LE(16, bitmap.width()); |
144 EXPECT_LE(16, bitmap.height()); | 143 EXPECT_LE(16, bitmap.height()); |
145 SkAutoLockPixels auto_lock(bitmap); | 144 SkAutoLockPixels auto_lock(bitmap); |
146 CheckColors(bitmap.getColor(10, 10), SK_ColorRED); | 145 CheckColors(bitmap.getColor(10, 10), SK_ColorRED); |
147 } | 146 } |
148 | 147 |
149 bool ImageSkiaStructureMatches( | 148 bool ImageSkiaStructureMatches( |
150 const gfx::ImageSkia& image_skia, | 149 const gfx::ImageSkia& image_skia, |
151 int width, | 150 int width, |
152 int height, | 151 int height, |
153 const std::vector<ui::ScaleFactor>& scale_factors) { | 152 const std::vector<float>& scales) { |
154 if (image_skia.isNull() || | 153 if (image_skia.isNull() || |
155 image_skia.width() != width || | 154 image_skia.width() != width || |
156 image_skia.height() != height || | 155 image_skia.height() != height || |
157 image_skia.image_reps().size() != scale_factors.size()) { | 156 image_skia.image_reps().size() != scales.size()) { |
158 return false; | 157 return false; |
159 } | 158 } |
160 | 159 |
161 for (size_t i = 0; i < scale_factors.size(); ++i) { | 160 for (size_t i = 0; i < scales.size(); ++i) { |
162 gfx::ImageSkiaRep image_rep = | 161 gfx::ImageSkiaRep image_rep = |
163 image_skia.GetRepresentation(scale_factors[i]); | 162 image_skia.GetRepresentation(scales[i]); |
164 if (image_rep.is_null() || | 163 if (image_rep.is_null() || image_rep.scale() != scales[i]) |
165 image_rep.scale_factor() != scale_factors[i]) | |
166 return false; | 164 return false; |
167 | 165 |
168 float scale = ui::GetScaleFactorScale(scale_factors[i]); | 166 if (image_rep.pixel_width() != static_cast<int>(width * scales[i]) || |
169 if (image_rep.pixel_width() != static_cast<int>(width * scale) || | 167 image_rep.pixel_height() != static_cast<int>(height * scales[i])) { |
170 image_rep.pixel_height() != static_cast<int>(height * scale)) { | |
171 return false; | 168 return false; |
172 } | 169 } |
173 } | 170 } |
174 return true; | 171 return true; |
175 } | 172 } |
176 | 173 |
177 bool IsEmpty(const gfx::Image& image) { | 174 bool IsEmpty(const gfx::Image& image) { |
178 const SkBitmap& bmp = *image.ToSkBitmap(); | 175 const SkBitmap& bmp = *image.ToSkBitmap(); |
179 return bmp.isNull() || | 176 return bmp.isNull() || |
180 (bmp.width() == 0 && bmp.height() == 0); | 177 (bmp.width() == 0 && bmp.height() == 0); |
181 } | 178 } |
182 | 179 |
183 PlatformImage CreatePlatformImage() { | 180 PlatformImage CreatePlatformImage() { |
184 const SkBitmap bitmap(CreateBitmap(25, 25)); | 181 const SkBitmap bitmap(CreateBitmap(25, 25)); |
185 #if defined(OS_IOS) | 182 #if defined(OS_IOS) |
186 ui::ScaleFactor scale_factor = ui::GetMaxScaleFactor(); | 183 float scale = ImageSkia::GetSupportedScales().back(); |
187 float scale = ui::GetScaleFactorScale(scale_factor); | |
188 | 184 |
189 base::ScopedCFTypeRef<CGColorSpaceRef> color_space( | 185 base::ScopedCFTypeRef<CGColorSpaceRef> color_space( |
190 CGColorSpaceCreateDeviceRGB()); | 186 CGColorSpaceCreateDeviceRGB()); |
191 UIImage* image = | 187 UIImage* image = |
192 gfx::SkBitmapToUIImageWithColorSpace(bitmap, scale, color_space); | 188 gfx::SkBitmapToUIImageWithColorSpace(bitmap, scale, color_space); |
193 base::mac::NSObjectRetain(image); | 189 base::mac::NSObjectRetain(image); |
194 return image; | 190 return image; |
195 #elif defined(OS_MACOSX) | 191 #elif defined(OS_MACOSX) |
196 NSImage* image = gfx::SkBitmapToNSImage(bitmap); | 192 NSImage* image = gfx::SkBitmapToNSImage(bitmap); |
197 base::mac::NSObjectRetain(image); | 193 base::mac::NSObjectRetain(image); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 bool PlatformImagesEqual(PlatformImage image1, PlatformImage image2) { | 274 bool PlatformImagesEqual(PlatformImage image1, PlatformImage image2) { |
279 #if defined(OS_MACOSX) || defined(TOOLKIT_GTK) | 275 #if defined(OS_MACOSX) || defined(TOOLKIT_GTK) |
280 return image1 == image2; | 276 return image1 == image2; |
281 #else | 277 #else |
282 return image1.BackedBySameObjectAs(image2); | 278 return image1.BackedBySameObjectAs(image2); |
283 #endif | 279 #endif |
284 } | 280 } |
285 | 281 |
286 } // namespace test | 282 } // namespace test |
287 } // namespace gfx | 283 } // namespace gfx |
OLD | NEW |