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

Side by Side Diff: cc/playback/display_item_list_unittest.cc

Issue 2476113002: Change call-sites now that SkCanvas is not ref-counted (Closed)
Patch Set: no need for unique check on unique_ptr Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/playback/display_item_list.h" 5 #include "cc/playback/display_item_list.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 namespace { 45 namespace {
46 46
47 const gfx::Rect kVisualRect(0, 0, 42, 42); 47 const gfx::Rect kVisualRect(0, 0, 42, 42);
48 48
49 scoped_refptr<DisplayItemList> CreateDefaultList() { 49 scoped_refptr<DisplayItemList> CreateDefaultList() {
50 return DisplayItemList::Create(DisplayItemListSettings()); 50 return DisplayItemList::Create(DisplayItemListSettings());
51 } 51 }
52 52
53 sk_sp<const SkPicture> CreateRectPicture(const gfx::Rect& bounds) { 53 sk_sp<const SkPicture> CreateRectPicture(const gfx::Rect& bounds) {
54 SkPictureRecorder recorder; 54 SkPictureRecorder recorder;
55 sk_sp<SkCanvas> canvas; 55 SkCanvas* canvas;
56 56
57 canvas = sk_ref_sp(recorder.beginRecording(bounds.width(), bounds.height())); 57 canvas = recorder.beginRecording(bounds.width(), bounds.height());
danakj 2016/11/14 19:35:15 nit: move the var defn here too, so we don't have
reed1 2016/11/14 20:50:07 Done.
58 canvas->drawRect( 58 canvas->drawRect(
59 SkRect::MakeXYWH(bounds.x(), bounds.y(), bounds.width(), bounds.height()), 59 SkRect::MakeXYWH(bounds.x(), bounds.y(), bounds.width(), bounds.height()),
60 SkPaint()); 60 SkPaint());
61 return recorder.finishRecordingAsPicture(); 61 return recorder.finishRecordingAsPicture();
62 } 62 }
63 63
64 void AppendFirstSerializationTestPicture(scoped_refptr<DisplayItemList> list, 64 void AppendFirstSerializationTestPicture(scoped_refptr<DisplayItemList> list,
65 const gfx::Size& layer_size) { 65 const gfx::Size& layer_size) {
66 gfx::PointF offset(2.f, 3.f); 66 gfx::PointF offset(2.f, 3.f);
67 SkPictureRecorder recorder; 67 SkPictureRecorder recorder;
68 sk_sp<SkCanvas> canvas; 68 SkCanvas* canvas;
69 69
70 SkPaint red_paint; 70 SkPaint red_paint;
71 red_paint.setColor(SK_ColorRED); 71 red_paint.setColor(SK_ColorRED);
72 72
73 canvas = sk_ref_sp(recorder.beginRecording(SkRect::MakeXYWH( 73 canvas = recorder.beginRecording(SkRect::MakeXYWH(
danakj 2016/11/14 19:35:15 same
reed1 2016/11/14 20:50:07 Done.
74 offset.x(), offset.y(), layer_size.width(), layer_size.height()))); 74 offset.x(), offset.y(), layer_size.width(), layer_size.height()));
75 canvas->translate(offset.x(), offset.y()); 75 canvas->translate(offset.x(), offset.y());
76 canvas->drawRectCoords(0.f, 0.f, 4.f, 4.f, red_paint); 76 canvas->drawRectCoords(0.f, 0.f, 4.f, 4.f, red_paint);
77 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 77 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
78 kVisualRect, recorder.finishRecordingAsPicture()); 78 kVisualRect, recorder.finishRecordingAsPicture());
79 } 79 }
80 80
81 void AppendSecondSerializationTestPicture(scoped_refptr<DisplayItemList> list, 81 void AppendSecondSerializationTestPicture(scoped_refptr<DisplayItemList> list,
82 const gfx::Size& layer_size) { 82 const gfx::Size& layer_size) {
83 gfx::PointF offset(2.f, 2.f); 83 gfx::PointF offset(2.f, 2.f);
84 SkPictureRecorder recorder; 84 SkPictureRecorder recorder;
85 sk_sp<SkCanvas> canvas; 85 SkCanvas* canvas;
86 86
87 SkPaint blue_paint; 87 SkPaint blue_paint;
88 blue_paint.setColor(SK_ColorBLUE); 88 blue_paint.setColor(SK_ColorBLUE);
89 89
90 canvas = sk_ref_sp(recorder.beginRecording(SkRect::MakeXYWH( 90 canvas = recorder.beginRecording(SkRect::MakeXYWH(
danakj 2016/11/14 19:35:14 same
reed1 2016/11/14 20:50:08 Done.
91 offset.x(), offset.y(), layer_size.width(), layer_size.height()))); 91 offset.x(), offset.y(), layer_size.width(), layer_size.height()));
92 canvas->translate(offset.x(), offset.y()); 92 canvas->translate(offset.x(), offset.y());
93 canvas->drawRectCoords(3.f, 3.f, 7.f, 7.f, blue_paint); 93 canvas->drawRectCoords(3.f, 3.f, 7.f, 7.f, blue_paint);
94 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 94 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
95 kVisualRect, recorder.finishRecordingAsPicture()); 95 kVisualRect, recorder.finishRecordingAsPicture());
96 } 96 }
97 97
98 void ValidateDisplayItemListSerialization(const gfx::Size& layer_size, 98 void ValidateDisplayItemListSerialization(const gfx::Size& layer_size,
99 scoped_refptr<DisplayItemList> list) { 99 scoped_refptr<DisplayItemList> list) {
100 list->Finalize(); 100 list->Finalize();
101 101
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 288
289 // Build the EndTransformDisplayItem. 289 // Build the EndTransformDisplayItem.
290 list->CreateAndAppendPairedEndItem<EndTransformDisplayItem>(); 290 list->CreateAndAppendPairedEndItem<EndTransformDisplayItem>();
291 291
292 ValidateDisplayItemListSerialization(layer_size, list); 292 ValidateDisplayItemListSerialization(layer_size, list);
293 } 293 }
294 294
295 TEST(DisplayItemListTest, SingleDrawingItem) { 295 TEST(DisplayItemListTest, SingleDrawingItem) {
296 gfx::Rect layer_rect(100, 100); 296 gfx::Rect layer_rect(100, 100);
297 SkPictureRecorder recorder; 297 SkPictureRecorder recorder;
298 sk_sp<SkCanvas> canvas; 298 SkCanvas* canvas;
299 SkPaint blue_paint; 299 SkPaint blue_paint;
300 blue_paint.setColor(SK_ColorBLUE); 300 blue_paint.setColor(SK_ColorBLUE);
301 SkPaint red_paint; 301 SkPaint red_paint;
302 red_paint.setColor(SK_ColorRED); 302 red_paint.setColor(SK_ColorRED);
303 unsigned char pixels[4 * 100 * 100] = {0}; 303 unsigned char pixels[4 * 100 * 100] = {0};
304 DisplayItemListSettings settings; 304 DisplayItemListSettings settings;
305 settings.use_cached_picture = true; 305 settings.use_cached_picture = true;
306 scoped_refptr<DisplayItemList> list = DisplayItemList::Create(settings); 306 scoped_refptr<DisplayItemList> list = DisplayItemList::Create(settings);
307 307
308 gfx::PointF offset(8.f, 9.f); 308 gfx::PointF offset(8.f, 9.f);
309 gfx::RectF recording_rect(offset, gfx::SizeF(layer_rect.size())); 309 gfx::RectF recording_rect(offset, gfx::SizeF(layer_rect.size()));
310 canvas = 310 canvas = recorder.beginRecording(gfx::RectFToSkRect(recording_rect));
danakj 2016/11/14 19:35:14 same
reed1 2016/11/14 20:50:08 Done.
311 sk_ref_sp(recorder.beginRecording(gfx::RectFToSkRect(recording_rect)));
312 canvas->translate(offset.x(), offset.y()); 311 canvas->translate(offset.x(), offset.y());
313 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint); 312 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint);
314 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint); 313 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint);
315 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 314 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
316 kVisualRect, recorder.finishRecordingAsPicture()); 315 kVisualRect, recorder.finishRecordingAsPicture());
317 list->Finalize(); 316 list->Finalize();
318 DrawDisplayList(pixels, layer_rect, list); 317 DrawDisplayList(pixels, layer_rect, list);
319 318
320 SkBitmap expected_bitmap; 319 SkBitmap expected_bitmap;
321 unsigned char expected_pixels[4 * 100 * 100] = {0}; 320 unsigned char expected_pixels[4 * 100 * 100] = {0};
322 SkImageInfo info = 321 SkImageInfo info =
323 SkImageInfo::MakeN32Premul(layer_rect.width(), layer_rect.height()); 322 SkImageInfo::MakeN32Premul(layer_rect.width(), layer_rect.height());
324 expected_bitmap.installPixels(info, expected_pixels, info.minRowBytes()); 323 expected_bitmap.installPixels(info, expected_pixels, info.minRowBytes());
325 SkCanvas expected_canvas(expected_bitmap); 324 SkCanvas expected_canvas(expected_bitmap);
326 expected_canvas.clipRect(gfx::RectToSkRect(layer_rect)); 325 expected_canvas.clipRect(gfx::RectToSkRect(layer_rect));
327 expected_canvas.drawRectCoords(0.f + offset.x(), 0.f + offset.y(), 326 expected_canvas.drawRectCoords(0.f + offset.x(), 0.f + offset.y(),
328 60.f + offset.x(), 60.f + offset.y(), 327 60.f + offset.x(), 60.f + offset.y(),
329 red_paint); 328 red_paint);
330 expected_canvas.drawRectCoords(50.f + offset.x(), 50.f + offset.y(), 329 expected_canvas.drawRectCoords(50.f + offset.x(), 50.f + offset.y(),
331 75.f + offset.x(), 75.f + offset.y(), 330 75.f + offset.x(), 75.f + offset.y(),
332 blue_paint); 331 blue_paint);
333 332
334 EXPECT_EQ(0, memcmp(pixels, expected_pixels, 4 * 100 * 100)); 333 EXPECT_EQ(0, memcmp(pixels, expected_pixels, 4 * 100 * 100));
335 } 334 }
336 335
337 TEST(DisplayItemListTest, ClipItem) { 336 TEST(DisplayItemListTest, ClipItem) {
338 gfx::Rect layer_rect(100, 100); 337 gfx::Rect layer_rect(100, 100);
339 SkPictureRecorder recorder; 338 SkPictureRecorder recorder;
340 sk_sp<SkCanvas> canvas; 339 SkCanvas* canvas;
341 SkPaint blue_paint; 340 SkPaint blue_paint;
342 blue_paint.setColor(SK_ColorBLUE); 341 blue_paint.setColor(SK_ColorBLUE);
343 SkPaint red_paint; 342 SkPaint red_paint;
344 red_paint.setColor(SK_ColorRED); 343 red_paint.setColor(SK_ColorRED);
345 unsigned char pixels[4 * 100 * 100] = {0}; 344 unsigned char pixels[4 * 100 * 100] = {0};
346 DisplayItemListSettings settings; 345 DisplayItemListSettings settings;
347 settings.use_cached_picture = true; 346 settings.use_cached_picture = true;
348 scoped_refptr<DisplayItemList> list = DisplayItemList::Create(settings); 347 scoped_refptr<DisplayItemList> list = DisplayItemList::Create(settings);
349 348
350 gfx::PointF first_offset(8.f, 9.f); 349 gfx::PointF first_offset(8.f, 9.f);
351 gfx::RectF first_recording_rect(first_offset, gfx::SizeF(layer_rect.size())); 350 gfx::RectF first_recording_rect(first_offset, gfx::SizeF(layer_rect.size()));
352 canvas = sk_ref_sp( 351 canvas = recorder.beginRecording(gfx::RectFToSkRect(first_recording_rect));
danakj 2016/11/14 19:35:15 same
reed1 2016/11/14 20:50:08 Done.
353 recorder.beginRecording(gfx::RectFToSkRect(first_recording_rect)));
354 canvas->translate(first_offset.x(), first_offset.y()); 352 canvas->translate(first_offset.x(), first_offset.y());
355 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint); 353 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint);
356 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 354 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
357 kVisualRect, recorder.finishRecordingAsPicture()); 355 kVisualRect, recorder.finishRecordingAsPicture());
358 356
359 gfx::Rect clip_rect(60, 60, 10, 10); 357 gfx::Rect clip_rect(60, 60, 10, 10);
360 list->CreateAndAppendPairedBeginItem<ClipDisplayItem>( 358 list->CreateAndAppendPairedBeginItem<ClipDisplayItem>(
361 clip_rect, std::vector<SkRRect>(), true); 359 clip_rect, std::vector<SkRRect>(), true);
362 360
363 gfx::PointF second_offset(2.f, 3.f); 361 gfx::PointF second_offset(2.f, 3.f);
364 gfx::RectF second_recording_rect(second_offset, 362 gfx::RectF second_recording_rect(second_offset,
365 gfx::SizeF(layer_rect.size())); 363 gfx::SizeF(layer_rect.size()));
366 canvas = sk_ref_sp( 364 canvas = recorder.beginRecording(gfx::RectFToSkRect(second_recording_rect));
367 recorder.beginRecording(gfx::RectFToSkRect(second_recording_rect)));
368 canvas->translate(second_offset.x(), second_offset.y()); 365 canvas->translate(second_offset.x(), second_offset.y());
369 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint); 366 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint);
370 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 367 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
371 kVisualRect, recorder.finishRecordingAsPicture()); 368 kVisualRect, recorder.finishRecordingAsPicture());
372 369
373 list->CreateAndAppendPairedEndItem<EndClipDisplayItem>(); 370 list->CreateAndAppendPairedEndItem<EndClipDisplayItem>();
374 list->Finalize(); 371 list->Finalize();
375 372
376 DrawDisplayList(pixels, layer_rect, list); 373 DrawDisplayList(pixels, layer_rect, list);
377 374
(...skipping 11 matching lines...) Expand all
389 expected_canvas.drawRectCoords( 386 expected_canvas.drawRectCoords(
390 50.f + second_offset.x(), 50.f + second_offset.y(), 387 50.f + second_offset.x(), 50.f + second_offset.y(),
391 75.f + second_offset.x(), 75.f + second_offset.y(), blue_paint); 388 75.f + second_offset.x(), 75.f + second_offset.y(), blue_paint);
392 389
393 EXPECT_EQ(0, memcmp(pixels, expected_pixels, 4 * 100 * 100)); 390 EXPECT_EQ(0, memcmp(pixels, expected_pixels, 4 * 100 * 100));
394 } 391 }
395 392
396 TEST(DisplayItemListTest, TransformItem) { 393 TEST(DisplayItemListTest, TransformItem) {
397 gfx::Rect layer_rect(100, 100); 394 gfx::Rect layer_rect(100, 100);
398 SkPictureRecorder recorder; 395 SkPictureRecorder recorder;
399 sk_sp<SkCanvas> canvas; 396 SkCanvas* canvas;
400 SkPaint blue_paint; 397 SkPaint blue_paint;
401 blue_paint.setColor(SK_ColorBLUE); 398 blue_paint.setColor(SK_ColorBLUE);
402 SkPaint red_paint; 399 SkPaint red_paint;
403 red_paint.setColor(SK_ColorRED); 400 red_paint.setColor(SK_ColorRED);
404 unsigned char pixels[4 * 100 * 100] = {0}; 401 unsigned char pixels[4 * 100 * 100] = {0};
405 DisplayItemListSettings settings; 402 DisplayItemListSettings settings;
406 settings.use_cached_picture = true; 403 settings.use_cached_picture = true;
407 scoped_refptr<DisplayItemList> list = DisplayItemList::Create(settings); 404 scoped_refptr<DisplayItemList> list = DisplayItemList::Create(settings);
408 405
409 gfx::PointF first_offset(8.f, 9.f); 406 gfx::PointF first_offset(8.f, 9.f);
410 gfx::RectF first_recording_rect(first_offset, gfx::SizeF(layer_rect.size())); 407 gfx::RectF first_recording_rect(first_offset, gfx::SizeF(layer_rect.size()));
411 canvas = sk_ref_sp( 408 canvas = recorder.beginRecording(gfx::RectFToSkRect(first_recording_rect));
danakj 2016/11/14 19:35:14 same
reed1 2016/11/14 20:50:07 Done.
412 recorder.beginRecording(gfx::RectFToSkRect(first_recording_rect)));
413 canvas->translate(first_offset.x(), first_offset.y()); 409 canvas->translate(first_offset.x(), first_offset.y());
414 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint); 410 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint);
415 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 411 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
416 kVisualRect, recorder.finishRecordingAsPicture()); 412 kVisualRect, recorder.finishRecordingAsPicture());
417 413
418 gfx::Transform transform; 414 gfx::Transform transform;
419 transform.Rotate(45.0); 415 transform.Rotate(45.0);
420 list->CreateAndAppendPairedBeginItem<TransformDisplayItem>(transform); 416 list->CreateAndAppendPairedBeginItem<TransformDisplayItem>(transform);
421 417
422 gfx::PointF second_offset(2.f, 3.f); 418 gfx::PointF second_offset(2.f, 3.f);
423 gfx::RectF second_recording_rect(second_offset, 419 gfx::RectF second_recording_rect(second_offset,
424 gfx::SizeF(layer_rect.size())); 420 gfx::SizeF(layer_rect.size()));
425 canvas = sk_ref_sp( 421 canvas = recorder.beginRecording(gfx::RectFToSkRect(second_recording_rect));
426 recorder.beginRecording(gfx::RectFToSkRect(second_recording_rect)));
427 canvas->translate(second_offset.x(), second_offset.y()); 422 canvas->translate(second_offset.x(), second_offset.y());
428 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint); 423 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint);
429 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 424 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
430 kVisualRect, recorder.finishRecordingAsPicture()); 425 kVisualRect, recorder.finishRecordingAsPicture());
431 426
432 list->CreateAndAppendPairedEndItem<EndTransformDisplayItem>(); 427 list->CreateAndAppendPairedEndItem<EndTransformDisplayItem>();
433 list->Finalize(); 428 list->Finalize();
434 429
435 DrawDisplayList(pixels, layer_rect, list); 430 DrawDisplayList(pixels, layer_rect, list);
436 431
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 sk_sp<SkImageFilter> image_filter = SkImageSource::Make(source_image); 473 sk_sp<SkImageFilter> image_filter = SkImageSource::Make(source_image);
479 filters.Append(FilterOperation::CreateReferenceFilter(image_filter)); 474 filters.Append(FilterOperation::CreateReferenceFilter(image_filter));
480 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f)); 475 filters.Append(FilterOperation::CreateBrightnessFilter(0.5f));
481 gfx::RectF filter_bounds(10.f, 10.f, 50.f, 50.f); 476 gfx::RectF filter_bounds(10.f, 10.f, 50.f, 50.f);
482 list->CreateAndAppendPairedBeginItem<FilterDisplayItem>( 477 list->CreateAndAppendPairedBeginItem<FilterDisplayItem>(
483 filters, filter_bounds, filter_bounds.origin()); 478 filters, filter_bounds, filter_bounds.origin());
484 479
485 // Include a rect drawing so that filter is actually applied to something. 480 // Include a rect drawing so that filter is actually applied to something.
486 { 481 {
487 SkPictureRecorder recorder; 482 SkPictureRecorder recorder;
488 sk_sp<SkCanvas> canvas; 483 SkCanvas* canvas;
489 484
490 SkPaint red_paint; 485 SkPaint red_paint;
491 red_paint.setColor(SK_ColorRED); 486 red_paint.setColor(SK_ColorRED);
492 487
493 canvas = sk_ref_sp(recorder.beginRecording( 488 canvas = recorder.beginRecording(
danakj 2016/11/14 19:35:15 same
reed1 2016/11/14 20:50:08 Done.
494 SkRect::MakeXYWH(0, 0, layer_rect.width(), layer_rect.height()))); 489 SkRect::MakeXYWH(0, 0, layer_rect.width(), layer_rect.height()));
495 canvas->drawRectCoords(filter_bounds.x(), filter_bounds.y(), 490 canvas->drawRectCoords(filter_bounds.x(), filter_bounds.y(),
496 filter_bounds.right(), filter_bounds.bottom(), 491 filter_bounds.right(), filter_bounds.bottom(),
497 red_paint); 492 red_paint);
498 list->CreateAndAppendDrawingItem<DrawingDisplayItem>( 493 list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
499 ToNearestRect(filter_bounds), recorder.finishRecordingAsPicture()); 494 ToNearestRect(filter_bounds), recorder.finishRecordingAsPicture());
500 } 495 }
501 496
502 list->CreateAndAppendPairedEndItem<EndFilterDisplayItem>(); 497 list->CreateAndAppendPairedEndItem<EndFilterDisplayItem>();
503 list->Finalize(); 498 list->Finalize();
504 499
505 DrawDisplayList(pixels, layer_rect, list); 500 DrawDisplayList(pixels, layer_rect, list);
506 501
507 SkBitmap expected_bitmap; 502 SkBitmap expected_bitmap;
508 unsigned char expected_pixels[4 * 100 * 100] = {0}; 503 unsigned char expected_pixels[4 * 100 * 100] = {0};
509 SkPaint paint; 504 SkPaint paint;
510 paint.setColor(SkColorSetRGB(64, 64, 64)); 505 paint.setColor(SkColorSetRGB(64, 64, 64));
511 SkImageInfo info = 506 SkImageInfo info =
512 SkImageInfo::MakeN32Premul(layer_rect.width(), layer_rect.height()); 507 SkImageInfo::MakeN32Premul(layer_rect.width(), layer_rect.height());
513 expected_bitmap.installPixels(info, expected_pixels, info.minRowBytes()); 508 expected_bitmap.installPixels(info, expected_pixels, info.minRowBytes());
514 SkCanvas expected_canvas(expected_bitmap); 509 SkCanvas expected_canvas(expected_bitmap);
515 expected_canvas.drawRect(RectFToSkRect(filter_bounds), paint); 510 expected_canvas.drawRect(RectFToSkRect(filter_bounds), paint);
516 511
517 EXPECT_EQ(0, memcmp(pixels, expected_pixels, 4 * 100 * 100)); 512 EXPECT_EQ(0, memcmp(pixels, expected_pixels, 4 * 100 * 100));
518 } 513 }
519 514
520 TEST(DisplayItemListTest, CompactingItems) { 515 TEST(DisplayItemListTest, CompactingItems) {
521 gfx::Rect layer_rect(100, 100); 516 gfx::Rect layer_rect(100, 100);
522 SkPictureRecorder recorder; 517 SkPictureRecorder recorder;
523 sk_sp<SkCanvas> canvas; 518 SkCanvas* canvas;
524 SkPaint blue_paint; 519 SkPaint blue_paint;
525 blue_paint.setColor(SK_ColorBLUE); 520 blue_paint.setColor(SK_ColorBLUE);
526 SkPaint red_paint; 521 SkPaint red_paint;
527 red_paint.setColor(SK_ColorRED); 522 red_paint.setColor(SK_ColorRED);
528 unsigned char pixels[4 * 100 * 100] = {0}; 523 unsigned char pixels[4 * 100 * 100] = {0};
529 524
530 gfx::PointF offset(8.f, 9.f); 525 gfx::PointF offset(8.f, 9.f);
531 gfx::RectF recording_rect(offset, gfx::SizeF(layer_rect.size())); 526 gfx::RectF recording_rect(offset, gfx::SizeF(layer_rect.size()));
532 527
533 DisplayItemListSettings no_caching_settings; 528 DisplayItemListSettings no_caching_settings;
534 scoped_refptr<DisplayItemList> list_without_caching = 529 scoped_refptr<DisplayItemList> list_without_caching =
535 DisplayItemList::Create(no_caching_settings); 530 DisplayItemList::Create(no_caching_settings);
536 531
537 canvas = 532 canvas = recorder.beginRecording(gfx::RectFToSkRect(recording_rect));
danakj 2016/11/14 19:35:14 same
reed1 2016/11/14 20:50:07 Done.
538 sk_ref_sp(recorder.beginRecording(gfx::RectFToSkRect(recording_rect)));
539 canvas->translate(offset.x(), offset.y()); 533 canvas->translate(offset.x(), offset.y());
540 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint); 534 canvas->drawRectCoords(0.f, 0.f, 60.f, 60.f, red_paint);
541 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint); 535 canvas->drawRectCoords(50.f, 50.f, 75.f, 75.f, blue_paint);
542 sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture(); 536 sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
543 list_without_caching->CreateAndAppendDrawingItem<DrawingDisplayItem>( 537 list_without_caching->CreateAndAppendDrawingItem<DrawingDisplayItem>(
544 kVisualRect, picture); 538 kVisualRect, picture);
545 list_without_caching->Finalize(); 539 list_without_caching->Finalize();
546 DrawDisplayList(pixels, layer_rect, list_without_caching); 540 DrawDisplayList(pixels, layer_rect, list_without_caching);
547 541
548 unsigned char expected_pixels[4 * 100 * 100] = {0}; 542 unsigned char expected_pixels[4 * 100 * 100] = {0};
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
955 list->CreateAndAppendPairedEndItem<EndClipDisplayItem>(); 949 list->CreateAndAppendPairedEndItem<EndClipDisplayItem>();
956 950
957 EXPECT_EQ(4u, list->size()); 951 EXPECT_EQ(4u, list->size());
958 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(0)); 952 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(0));
959 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(1)); 953 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(1));
960 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(2)); 954 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(2));
961 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(3)); 955 EXPECT_RECT_EQ(filter_bounds, list->VisualRectForTesting(3));
962 } 956 }
963 957
964 } // namespace cc 958 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698