OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "ui/gfx/nine_image_painter.h" | 5 #include "ui/gfx/nine_image_painter.h" |
6 | 6 |
7 #include "base/base64.h" | 7 #include "base/base64.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "ui/gfx/canvas.h" | 9 #include "ui/gfx/canvas.h" |
10 #include "ui/gfx/codec/png_codec.h" | 10 #include "ui/gfx/codec/png_codec.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 bool is_opaque = true; | 79 bool is_opaque = true; |
80 gfx::Canvas canvas(gfx::Size(100, 100), image_scale, is_opaque); | 80 gfx::Canvas canvas(gfx::Size(100, 100), image_scale, is_opaque); |
81 | 81 |
82 gfx::Vector2d offset(20, 10); | 82 gfx::Vector2d offset(20, 10); |
83 canvas.Translate(offset); | 83 canvas.Translate(offset); |
84 | 84 |
85 gfx::Rect bounds(0, 0, 50, 50); | 85 gfx::Rect bounds(0, 0, 50, 50); |
86 painter.Paint(&canvas, bounds); | 86 painter.Paint(&canvas, bounds); |
87 | 87 |
88 SkBitmap result; | 88 SkBitmap result; |
89 const SkISize size = canvas.sk_canvas()->getDeviceSize(); | 89 const SkISize size = canvas.sk_canvas()->getBaseLayerSize(); |
90 result.allocN32Pixels(size.width(), size.height()); | 90 result.allocN32Pixels(size.width(), size.height()); |
91 canvas.sk_canvas()->readPixels(&result, 0, 0); | 91 canvas.sk_canvas()->readPixels(&result, 0, 0); |
92 | 92 |
93 gfx::Vector2d paint_offset = | 93 gfx::Vector2d paint_offset = |
94 gfx::ToFlooredVector2d(gfx::ScaleVector2d(offset, image_scale)); | 94 gfx::ToFlooredVector2d(gfx::ScaleVector2d(offset, image_scale)); |
95 gfx::Rect green_rect = gfx::Rect(10, 10, 80, 80) + paint_offset; | 95 gfx::Rect green_rect = gfx::Rect(10, 10, 80, 80) + paint_offset; |
96 gfx::Rect outer_rect = gfx::Rect(100, 100) + paint_offset; | 96 gfx::Rect outer_rect = gfx::Rect(100, 100) + paint_offset; |
97 ExpectRedWithGreenRect(result, outer_rect, green_rect); | 97 ExpectRedWithGreenRect(result, outer_rect, green_rect); |
98 } | 98 } |
99 | 99 |
(...skipping 13 matching lines...) Expand all Loading... |
113 | 113 |
114 int image_scale = 1; | 114 int image_scale = 1; |
115 bool is_opaque = true; | 115 bool is_opaque = true; |
116 gfx::Canvas canvas(gfx::Size(3, 3), image_scale, is_opaque); | 116 gfx::Canvas canvas(gfx::Size(3, 3), image_scale, is_opaque); |
117 canvas.DrawColor(SK_ColorBLACK); | 117 canvas.DrawColor(SK_ColorBLACK); |
118 | 118 |
119 gfx::Rect bounds(1, 1, 1, 1); | 119 gfx::Rect bounds(1, 1, 1, 1); |
120 painter.Paint(&canvas, bounds); | 120 painter.Paint(&canvas, bounds); |
121 | 121 |
122 SkBitmap result; | 122 SkBitmap result; |
123 const SkISize size = canvas.sk_canvas()->getDeviceSize(); | 123 const SkISize size = canvas.sk_canvas()->getBaseLayerSize(); |
124 result.allocN32Pixels(size.width(), size.height()); | 124 result.allocN32Pixels(size.width(), size.height()); |
125 canvas.sk_canvas()->readPixels(&result, 0, 0); | 125 canvas.sk_canvas()->readPixels(&result, 0, 0); |
126 | 126 |
127 EXPECT_EQ(SK_ColorGREEN, result.getColor(1, 1)); | 127 EXPECT_EQ(SK_ColorGREEN, result.getColor(1, 1)); |
128 | 128 |
129 EXPECT_EQ(SK_ColorBLACK, result.getColor(0, 0)); | 129 EXPECT_EQ(SK_ColorBLACK, result.getColor(0, 0)); |
130 EXPECT_EQ(SK_ColorBLACK, result.getColor(0, 1)); | 130 EXPECT_EQ(SK_ColorBLACK, result.getColor(0, 1)); |
131 EXPECT_EQ(SK_ColorBLACK, result.getColor(0, 2)); | 131 EXPECT_EQ(SK_ColorBLACK, result.getColor(0, 2)); |
132 EXPECT_EQ(SK_ColorBLACK, result.getColor(1, 0)); | 132 EXPECT_EQ(SK_ColorBLACK, result.getColor(1, 0)); |
133 EXPECT_EQ(SK_ColorBLACK, result.getColor(1, 2)); | 133 EXPECT_EQ(SK_ColorBLACK, result.getColor(1, 2)); |
(...skipping 12 matching lines...) Expand all Loading... |
146 gfx::Insets insets(1, 1, 1, 1); | 146 gfx::Insets insets(1, 1, 1, 1); |
147 gfx::NineImagePainter painter(image, insets); | 147 gfx::NineImagePainter painter(image, insets); |
148 | 148 |
149 bool is_opaque = true; | 149 bool is_opaque = true; |
150 gfx::Canvas canvas(gfx::Size(10, 10), 1, is_opaque); | 150 gfx::Canvas canvas(gfx::Size(10, 10), 1, is_opaque); |
151 | 151 |
152 gfx::Rect bounds(1, 1, 10, 10); | 152 gfx::Rect bounds(1, 1, 10, 10); |
153 painter.Paint(&canvas, bounds); | 153 painter.Paint(&canvas, bounds); |
154 | 154 |
155 SkBitmap result; | 155 SkBitmap result; |
156 const SkISize size = canvas.sk_canvas()->getDeviceSize(); | 156 const SkISize size = canvas.sk_canvas()->getBaseLayerSize(); |
157 result.allocN32Pixels(size.width(), size.height()); | 157 result.allocN32Pixels(size.width(), size.height()); |
158 canvas.sk_canvas()->readPixels(&result, 0, 0); | 158 canvas.sk_canvas()->readPixels(&result, 0, 0); |
159 | 159 |
160 SkIRect green_rect = SkIRect::MakeLTRB(2, 2, 10, 10); | 160 SkIRect green_rect = SkIRect::MakeLTRB(2, 2, 10, 10); |
161 for (int y = 1; y < 10; y++) { | 161 for (int y = 1; y < 10; y++) { |
162 for (int x = 1; x < 10; x++) { | 162 for (int x = 1; x < 10; x++) { |
163 if (green_rect.contains(x, y)) { | 163 if (green_rect.contains(x, y)) { |
164 ASSERT_EQ(SK_ColorGREEN, result.getColor(x, y)); | 164 ASSERT_EQ(SK_ColorGREEN, result.getColor(x, y)); |
165 } else { | 165 } else { |
166 ASSERT_EQ(SK_ColorRED, result.getColor(x, y)); | 166 ASSERT_EQ(SK_ColorRED, result.getColor(x, y)); |
(...skipping 18 matching lines...) Expand all Loading... |
185 gfx::Canvas canvas(gfx::Size(400, 400), image_scale, is_opaque); | 185 gfx::Canvas canvas(gfx::Size(400, 400), image_scale, is_opaque); |
186 | 186 |
187 gfx::Vector2d offset(20, 10); | 187 gfx::Vector2d offset(20, 10); |
188 canvas.Translate(offset); | 188 canvas.Translate(offset); |
189 canvas.Scale(2, 1); | 189 canvas.Scale(2, 1); |
190 | 190 |
191 gfx::Rect bounds(0, 0, 50, 50); | 191 gfx::Rect bounds(0, 0, 50, 50); |
192 painter.Paint(&canvas, bounds); | 192 painter.Paint(&canvas, bounds); |
193 | 193 |
194 SkBitmap result; | 194 SkBitmap result; |
195 const SkISize size = canvas.sk_canvas()->getDeviceSize(); | 195 const SkISize size = canvas.sk_canvas()->getBaseLayerSize(); |
196 result.allocN32Pixels(size.width(), size.height()); | 196 result.allocN32Pixels(size.width(), size.height()); |
197 canvas.sk_canvas()->readPixels(&result, 0, 0); | 197 canvas.sk_canvas()->readPixels(&result, 0, 0); |
198 | 198 |
199 gfx::Vector2d paint_offset = | 199 gfx::Vector2d paint_offset = |
200 gfx::ToFlooredVector2d(gfx::ScaleVector2d(offset, image_scale)); | 200 gfx::ToFlooredVector2d(gfx::ScaleVector2d(offset, image_scale)); |
201 gfx::Rect green_rect = gfx::Rect(20, 10, 160, 80) + paint_offset; | 201 gfx::Rect green_rect = gfx::Rect(20, 10, 160, 80) + paint_offset; |
202 gfx::Rect outer_rect = gfx::Rect(200, 100) + paint_offset; | 202 gfx::Rect outer_rect = gfx::Rect(200, 100) + paint_offset; |
203 ExpectRedWithGreenRect(result, outer_rect, green_rect); | 203 ExpectRedWithGreenRect(result, outer_rect, green_rect); |
204 } | 204 } |
205 | 205 |
(...skipping 11 matching lines...) Expand all Loading... |
217 | 217 |
218 bool is_opaque = true; | 218 bool is_opaque = true; |
219 gfx::Canvas canvas(gfx::Size(400, 400), image_scale, is_opaque); | 219 gfx::Canvas canvas(gfx::Size(400, 400), image_scale, is_opaque); |
220 canvas.Translate(gfx::Vector2d(70, 60)); | 220 canvas.Translate(gfx::Vector2d(70, 60)); |
221 canvas.Scale(-1, -1); | 221 canvas.Scale(-1, -1); |
222 | 222 |
223 gfx::Rect bounds(0, 0, 50, 50); | 223 gfx::Rect bounds(0, 0, 50, 50); |
224 painter.Paint(&canvas, bounds); | 224 painter.Paint(&canvas, bounds); |
225 | 225 |
226 SkBitmap result; | 226 SkBitmap result; |
227 const SkISize size = canvas.sk_canvas()->getDeviceSize(); | 227 const SkISize size = canvas.sk_canvas()->getBaseLayerSize(); |
228 result.allocN32Pixels(size.width(), size.height()); | 228 result.allocN32Pixels(size.width(), size.height()); |
229 canvas.sk_canvas()->readPixels(&result, 0, 0); | 229 canvas.sk_canvas()->readPixels(&result, 0, 0); |
230 | 230 |
231 // The painting space is 50x50 and the scale of -1,-1 means an offset of 50,50 | 231 // The painting space is 50x50 and the scale of -1,-1 means an offset of 50,50 |
232 // would put the output in the top left corner. Since the offset is 70,60 it | 232 // would put the output in the top left corner. Since the offset is 70,60 it |
233 // moves by 20,10. Since the output is 2x DPI it will become offset by 40,20. | 233 // moves by 20,10. Since the output is 2x DPI it will become offset by 40,20. |
234 gfx::Vector2d paint_offset(40, 20); | 234 gfx::Vector2d paint_offset(40, 20); |
235 gfx::Rect green_rect = gfx::Rect(10, 10, 80, 80) + paint_offset; | 235 gfx::Rect green_rect = gfx::Rect(10, 10, 80, 80) + paint_offset; |
236 gfx::Rect outer_rect = gfx::Rect(100, 100) + paint_offset; | 236 gfx::Rect outer_rect = gfx::Rect(100, 100) + paint_offset; |
237 ExpectRedWithGreenRect(result, outer_rect, green_rect); | 237 ExpectRedWithGreenRect(result, outer_rect, green_rect); |
238 } | 238 } |
239 | 239 |
240 } // namespace gfx | 240 } // namespace gfx |
OLD | NEW |