OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // TODO(awalker): clean up the const/non-const reference handling in this test | 5 // TODO(awalker): clean up the const/non-const reference handling in this test |
6 | 6 |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 | 8 |
9 #if defined(OS_MACOSX) | 9 #if defined(OS_MACOSX) |
10 #import <ApplicationServices/ApplicationServices.h> | 10 #import <ApplicationServices/ApplicationServices.h> |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 namespace { | 25 namespace { |
26 | 26 |
27 // Return true if the canvas is filled to canvas_color, and contains a single | 27 // Return true if the canvas is filled to canvas_color, and contains a single |
28 // rectangle filled to rect_color. This function ignores the alpha channel, | 28 // rectangle filled to rect_color. This function ignores the alpha channel, |
29 // since Windows will sometimes clear the alpha channel when drawing, and we | 29 // since Windows will sometimes clear the alpha channel when drawing, and we |
30 // will fix that up later in cases it's necessary. | 30 // will fix that up later in cases it's necessary. |
31 bool VerifyRect(const PlatformCanvas& canvas, | 31 bool VerifyRect(const PlatformCanvas& canvas, |
32 uint32_t canvas_color, uint32_t rect_color, | 32 uint32_t canvas_color, uint32_t rect_color, |
33 int x, int y, int w, int h) { | 33 int x, int y, int w, int h) { |
34 PlatformDevice& device = canvas.getTopPlatformDevice(); | 34 SkDevice& device = canvas.getTopDevice(); |
35 const SkBitmap& bitmap = device.accessBitmap(false); | 35 const SkBitmap& bitmap = device.accessBitmap(false); |
36 SkAutoLockPixels lock(bitmap); | 36 SkAutoLockPixels lock(bitmap); |
37 | 37 |
38 // For masking out the alpha values. | 38 // For masking out the alpha values. |
39 uint32_t alpha_mask = 0xFF << SK_A32_SHIFT; | 39 uint32_t alpha_mask = 0xFF << SK_A32_SHIFT; |
40 | 40 |
41 for (int cur_y = 0; cur_y < bitmap.height(); cur_y++) { | 41 for (int cur_y = 0; cur_y < bitmap.height(); cur_y++) { |
42 for (int cur_x = 0; cur_x < bitmap.width(); cur_x++) { | 42 for (int cur_x = 0; cur_x < bitmap.width(); cur_x++) { |
43 if (cur_x >= x && cur_x < x + w && | 43 if (cur_x >= x && cur_x < x + w && |
44 cur_y >= y && cur_y < y + h) { | 44 cur_y >= y && cur_y < y + h) { |
(...skipping 18 matching lines...) Expand all Loading... |
63 static uint32_t alpha_mask = 0xFF << SK_A32_SHIFT; | 63 static uint32_t alpha_mask = 0xFF << SK_A32_SHIFT; |
64 return (*bitmap.getAddr32(x, y) | alpha_mask) == (color | alpha_mask); | 64 return (*bitmap.getAddr32(x, y) | alpha_mask) == (color | alpha_mask); |
65 } | 65 } |
66 | 66 |
67 // Return true if canvas has something that passes for a rounded-corner | 67 // Return true if canvas has something that passes for a rounded-corner |
68 // rectangle. Basically, we're just checking to make sure that the pixels in the | 68 // rectangle. Basically, we're just checking to make sure that the pixels in the |
69 // middle are of rect_color and pixels in the corners are of canvas_color. | 69 // middle are of rect_color and pixels in the corners are of canvas_color. |
70 bool VerifyRoundedRect(const PlatformCanvas& canvas, | 70 bool VerifyRoundedRect(const PlatformCanvas& canvas, |
71 uint32_t canvas_color, uint32_t rect_color, | 71 uint32_t canvas_color, uint32_t rect_color, |
72 int x, int y, int w, int h) { | 72 int x, int y, int w, int h) { |
73 PlatformDevice& device = canvas.getTopPlatformDevice(); | 73 SkDevice& device = canvas.getTopDevice(); |
74 const SkBitmap& bitmap = device.accessBitmap(false); | 74 const SkBitmap& bitmap = device.accessBitmap(false); |
75 SkAutoLockPixels lock(bitmap); | 75 SkAutoLockPixels lock(bitmap); |
76 | 76 |
77 // Check corner points first. They should be of canvas_color. | 77 // Check corner points first. They should be of canvas_color. |
78 if (!IsOfColor(bitmap, x, y, canvas_color)) return false; | 78 if (!IsOfColor(bitmap, x, y, canvas_color)) return false; |
79 if (!IsOfColor(bitmap, x + w, y, canvas_color)) return false; | 79 if (!IsOfColor(bitmap, x + w, y, canvas_color)) return false; |
80 if (!IsOfColor(bitmap, x, y + h, canvas_color)) return false; | 80 if (!IsOfColor(bitmap, x, y + h, canvas_color)) return false; |
81 if (!IsOfColor(bitmap, x + w, y, canvas_color)) return false; | 81 if (!IsOfColor(bitmap, x + w, y, canvas_color)) return false; |
82 | 82 |
83 // Check middle points. They should be of rect_color. | 83 // Check middle points. They should be of rect_color. |
(...skipping 12 matching lines...) Expand all Loading... |
96 return VerifyRect(canvas, SK_ColorWHITE, SK_ColorBLACK, x, y, w, h); | 96 return VerifyRect(canvas, SK_ColorWHITE, SK_ColorBLACK, x, y, w, h); |
97 } | 97 } |
98 | 98 |
99 // Check that every pixel in the canvas is a single color. | 99 // Check that every pixel in the canvas is a single color. |
100 bool VerifyCanvasColor(const PlatformCanvas& canvas, uint32_t canvas_color) { | 100 bool VerifyCanvasColor(const PlatformCanvas& canvas, uint32_t canvas_color) { |
101 return VerifyRect(canvas, canvas_color, 0, 0, 0, 0, 0); | 101 return VerifyRect(canvas, canvas_color, 0, 0, 0, 0, 0); |
102 } | 102 } |
103 | 103 |
104 #if defined(OS_WIN) | 104 #if defined(OS_WIN) |
105 void DrawNativeRect(PlatformCanvas& canvas, int x, int y, int w, int h) { | 105 void DrawNativeRect(PlatformCanvas& canvas, int x, int y, int w, int h) { |
106 HDC dc = canvas.beginPlatformPaint(); | 106 HDC dc = skia::BeginPlatformPaint(&canvas); |
107 | 107 |
108 RECT inner_rc; | 108 RECT inner_rc; |
109 inner_rc.left = x; | 109 inner_rc.left = x; |
110 inner_rc.top = y; | 110 inner_rc.top = y; |
111 inner_rc.right = x + w; | 111 inner_rc.right = x + w; |
112 inner_rc.bottom = y + h; | 112 inner_rc.bottom = y + h; |
113 FillRect(dc, &inner_rc, reinterpret_cast<HBRUSH>(GetStockObject(BLACK_BRUSH)))
; | 113 FillRect(dc, &inner_rc, reinterpret_cast<HBRUSH>(GetStockObject(BLACK_BRUSH)))
; |
114 | 114 |
115 canvas.endPlatformPaint(); | 115 skia::EndPlatformPaint(&canvas); |
116 } | 116 } |
117 #elif defined(OS_MACOSX) | 117 #elif defined(OS_MACOSX) |
118 void DrawNativeRect(PlatformCanvas& canvas, int x, int y, int w, int h) { | 118 void DrawNativeRect(PlatformCanvas& canvas, int x, int y, int w, int h) { |
119 CGContextRef context = canvas.beginPlatformPaint(); | 119 CGContextRef context = skia::BeginPlatformPaint(&canvas); |
120 | 120 |
121 CGRect inner_rc = CGRectMake(x, y, w, h); | 121 CGRect inner_rc = CGRectMake(x, y, w, h); |
122 // RGBA opaque black | 122 // RGBA opaque black |
123 CGColorRef black = CGColorCreateGenericRGB(0.0, 0.0, 0.0, 1.0); | 123 CGColorRef black = CGColorCreateGenericRGB(0.0, 0.0, 0.0, 1.0); |
124 CGContextSetFillColorWithColor(context, black); | 124 CGContextSetFillColorWithColor(context, black); |
125 CGColorRelease(black); | 125 CGColorRelease(black); |
126 CGContextFillRect(context, inner_rc); | 126 CGContextFillRect(context, inner_rc); |
127 | 127 |
128 canvas.endPlatformPaint(); | 128 skia::EndPlatformPaint(&canvas); |
129 } | 129 } |
130 #else | 130 #else |
131 void DrawNativeRect(PlatformCanvas& canvas, int x, int y, int w, int h) { | 131 void DrawNativeRect(PlatformCanvas& canvas, int x, int y, int w, int h) { |
132 notImplemented(); | 132 notImplemented(); |
133 } | 133 } |
134 #endif | 134 #endif |
135 | 135 |
136 // Clips the contents of the canvas to the given rectangle. This will be | 136 // Clips the contents of the canvas to the given rectangle. This will be |
137 // intersected with any existing clip. | 137 // intersected with any existing clip. |
138 void AddClip(PlatformCanvas& canvas, int x, int y, int w, int h) { | 138 void AddClip(PlatformCanvas& canvas, int x, int y, int w, int h) { |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 // Create the canvas initialized to opaque white. | 237 // Create the canvas initialized to opaque white. |
238 PlatformCanvas canvas(16, 16, true); | 238 PlatformCanvas canvas(16, 16, true); |
239 | 239 |
240 // Make a layer and fill it completely to make sure that the bounds are | 240 // Make a layer and fill it completely to make sure that the bounds are |
241 // correct. | 241 // correct. |
242 canvas.drawColor(SK_ColorWHITE); | 242 canvas.drawColor(SK_ColorWHITE); |
243 { | 243 { |
244 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 244 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
245 DrawNativeRect(canvas, 0, 0, 100, 100); | 245 DrawNativeRect(canvas, 0, 0, 100, 100); |
246 #if defined(OS_WIN) | 246 #if defined(OS_WIN) |
247 canvas.getTopPlatformDevice().makeOpaque(0, 0, 100, 100); | 247 MakeOpaque(&canvas, 0, 0, 100, 100); |
248 #endif | 248 #endif |
249 } | 249 } |
250 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX, kLayerY, kLayerW, kLayerH)); | 250 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX, kLayerY, kLayerW, kLayerH)); |
251 | 251 |
252 // Make a layer and fill it partially to make sure the translation is correct. | 252 // Make a layer and fill it partially to make sure the translation is correct. |
253 canvas.drawColor(SK_ColorWHITE); | 253 canvas.drawColor(SK_ColorWHITE); |
254 { | 254 { |
255 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 255 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
256 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); | 256 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
257 #if defined(OS_WIN) | 257 #if defined(OS_WIN) |
258 canvas.getTopPlatformDevice().makeOpaque(kInnerX, kInnerY, | 258 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
259 kInnerW, kInnerH); | |
260 #endif | 259 #endif |
261 } | 260 } |
262 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); | 261 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); |
263 | 262 |
264 // Add a clip on the layer and fill to make sure clip is correct. | 263 // Add a clip on the layer and fill to make sure clip is correct. |
265 canvas.drawColor(SK_ColorWHITE); | 264 canvas.drawColor(SK_ColorWHITE); |
266 { | 265 { |
267 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 266 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
268 canvas.save(); | 267 canvas.save(); |
269 AddClip(canvas, kInnerX, kInnerY, kInnerW, kInnerH); | 268 AddClip(canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
270 DrawNativeRect(canvas, 0, 0, 100, 100); | 269 DrawNativeRect(canvas, 0, 0, 100, 100); |
271 #if defined(OS_WIN) | 270 #if defined(OS_WIN) |
272 canvas.getTopPlatformDevice().makeOpaque( | 271 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
273 kInnerX, kInnerY, kInnerW, kInnerH); | |
274 #endif | 272 #endif |
275 canvas.restore(); | 273 canvas.restore(); |
276 } | 274 } |
277 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); | 275 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); |
278 | 276 |
279 // Add a clip and then make the layer to make sure the clip is correct. | 277 // Add a clip and then make the layer to make sure the clip is correct. |
280 canvas.drawColor(SK_ColorWHITE); | 278 canvas.drawColor(SK_ColorWHITE); |
281 canvas.save(); | 279 canvas.save(); |
282 AddClip(canvas, kInnerX, kInnerY, kInnerW, kInnerH); | 280 AddClip(canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
283 { | 281 { |
284 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 282 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
285 DrawNativeRect(canvas, 0, 0, 100, 100); | 283 DrawNativeRect(canvas, 0, 0, 100, 100); |
286 #if defined(OS_WIN) | 284 #if defined(OS_WIN) |
287 canvas.getTopPlatformDevice().makeOpaque(0, 0, 100, 100); | 285 MakeOpaque(&canvas, 0, 0, 100, 100); |
288 #endif | 286 #endif |
289 } | 287 } |
290 canvas.restore(); | 288 canvas.restore(); |
291 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); | 289 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH)); |
292 } | 290 } |
293 | 291 |
294 // Test that translation + make layer works properly. | 292 // Test that translation + make layer works properly. |
295 TEST(PlatformCanvas, TranslateLayer) { | 293 TEST(PlatformCanvas, TranslateLayer) { |
296 // Create the canvas initialized to opaque white. | 294 // Create the canvas initialized to opaque white. |
297 PlatformCanvas canvas(16, 16, true); | 295 PlatformCanvas canvas(16, 16, true); |
298 | 296 |
299 // Make a layer and fill it completely to make sure that the bounds are | 297 // Make a layer and fill it completely to make sure that the bounds are |
300 // correct. | 298 // correct. |
301 canvas.drawColor(SK_ColorWHITE); | 299 canvas.drawColor(SK_ColorWHITE); |
302 canvas.save(); | 300 canvas.save(); |
303 canvas.translate(1, 1); | 301 canvas.translate(1, 1); |
304 { | 302 { |
305 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 303 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
306 DrawNativeRect(canvas, 0, 0, 100, 100); | 304 DrawNativeRect(canvas, 0, 0, 100, 100); |
307 #if defined(OS_WIN) | 305 #if defined(OS_WIN) |
308 canvas.getTopPlatformDevice().makeOpaque(0, 0, 100, 100); | 306 MakeOpaque(&canvas, 0, 0, 100, 100); |
309 #endif | 307 #endif |
310 } | 308 } |
311 canvas.restore(); | 309 canvas.restore(); |
312 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX + 1, kLayerY + 1, | 310 EXPECT_TRUE(VerifyBlackRect(canvas, kLayerX + 1, kLayerY + 1, |
313 kLayerW, kLayerH)); | 311 kLayerW, kLayerH)); |
314 | 312 |
315 // Translate then make the layer. | 313 // Translate then make the layer. |
316 canvas.drawColor(SK_ColorWHITE); | 314 canvas.drawColor(SK_ColorWHITE); |
317 canvas.save(); | 315 canvas.save(); |
318 canvas.translate(1, 1); | 316 canvas.translate(1, 1); |
319 { | 317 { |
320 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 318 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
321 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); | 319 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
322 #if defined(OS_WIN) | 320 #if defined(OS_WIN) |
323 canvas.getTopPlatformDevice().makeOpaque(kInnerX, kInnerY, | 321 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
324 kInnerW, kInnerH); | |
325 #endif | 322 #endif |
326 } | 323 } |
327 canvas.restore(); | 324 canvas.restore(); |
328 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 1, kInnerY + 1, | 325 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 1, kInnerY + 1, |
329 kInnerW, kInnerH)); | 326 kInnerW, kInnerH)); |
330 | 327 |
331 // Make the layer then translate. | 328 // Make the layer then translate. |
332 canvas.drawColor(SK_ColorWHITE); | 329 canvas.drawColor(SK_ColorWHITE); |
333 canvas.save(); | 330 canvas.save(); |
334 { | 331 { |
335 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 332 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
336 canvas.translate(1, 1); | 333 canvas.translate(1, 1); |
337 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); | 334 DrawNativeRect(canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
338 #if defined(OS_WIN) | 335 #if defined(OS_WIN) |
339 canvas.getTopPlatformDevice().makeOpaque(kInnerX, kInnerY, | 336 MakeOpaque(&canvas, kInnerX, kInnerY, kInnerW, kInnerH); |
340 kInnerW, kInnerH); | |
341 #endif | 337 #endif |
342 } | 338 } |
343 canvas.restore(); | 339 canvas.restore(); |
344 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 1, kInnerY + 1, | 340 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 1, kInnerY + 1, |
345 kInnerW, kInnerH)); | 341 kInnerW, kInnerH)); |
346 | 342 |
347 // Translate both before and after, and have a clip. | 343 // Translate both before and after, and have a clip. |
348 canvas.drawColor(SK_ColorWHITE); | 344 canvas.drawColor(SK_ColorWHITE); |
349 canvas.save(); | 345 canvas.save(); |
350 canvas.translate(1, 1); | 346 canvas.translate(1, 1); |
351 { | 347 { |
352 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 348 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
353 canvas.drawColor(SK_ColorWHITE); | 349 canvas.drawColor(SK_ColorWHITE); |
354 canvas.translate(1, 1); | 350 canvas.translate(1, 1); |
355 AddClip(canvas, kInnerX + 1, kInnerY + 1, kInnerW - 1, kInnerH - 1); | 351 AddClip(canvas, kInnerX + 1, kInnerY + 1, kInnerW - 1, kInnerH - 1); |
356 DrawNativeRect(canvas, 0, 0, 100, 100); | 352 DrawNativeRect(canvas, 0, 0, 100, 100); |
357 #if defined(OS_WIN) | 353 #if defined(OS_WIN) |
358 canvas.getTopPlatformDevice().makeOpaque(kLayerX, kLayerY, | 354 MakeOpaque(&canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
359 kLayerW, kLayerH); | |
360 #endif | 355 #endif |
361 } | 356 } |
362 canvas.restore(); | 357 canvas.restore(); |
363 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 3, kInnerY + 3, | 358 EXPECT_TRUE(VerifyBlackRect(canvas, kInnerX + 3, kInnerY + 3, |
364 kInnerW - 1, kInnerH - 1)); | 359 kInnerW - 1, kInnerH - 1)); |
365 | 360 |
366 // TODO(dglazkov): Figure out why this fails on Mac (antialiased clipping?), | 361 // TODO(dglazkov): Figure out why this fails on Mac (antialiased clipping?), |
367 // modify test and remove this guard. | 362 // modify test and remove this guard. |
368 #if !defined(OS_MACOSX) | 363 #if !defined(OS_MACOSX) |
369 // Translate both before and after, and have a path clip. | 364 // Translate both before and after, and have a path clip. |
370 canvas.drawColor(SK_ColorWHITE); | 365 canvas.drawColor(SK_ColorWHITE); |
371 canvas.save(); | 366 canvas.save(); |
372 canvas.translate(1, 1); | 367 canvas.translate(1, 1); |
373 { | 368 { |
374 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); | 369 LayerSaver layer(canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
375 canvas.drawColor(SK_ColorWHITE); | 370 canvas.drawColor(SK_ColorWHITE); |
376 canvas.translate(1, 1); | 371 canvas.translate(1, 1); |
377 | 372 |
378 SkPath path; | 373 SkPath path; |
379 SkRect rect; | 374 SkRect rect; |
380 rect.iset(kInnerX - 1, kInnerY - 1, | 375 rect.iset(kInnerX - 1, kInnerY - 1, |
381 kInnerX + kInnerW, kInnerY + kInnerH); | 376 kInnerX + kInnerW, kInnerY + kInnerH); |
382 path.addRoundRect(rect, kRadius, kRadius); | 377 path.addRoundRect(rect, kRadius, kRadius); |
383 canvas.clipPath(path); | 378 canvas.clipPath(path); |
384 | 379 |
385 DrawNativeRect(canvas, 0, 0, 100, 100); | 380 DrawNativeRect(canvas, 0, 0, 100, 100); |
386 #if defined(OS_WIN) | 381 #if defined(OS_WIN) |
387 canvas.getTopPlatformDevice().makeOpaque(kLayerX, kLayerY, | 382 MakeOpaque(&canvas, kLayerX, kLayerY, kLayerW, kLayerH); |
388 kLayerW, kLayerH); | |
389 #endif | 383 #endif |
390 } | 384 } |
391 canvas.restore(); | 385 canvas.restore(); |
392 EXPECT_TRUE(VerifyRoundedRect(canvas, SK_ColorWHITE, SK_ColorBLACK, | 386 EXPECT_TRUE(VerifyRoundedRect(canvas, SK_ColorWHITE, SK_ColorBLACK, |
393 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH)); | 387 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH)); |
394 #endif | 388 #endif |
395 } | 389 } |
396 | 390 |
397 } // namespace skia | 391 } // namespace skia |
OLD | NEW |