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

Side by Side Diff: tests/CanvasTest.cpp

Issue 1906573003: Revert of Hide SkCanvas::LayerIter (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 8 months 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
« no previous file with comments | « samplecode/SampleLayers.cpp ('k') | tools/VisualBench/WrappedBenchmark.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 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 /* Description: 8 /* Description:
9 * This test defines a series of elementatry test steps that perform 9 * This test defines a series of elementatry test steps that perform
10 * a single or a small group of canvas API calls. Each test step is 10 * a single or a small group of canvas API calls. Each test step is
(...skipping 28 matching lines...) Expand all
39 * 39 *
40 * SIMPLE_TEST_STEP(MytestStep, someCanvasAPIMethod()); 40 * SIMPLE_TEST_STEP(MytestStep, someCanvasAPIMethod());
41 * 41 *
42 * There is another macro called SIMPLE_TEST_STEP_WITH_ASSERT that 42 * There is another macro called SIMPLE_TEST_STEP_WITH_ASSERT that
43 * works the same way as SIMPLE_TEST_STEP, and additionally verifies 43 * works the same way as SIMPLE_TEST_STEP, and additionally verifies
44 * that the invoked method returns a non-zero value. 44 * that the invoked method returns a non-zero value.
45 */ 45 */
46 #include "SkBitmap.h" 46 #include "SkBitmap.h"
47 #include "SkCanvas.h" 47 #include "SkCanvas.h"
48 #include "SkClipStack.h" 48 #include "SkClipStack.h"
49 #include "SkDevice.h"
49 #include "SkDocument.h" 50 #include "SkDocument.h"
50 #include "SkMatrix.h" 51 #include "SkMatrix.h"
51 #include "SkNWayCanvas.h" 52 #include "SkNWayCanvas.h"
52 #include "SkPaint.h" 53 #include "SkPaint.h"
53 #include "SkPaintFilterCanvas.h" 54 #include "SkPaintFilterCanvas.h"
54 #include "SkPath.h" 55 #include "SkPath.h"
55 #include "SkPicture.h" 56 #include "SkPicture.h"
56 #include "SkPictureRecord.h" 57 #include "SkPictureRecord.h"
57 #include "SkPictureRecorder.h" 58 #include "SkPictureRecorder.h"
58 #include "SkRect.h" 59 #include "SkRect.h"
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 canvas->translate(SkIntToScalar(2), SkIntToScalar(1)); 491 canvas->translate(SkIntToScalar(2), SkIntToScalar(1));
491 canvas->save(); 492 canvas->save();
492 canvas->scale(SkIntToScalar(3), SkIntToScalar(3)); 493 canvas->scale(SkIntToScalar(3), SkIntToScalar(3));
493 canvas->drawRect(d.fRect,d.fPaint); 494 canvas->drawRect(d.fRect,d.fPaint);
494 canvas->flush(); 495 canvas->flush();
495 canvas->restore(); 496 canvas->restore();
496 canvas->restore(); 497 canvas->restore();
497 } 498 }
498 TEST_STEP(NestedSaveRestoreWithFlush, NestedSaveRestoreWithFlushTestStep); 499 TEST_STEP(NestedSaveRestoreWithFlush, NestedSaveRestoreWithFlushTestStep);
499 500
500 class CanvasTestingAccess {
501 public:
502 static bool SameState(const SkCanvas* canvas1, const SkCanvas* canvas2) {
503 SkCanvas::LayerIter layerIter1(const_cast<SkCanvas*>(canvas1), false);
504 SkCanvas::LayerIter layerIter2(const_cast<SkCanvas*>(canvas2), false);
505 while (!layerIter1.done() && !layerIter2.done()) {
506 if (layerIter1.matrix() != layerIter2.matrix()) {
507 return false;
508 }
509 if (layerIter1.clip() != layerIter2.clip()) {
510 return false;
511 }
512 if (layerIter1.paint() != layerIter2.paint()) {
513 return false;
514 }
515 if (layerIter1.x() != layerIter2.x()) {
516 return false;
517 }
518 if (layerIter1.y() != layerIter2.y()) {
519 return false;
520 }
521 layerIter1.next();
522 layerIter2.next();
523 }
524 if (!layerIter1.done()) {
525 return false;
526 }
527 if (!layerIter2.done()) {
528 return false;
529 }
530 return true;
531 }
532 };
533
534 static void AssertCanvasStatesEqual(skiatest::Reporter* reporter, const TestData & d, 501 static void AssertCanvasStatesEqual(skiatest::Reporter* reporter, const TestData & d,
535 const SkCanvas* canvas1, const SkCanvas* can vas2, 502 const SkCanvas* canvas1, const SkCanvas* can vas2,
536 CanvasTestStep* testStep) { 503 CanvasTestStep* testStep) {
537 REPORTER_ASSERT_MESSAGE(reporter, canvas1->getDeviceSize() == 504 REPORTER_ASSERT_MESSAGE(reporter, canvas1->getDeviceSize() ==
538 canvas2->getDeviceSize(), testStep->assertMessage()); 505 canvas2->getDeviceSize(), testStep->assertMessage());
539 REPORTER_ASSERT_MESSAGE(reporter, canvas1->getSaveCount() == 506 REPORTER_ASSERT_MESSAGE(reporter, canvas1->getSaveCount() ==
540 canvas2->getSaveCount(), testStep->assertMessage()); 507 canvas2->getSaveCount(), testStep->assertMessage());
541 508
542 SkRect bounds1, bounds2; 509 SkRect bounds1, bounds2;
543 REPORTER_ASSERT_MESSAGE(reporter, 510 REPORTER_ASSERT_MESSAGE(reporter,
(...skipping 10 matching lines...) Expand all
554 SkIRect deviceBounds1, deviceBounds2; 521 SkIRect deviceBounds1, deviceBounds2;
555 REPORTER_ASSERT_MESSAGE(reporter, 522 REPORTER_ASSERT_MESSAGE(reporter,
556 canvas1->getClipDeviceBounds(&deviceBounds1) == 523 canvas1->getClipDeviceBounds(&deviceBounds1) ==
557 canvas2->getClipDeviceBounds(&deviceBounds2), 524 canvas2->getClipDeviceBounds(&deviceBounds2),
558 testStep->assertMessage()); 525 testStep->assertMessage());
559 REPORTER_ASSERT_MESSAGE(reporter, deviceBounds1 == deviceBounds2, testStep-> assertMessage()); 526 REPORTER_ASSERT_MESSAGE(reporter, deviceBounds1 == deviceBounds2, testStep-> assertMessage());
560 REPORTER_ASSERT_MESSAGE(reporter, canvas1->getTotalMatrix() == 527 REPORTER_ASSERT_MESSAGE(reporter, canvas1->getTotalMatrix() ==
561 canvas2->getTotalMatrix(), testStep->assertMessage()); 528 canvas2->getTotalMatrix(), testStep->assertMessage());
562 REPORTER_ASSERT_MESSAGE(reporter, equal_clips(*canvas1, *canvas2), testStep- >assertMessage()); 529 REPORTER_ASSERT_MESSAGE(reporter, equal_clips(*canvas1, *canvas2), testStep- >assertMessage());
563 530
564 REPORTER_ASSERT_MESSAGE(reporter, 531 SkCanvas::LayerIter layerIter1(const_cast<SkCanvas*>(canvas1), false);
565 CanvasTestingAccess::SameState(canvas1, canvas2), 532 SkCanvas::LayerIter layerIter2(const_cast<SkCanvas*>(canvas2), false);
566 testStep->assertMessage()); 533 while (!layerIter1.done() && !layerIter2.done()) {
534 REPORTER_ASSERT_MESSAGE(reporter, layerIter1.matrix() ==
535 layerIter2.matrix(), testStep->assertMessage());
536 REPORTER_ASSERT_MESSAGE(reporter, layerIter1.clip() ==
537 layerIter2.clip(), testStep->assertMessage());
538 REPORTER_ASSERT_MESSAGE(reporter, layerIter1.paint() ==
539 layerIter2.paint(), testStep->assertMessage());
540 REPORTER_ASSERT_MESSAGE(reporter, layerIter1.x() ==
541 layerIter2.x(), testStep->assertMessage());
542 REPORTER_ASSERT_MESSAGE(reporter, layerIter1.y() ==
543 layerIter2.y(), testStep->assertMessage());
544 layerIter1.next();
545 layerIter2.next();
546 }
547 REPORTER_ASSERT_MESSAGE(reporter, layerIter1.done(),
548 testStep->assertMessage());
549 REPORTER_ASSERT_MESSAGE(reporter, layerIter2.done(),
550 testStep->assertMessage());
551
567 } 552 }
568 553
569 static void TestPdfDevice(skiatest::Reporter* reporter, 554 static void TestPdfDevice(skiatest::Reporter* reporter,
570 const TestData& d, 555 const TestData& d,
571 CanvasTestStep* testStep) { 556 CanvasTestStep* testStep) {
572 SkDynamicMemoryWStream outStream; 557 SkDynamicMemoryWStream outStream;
573 SkAutoTUnref<SkDocument> doc(SkDocument::CreatePDF(&outStream)); 558 SkAutoTUnref<SkDocument> doc(SkDocument::CreatePDF(&outStream));
574 #if SK_SUPPORT_PDF 559 #if SK_SUPPORT_PDF
575 REPORTER_ASSERT(reporter, doc); 560 REPORTER_ASSERT(reporter, doc);
576 #else 561 #else
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 REPORTER_ASSERT(reporter, canvas.getTotalMatrix() == filterCanvas.getTotalMa trix()); 750 REPORTER_ASSERT(reporter, canvas.getTotalMatrix() == filterCanvas.getTotalMa trix());
766 REPORTER_ASSERT(reporter, canvas.getClipBounds(&clip1) == filterCanvas.getCl ipBounds(&clip2)); 751 REPORTER_ASSERT(reporter, canvas.getClipBounds(&clip1) == filterCanvas.getCl ipBounds(&clip2));
767 REPORTER_ASSERT(reporter, clip1 == clip2); 752 REPORTER_ASSERT(reporter, clip1 == clip2);
768 753
769 filterCanvas.clipRect(SkRect::MakeXYWH(30.5f, 30.7f, 100, 100)); 754 filterCanvas.clipRect(SkRect::MakeXYWH(30.5f, 30.7f, 100, 100));
770 filterCanvas.scale(0.75f, 0.5f); 755 filterCanvas.scale(0.75f, 0.5f);
771 REPORTER_ASSERT(reporter, canvas.getTotalMatrix() == filterCanvas.getTotalMa trix()); 756 REPORTER_ASSERT(reporter, canvas.getTotalMatrix() == filterCanvas.getTotalMa trix());
772 REPORTER_ASSERT(reporter, canvas.getClipBounds(&clip1) == filterCanvas.getCl ipBounds(&clip2)); 757 REPORTER_ASSERT(reporter, canvas.getClipBounds(&clip1) == filterCanvas.getCl ipBounds(&clip2));
773 REPORTER_ASSERT(reporter, clip1 == clip2); 758 REPORTER_ASSERT(reporter, clip1 == clip2);
774 } 759 }
OLDNEW
« no previous file with comments | « samplecode/SampleLayers.cpp ('k') | tools/VisualBench/WrappedBenchmark.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698