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

Side by Side Diff: skia/ext/platform_canvas_unittest.cc

Issue 11418217: Add skia::RefPtr class to wrap ref counted classes from Skia. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit+rebase Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « skia/ext/platform_canvas.cc ('k') | skia/ext/refptr.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // 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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 // Create the canvas initialized to opaque white. 240 // Create the canvas initialized to opaque white.
241 ScopedPlatformCanvas canvas(16, 16, true); 241 ScopedPlatformCanvas canvas(16, 16, true);
242 242
243 // Make a layer and fill it completely to make sure that the bounds are 243 // Make a layer and fill it completely to make sure that the bounds are
244 // correct. 244 // correct.
245 canvas->drawColor(SK_ColorWHITE); 245 canvas->drawColor(SK_ColorWHITE);
246 { 246 {
247 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 247 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
248 DrawNativeRect(*canvas, 0, 0, 100, 100); 248 DrawNativeRect(*canvas, 0, 0, 100, 100);
249 #if defined(OS_WIN) 249 #if defined(OS_WIN)
250 MakeOpaque(canvas, 0, 0, 100, 100); 250 MakeOpaque(canvas.get(), 0, 0, 100, 100);
251 #endif 251 #endif
252 } 252 }
253 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX, kLayerY, kLayerW, kLayerH)); 253 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX, kLayerY, kLayerW, kLayerH));
254 254
255 // Make a layer and fill it partially to make sure the translation is correct. 255 // Make a layer and fill it partially to make sure the translation is correct.
256 canvas->drawColor(SK_ColorWHITE); 256 canvas->drawColor(SK_ColorWHITE);
257 { 257 {
258 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 258 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
259 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH); 259 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
260 #if defined(OS_WIN) 260 #if defined(OS_WIN)
261 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 261 MakeOpaque(canvas.get(), kInnerX, kInnerY, kInnerW, kInnerH);
262 #endif 262 #endif
263 } 263 }
264 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH)); 264 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH));
265 265
266 // Add a clip on the layer and fill to make sure clip is correct. 266 // Add a clip on the layer and fill to make sure clip is correct.
267 canvas->drawColor(SK_ColorWHITE); 267 canvas->drawColor(SK_ColorWHITE);
268 { 268 {
269 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 269 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
270 canvas->save(); 270 canvas->save();
271 AddClip(*canvas, kInnerX, kInnerY, kInnerW, kInnerH); 271 AddClip(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
272 DrawNativeRect(*canvas, 0, 0, 100, 100); 272 DrawNativeRect(*canvas, 0, 0, 100, 100);
273 #if defined(OS_WIN) 273 #if defined(OS_WIN)
274 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 274 MakeOpaque(canvas.get(), kInnerX, kInnerY, kInnerW, kInnerH);
275 #endif 275 #endif
276 canvas->restore(); 276 canvas->restore();
277 } 277 }
278 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH)); 278 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH));
279 279
280 // Add a clip and then make the layer to make sure the clip is correct. 280 // Add a clip and then make the layer to make sure the clip is correct.
281 canvas->drawColor(SK_ColorWHITE); 281 canvas->drawColor(SK_ColorWHITE);
282 canvas->save(); 282 canvas->save();
283 AddClip(*canvas, kInnerX, kInnerY, kInnerW, kInnerH); 283 AddClip(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
284 { 284 {
285 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 285 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
286 DrawNativeRect(*canvas, 0, 0, 100, 100); 286 DrawNativeRect(*canvas, 0, 0, 100, 100);
287 #if defined(OS_WIN) 287 #if defined(OS_WIN)
288 MakeOpaque(canvas, 0, 0, 100, 100); 288 MakeOpaque(canvas.get(), 0, 0, 100, 100);
289 #endif 289 #endif
290 } 290 }
291 canvas->restore(); 291 canvas->restore();
292 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH)); 292 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH));
293 } 293 }
294 294
295 #if !defined(USE_AURA) // http://crbug.com/154358 295 #if !defined(USE_AURA) // http://crbug.com/154358
296 296
297 // Test that translation + make layer works properly. 297 // Test that translation + make layer works properly.
298 TEST(PlatformCanvas, TranslateLayer) { 298 TEST(PlatformCanvas, TranslateLayer) {
299 // Create the canvas initialized to opaque white. 299 // Create the canvas initialized to opaque white.
300 ScopedPlatformCanvas canvas(16, 16, true); 300 ScopedPlatformCanvas canvas(16, 16, true);
301 301
302 // Make a layer and fill it completely to make sure that the bounds are 302 // Make a layer and fill it completely to make sure that the bounds are
303 // correct. 303 // correct.
304 canvas->drawColor(SK_ColorWHITE); 304 canvas->drawColor(SK_ColorWHITE);
305 canvas->save(); 305 canvas->save();
306 canvas->translate(1, 1); 306 canvas->translate(1, 1);
307 { 307 {
308 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 308 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
309 DrawNativeRect(*canvas, 0, 0, 100, 100); 309 DrawNativeRect(*canvas, 0, 0, 100, 100);
310 #if defined(OS_WIN) 310 #if defined(OS_WIN)
311 MakeOpaque(canvas, 0, 0, 100, 100); 311 MakeOpaque(canvas.get(), 0, 0, 100, 100);
312 #endif 312 #endif
313 } 313 }
314 canvas->restore(); 314 canvas->restore();
315 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX + 1, kLayerY + 1, 315 EXPECT_TRUE(VerifyBlackRect(*canvas, kLayerX + 1, kLayerY + 1,
316 kLayerW, kLayerH)); 316 kLayerW, kLayerH));
317 317
318 // Translate then make the layer. 318 // Translate then make the layer.
319 canvas->drawColor(SK_ColorWHITE); 319 canvas->drawColor(SK_ColorWHITE);
320 canvas->save(); 320 canvas->save();
321 canvas->translate(1, 1); 321 canvas->translate(1, 1);
322 { 322 {
323 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 323 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
324 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH); 324 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
325 #if defined(OS_WIN) 325 #if defined(OS_WIN)
326 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 326 MakeOpaque(canvas.get(), kInnerX, kInnerY, kInnerW, kInnerH);
327 #endif 327 #endif
328 } 328 }
329 canvas->restore(); 329 canvas->restore();
330 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 1, kInnerY + 1, 330 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 1, kInnerY + 1,
331 kInnerW, kInnerH)); 331 kInnerW, kInnerH));
332 332
333 // Make the layer then translate. 333 // Make the layer then translate.
334 canvas->drawColor(SK_ColorWHITE); 334 canvas->drawColor(SK_ColorWHITE);
335 canvas->save(); 335 canvas->save();
336 { 336 {
337 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 337 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
338 canvas->translate(1, 1); 338 canvas->translate(1, 1);
339 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH); 339 DrawNativeRect(*canvas, kInnerX, kInnerY, kInnerW, kInnerH);
340 #if defined(OS_WIN) 340 #if defined(OS_WIN)
341 MakeOpaque(canvas, kInnerX, kInnerY, kInnerW, kInnerH); 341 MakeOpaque(canvas.get(), kInnerX, kInnerY, kInnerW, kInnerH);
342 #endif 342 #endif
343 } 343 }
344 canvas->restore(); 344 canvas->restore();
345 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 1, kInnerY + 1, 345 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 1, kInnerY + 1,
346 kInnerW, kInnerH)); 346 kInnerW, kInnerH));
347 347
348 // Translate both before and after, and have a clip. 348 // Translate both before and after, and have a clip.
349 canvas->drawColor(SK_ColorWHITE); 349 canvas->drawColor(SK_ColorWHITE);
350 canvas->save(); 350 canvas->save();
351 canvas->translate(1, 1); 351 canvas->translate(1, 1);
352 { 352 {
353 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 353 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
354 canvas->drawColor(SK_ColorWHITE); 354 canvas->drawColor(SK_ColorWHITE);
355 canvas->translate(1, 1); 355 canvas->translate(1, 1);
356 AddClip(*canvas, kInnerX + 1, kInnerY + 1, kInnerW - 1, kInnerH - 1); 356 AddClip(*canvas, kInnerX + 1, kInnerY + 1, kInnerW - 1, kInnerH - 1);
357 DrawNativeRect(*canvas, 0, 0, 100, 100); 357 DrawNativeRect(*canvas, 0, 0, 100, 100);
358 #if defined(OS_WIN) 358 #if defined(OS_WIN)
359 MakeOpaque(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 359 MakeOpaque(canvas.get(), kLayerX, kLayerY, kLayerW, kLayerH);
360 #endif 360 #endif
361 } 361 }
362 canvas->restore(); 362 canvas->restore();
363 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 3, kInnerY + 3, 363 EXPECT_TRUE(VerifyBlackRect(*canvas, kInnerX + 3, kInnerY + 3,
364 kInnerW - 1, kInnerH - 1)); 364 kInnerW - 1, kInnerH - 1));
365 365
366 // TODO(dglazkov): Figure out why this fails on Mac (antialiased clipping?), 366 // TODO(dglazkov): Figure out why this fails on Mac (antialiased clipping?),
367 // modify test and remove this guard. 367 // modify test and remove this guard.
368 #if !defined(OS_MACOSX) 368 #if !defined(OS_MACOSX)
369 // Translate both before and after, and have a path clip. 369 // Translate both before and after, and have a path clip.
370 canvas->drawColor(SK_ColorWHITE); 370 canvas->drawColor(SK_ColorWHITE);
371 canvas->save(); 371 canvas->save();
372 canvas->translate(1, 1); 372 canvas->translate(1, 1);
373 { 373 {
374 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH); 374 LayerSaver layer(*canvas, kLayerX, kLayerY, kLayerW, kLayerH);
375 canvas->drawColor(SK_ColorWHITE); 375 canvas->drawColor(SK_ColorWHITE);
376 canvas->translate(1, 1); 376 canvas->translate(1, 1);
377 377
378 SkPath path; 378 SkPath path;
379 SkRect rect; 379 SkRect rect;
380 rect.iset(kInnerX - 1, kInnerY - 1, 380 rect.iset(kInnerX - 1, kInnerY - 1,
381 kInnerX + kInnerW, kInnerY + kInnerH); 381 kInnerX + kInnerW, kInnerY + kInnerH);
382 path.addRoundRect(rect, kRadius, kRadius); 382 path.addRoundRect(rect, kRadius, kRadius);
383 canvas->clipPath(path); 383 canvas->clipPath(path);
384 384
385 DrawNativeRect(*canvas, 0, 0, 100, 100); 385 DrawNativeRect(*canvas, 0, 0, 100, 100);
386 #if defined(OS_WIN) 386 #if defined(OS_WIN)
387 MakeOpaque(canvas, kLayerX, kLayerY, kLayerW, kLayerH); 387 MakeOpaque(canvas.get(), kLayerX, kLayerY, kLayerW, kLayerH);
388 #endif 388 #endif
389 } 389 }
390 canvas->restore(); 390 canvas->restore();
391 EXPECT_TRUE(VerifyRoundedRect(*canvas, SK_ColorWHITE, SK_ColorBLACK, 391 EXPECT_TRUE(VerifyRoundedRect(*canvas, SK_ColorWHITE, SK_ColorBLACK,
392 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH)); 392 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH));
393 #endif 393 #endif
394 } 394 }
395 395
396 #endif // #if !defined(USE_AURA) 396 #endif // #if !defined(USE_AURA)
397 397
398 } // namespace skia 398 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/platform_canvas.cc ('k') | skia/ext/refptr.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698