OLD | NEW |
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 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 paint.setShader(shader)->unref(); | 488 paint.setShader(shader)->unref(); |
489 canvas->drawVertices(SkCanvas::kTriangleFan_VertexMode, 4, pts, pts, | 489 canvas->drawVertices(SkCanvas::kTriangleFan_VertexMode, 4, pts, pts, |
490 NULL, NULL, NULL, 0, paint); | 490 NULL, NULL, NULL, 0, paint); |
491 } | 491 } |
492 // NYI: issue 240. | 492 // NYI: issue 240. |
493 TEST_STEP_NO_PDF(DrawVerticesShader, DrawVerticesShaderTestStep); | 493 TEST_STEP_NO_PDF(DrawVerticesShader, DrawVerticesShaderTestStep); |
494 | 494 |
495 static void DrawPictureTestStep(SkCanvas* canvas, | 495 static void DrawPictureTestStep(SkCanvas* canvas, |
496 skiatest::Reporter*, | 496 skiatest::Reporter*, |
497 CanvasTestStep*) { | 497 CanvasTestStep*) { |
498 SkPicture* testPicture = SkNEW_ARGS(SkPicture, ()); | 498 SkPictureRecorder recorder; |
499 SkAutoUnref aup(testPicture); | 499 SkCanvas* testCanvas = recorder.beginRecording(kWidth, kHeight); |
500 SkCanvas* testCanvas = testPicture->beginRecording(kWidth, kHeight); | |
501 testCanvas->scale(SkIntToScalar(2), SkIntToScalar(1)); | 500 testCanvas->scale(SkIntToScalar(2), SkIntToScalar(1)); |
502 testCanvas->clipRect(kTestRect); | 501 testCanvas->clipRect(kTestRect); |
503 testCanvas->drawRect(kTestRect, kTestPaint); | 502 testCanvas->drawRect(kTestRect, kTestPaint); |
| 503 SkAutoTUnref<SkPicture> testPicture(recorder.endRecording()); |
| 504 |
504 canvas->drawPicture(*testPicture); | 505 canvas->drawPicture(*testPicture); |
505 } | 506 } |
506 TEST_STEP(DrawPicture, DrawPictureTestStep); | 507 TEST_STEP(DrawPicture, DrawPictureTestStep); |
507 | 508 |
508 static void SaveRestoreTestStep(SkCanvas* canvas, | 509 static void SaveRestoreTestStep(SkCanvas* canvas, |
509 skiatest::Reporter* reporter, | 510 skiatest::Reporter* reporter, |
510 CanvasTestStep* testStep) { | 511 CanvasTestStep* testStep) { |
511 int baseSaveCount = canvas->getSaveCount(); | 512 int baseSaveCount = canvas->getSaveCount(); |
512 int n = canvas->save(); | 513 int n = canvas->save(); |
513 REPORTER_ASSERT_MESSAGE(reporter, baseSaveCount == n, testStep->assertMessag
e()); | 514 REPORTER_ASSERT_MESSAGE(reporter, baseSaveCount == n, testStep->assertMessag
e()); |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 } | 716 } |
716 | 717 |
717 public: | 718 public: |
718 | 719 |
719 static void TestPictureFlattenedObjectReuse(skiatest::Reporter* reporter, | 720 static void TestPictureFlattenedObjectReuse(skiatest::Reporter* reporter, |
720 CanvasTestStep* testStep, | 721 CanvasTestStep* testStep, |
721 uint32_t recordFlags) { | 722 uint32_t recordFlags) { |
722 // Verify that when a test step is executed twice, no extra resources | 723 // Verify that when a test step is executed twice, no extra resources |
723 // are flattened during the second execution | 724 // are flattened during the second execution |
724 testStep->setAssertMessageFormat(kPictureDrawAssertMessageFormat); | 725 testStep->setAssertMessageFormat(kPictureDrawAssertMessageFormat); |
725 SkPicture referencePicture; | 726 SkPictureRecorder referenceRecorder; |
726 SkCanvas* referenceCanvas = referencePicture.beginRecording(kWidth, | 727 SkCanvas* referenceCanvas = referenceRecorder.beginRecording(kWidth, |
727 kHeight, recordFlags); | 728 kHeight, re
cordFlags); |
728 testStep->draw(referenceCanvas, reporter); | 729 testStep->draw(referenceCanvas, reporter); |
729 SkPicture testPicture; | 730 |
730 SkCanvas* testCanvas = testPicture.beginRecording(kWidth, | 731 SkPictureRecorder testRecorder; |
731 kHeight, recordFlags); | 732 SkCanvas* testCanvas = testRecorder.beginRecording(kWidth, |
| 733 kHeight, recordFlags)
; |
732 testStep->draw(testCanvas, reporter); | 734 testStep->draw(testCanvas, reporter); |
733 testStep->setAssertMessageFormat(kPictureSecondDrawAssertMessageFormat); | 735 testStep->setAssertMessageFormat(kPictureSecondDrawAssertMessageFormat); |
734 testStep->draw(testCanvas, reporter); | 736 testStep->draw(testCanvas, reporter); |
735 | 737 |
736 SkPictureRecord* referenceRecord = static_cast<SkPictureRecord*>( | 738 SkPictureRecord* referenceRecord = static_cast<SkPictureRecord*>(referen
ceCanvas); |
737 referenceCanvas); | 739 SkPictureRecord* testRecord = static_cast<SkPictureRecord*>(testCanvas); |
738 SkPictureRecord* testRecord = static_cast<SkPictureRecord*>( | |
739 testCanvas); | |
740 testStep->setAssertMessageFormat(kPictureResourceReuseMessageFormat); | 740 testStep->setAssertMessageFormat(kPictureResourceReuseMessageFormat); |
741 AssertFlattenedObjectsEqual(referenceRecord, testRecord, | 741 AssertFlattenedObjectsEqual(referenceRecord, testRecord, |
742 reporter, testStep); | 742 reporter, testStep); |
743 } | 743 } |
744 }; | 744 }; |
745 | 745 |
746 static void TestPdfDevice(skiatest::Reporter* reporter, | 746 static void TestPdfDevice(skiatest::Reporter* reporter, |
747 CanvasTestStep* testStep) { | 747 CanvasTestStep* testStep) { |
748 SkISize pageSize = SkISize::Make(kWidth, kHeight); | 748 SkISize pageSize = SkISize::Make(kWidth, kHeight); |
749 SkPDFDevice device(pageSize, pageSize, SkMatrix::I()); | 749 SkPDFDevice device(pageSize, pageSize, SkMatrix::I()); |
750 SkCanvas canvas(&device); | 750 SkCanvas canvas(&device); |
751 testStep->setAssertMessageFormat(kPdfAssertMessageFormat); | 751 testStep->setAssertMessageFormat(kPdfAssertMessageFormat); |
752 testStep->draw(&canvas, reporter); | 752 testStep->draw(&canvas, reporter); |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
951 if (testStepArray()[testStep]->enablePdfTesting()) { | 951 if (testStepArray()[testStep]->enablePdfTesting()) { |
952 TestPdfDevice(reporter, testStepArray()[testStep]); | 952 TestPdfDevice(reporter, testStepArray()[testStep]); |
953 } | 953 } |
954 } | 954 } |
955 | 955 |
956 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i
s a global) | 956 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i
s a global) |
957 kTestBitmap.reset(); | 957 kTestBitmap.reset(); |
958 | 958 |
959 test_newraster(reporter); | 959 test_newraster(reporter); |
960 } | 960 } |
OLD | NEW |