Chromium Code Reviews| 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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 145 "test step %s, SkProxyCanvas indirect canvas state consistency"; | 145 "test step %s, SkProxyCanvas indirect canvas state consistency"; |
| 146 static const char* const kNWayStateAssertMessageFormat = | 146 static const char* const kNWayStateAssertMessageFormat = |
| 147 "test step %s, SkNWayCanvas state consistency"; | 147 "test step %s, SkNWayCanvas state consistency"; |
| 148 static const char* const kNWayIndirect1StateAssertMessageFormat = | 148 static const char* const kNWayIndirect1StateAssertMessageFormat = |
| 149 "test step %s, SkNWayCanvas indirect canvas 1 state consistency"; | 149 "test step %s, SkNWayCanvas indirect canvas 1 state consistency"; |
| 150 static const char* const kNWayIndirect2StateAssertMessageFormat = | 150 static const char* const kNWayIndirect2StateAssertMessageFormat = |
| 151 "test step %s, SkNWayCanvas indirect canvas 2 state consistency"; | 151 "test step %s, SkNWayCanvas indirect canvas 2 state consistency"; |
| 152 static const char* const kPdfAssertMessageFormat = | 152 static const char* const kPdfAssertMessageFormat = |
| 153 "PDF sanity check failed %s"; | 153 "PDF sanity check failed %s"; |
| 154 | 154 |
| 155 static void createBitmap(SkBitmap* bm, SkColor color) { | 155 static void create_bitmap(SkBitmap* bm, SkColor color) { |
| 156 bm->allocN32Pixels(kWidth, kHeight); | 156 bm->allocN32Pixels(kWidth, kHeight); |
| 157 bm->eraseColor(color); | 157 bm->eraseColor(color); |
| 158 } | 158 } |
| 159 | 159 |
| 160 static SkSurface* createSurface(SkColor color) { | 160 static SkSurface* create_surface(SkColor color) { |
| 161 SkSurface* surface = SkSurface::NewRasterPMColor(kWidth, kHeight); | 161 SkSurface* surface = SkSurface::NewRasterPMColor(kWidth, kHeight); |
| 162 surface->getCanvas()->clear(color); | 162 surface->getCanvas()->clear(color); |
| 163 return surface; | 163 return surface; |
| 164 } | 164 } |
| 165 | 165 |
| 166 class CanvasTestStep; | 166 class CanvasTestStep; |
| 167 static SkTDArray<CanvasTestStep*>& testStepArray() { | 167 static SkTDArray<CanvasTestStep*>& testStepArray() { |
| 168 static SkTDArray<CanvasTestStep*> theTests; | 168 static SkTDArray<CanvasTestStep*> theTests; |
| 169 return theTests; | 169 return theTests; |
| 170 } | 170 } |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 242 const SkColor kTestColor = 0x01020304; | 242 const SkColor kTestColor = 0x01020304; |
| 243 const SkPaint kTestPaint; | 243 const SkPaint kTestPaint; |
| 244 const SkPoint kTestPoints[3] = { | 244 const SkPoint kTestPoints[3] = { |
| 245 {SkIntToScalar(0), SkIntToScalar(0)}, | 245 {SkIntToScalar(0), SkIntToScalar(0)}, |
| 246 {SkIntToScalar(2), SkIntToScalar(1)}, | 246 {SkIntToScalar(2), SkIntToScalar(1)}, |
| 247 {SkIntToScalar(0), SkIntToScalar(2)} | 247 {SkIntToScalar(0), SkIntToScalar(2)} |
| 248 }; | 248 }; |
| 249 const size_t kTestPointCount = 3; | 249 const size_t kTestPointCount = 3; |
| 250 static SkBitmap testBitmap() { | 250 static SkBitmap testBitmap() { |
| 251 SkBitmap bitmap; | 251 SkBitmap bitmap; |
| 252 createBitmap(&bitmap, 0x05060708); | 252 create_bitmap(&bitmap, 0x05060708); |
| 253 return bitmap; | 253 return bitmap; |
| 254 } | 254 } |
| 255 SkBitmap kTestBitmap; // cannot be created during static init | 255 SkBitmap kTestBitmap; // cannot be created during static init |
| 256 SkString kTestText("Hello World"); | 256 SkString kTestText("Hello World"); |
| 257 SkPoint kTestPoints2[] = { | 257 SkPoint kTestPoints2[] = { |
| 258 { SkIntToScalar(0), SkIntToScalar(1) }, | 258 { SkIntToScalar(0), SkIntToScalar(1) }, |
| 259 { SkIntToScalar(1), SkIntToScalar(1) }, | 259 { SkIntToScalar(1), SkIntToScalar(1) }, |
| 260 { SkIntToScalar(2), SkIntToScalar(1) }, | 260 { SkIntToScalar(2), SkIntToScalar(1) }, |
| 261 { SkIntToScalar(3), SkIntToScalar(1) }, | 261 { SkIntToScalar(3), SkIntToScalar(1) }, |
| 262 { SkIntToScalar(4), SkIntToScalar(1) }, | 262 { SkIntToScalar(4), SkIntToScalar(1) }, |
| 263 { SkIntToScalar(5), SkIntToScalar(1) }, | 263 { SkIntToScalar(5), SkIntToScalar(1) }, |
| 264 { SkIntToScalar(6), SkIntToScalar(1) }, | 264 { SkIntToScalar(6), SkIntToScalar(1) }, |
| 265 { SkIntToScalar(7), SkIntToScalar(1) }, | 265 { SkIntToScalar(7), SkIntToScalar(1) }, |
| 266 { SkIntToScalar(8), SkIntToScalar(1) }, | 266 { SkIntToScalar(8), SkIntToScalar(1) }, |
| 267 { SkIntToScalar(9), SkIntToScalar(1) }, | 267 { SkIntToScalar(9), SkIntToScalar(1) }, |
| 268 { SkIntToScalar(10), SkIntToScalar(1) }, | 268 { SkIntToScalar(10), SkIntToScalar(1) }, |
| 269 }; | 269 }; |
| 270 | 270 SkSurface* kTestSurface; |
| 271 SkImage* kTestImage; | |
|
reed1
2014/09/30 13:44:55
ugh -- can we find a way to not use these globals?
Rémi Piotaix
2014/09/30 15:44:50
Seems that we can't.
The use of the same bitmap/im
| |
| 271 | 272 |
| 272 /////////////////////////////////////////////////////////////////////////////// | 273 /////////////////////////////////////////////////////////////////////////////// |
| 273 // Macros for defining test steps | 274 // Macros for defining test steps |
| 274 | 275 |
| 275 #define TEST_STEP(NAME, FUNCTION) \ | 276 #define TEST_STEP(NAME, FUNCTION) \ |
| 276 class NAME##_TestStep : public CanvasTestStep{ \ | 277 class NAME##_TestStep : public CanvasTestStep{ \ |
| 277 public: \ | 278 public: \ |
| 278 virtual void draw(SkCanvas* canvas, skiatest::Reporter* reporter) { \ | 279 virtual void draw(SkCanvas* canvas, skiatest::Reporter* reporter) { \ |
| 279 FUNCTION (canvas, reporter, this); \ | 280 FUNCTION (canvas, reporter, this); \ |
| 280 } \ | 281 } \ |
| 281 virtual const char* name() const {return #NAME ;} \ | 282 virtual const char* name() const {return #NAME ;} \ |
| 282 }; \ | 283 }; \ |
| 283 static NAME##_TestStep NAME##_TestStepInstance; | 284 static NAME##_TestStep NAME##_TestStepInstance; |
| 284 | 285 |
| 285 #define TEST_STEP_NO_PDF(NAME, FUNCTION) \ | 286 #define TEST_STEP_NO_PDF(NAME, FUNCTION) \ |
| 286 class NAME##_TestStep : public CanvasTestStep{ \ | 287 class NAME##_TestStep : public CanvasTestStep{ \ |
| 287 public: \ | 288 public: \ |
| 288 NAME##_TestStep() : CanvasTestStep(false) {} \ | 289 NAME##_TestStep() : CanvasTestStep(false) {} \ |
| 289 virtual void draw(SkCanvas* canvas, skiatest::Reporter* reporter) { \ | 290 virtual void draw(SkCanvas* canvas, skiatest::Reporter* reporter) { \ |
| 290 FUNCTION (canvas, reporter, this); \ | 291 FUNCTION (canvas, reporter, this); \ |
| 291 } \ | 292 } \ |
| 292 virtual const char* name() const {return #NAME ;} \ | 293 virtual const char* name() const {return #NAME ;} \ |
| 293 }; \ | 294 }; \ |
| 294 static NAME##_TestStep NAME##_TestStepInstance; | 295 static NAME##_TestStep NAME##_TestStepInstance; |
| 295 | 296 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 356 SIMPLE_TEST_STEP(DrawPosText, drawPosText(kTestText.c_str(), | 357 SIMPLE_TEST_STEP(DrawPosText, drawPosText(kTestText.c_str(), |
| 357 kTestText.size(), kTestPoints2, kTestPaint)); | 358 kTestText.size(), kTestPoints2, kTestPaint)); |
| 358 SIMPLE_TEST_STEP(DrawTextOnPath, drawTextOnPath(kTestText.c_str(), | 359 SIMPLE_TEST_STEP(DrawTextOnPath, drawTextOnPath(kTestText.c_str(), |
| 359 kTestText.size(), kTestPath, NULL, kTestPaint)); | 360 kTestText.size(), kTestPath, NULL, kTestPaint)); |
| 360 SIMPLE_TEST_STEP(DrawTextOnPathMatrix, drawTextOnPath(kTestText.c_str(), | 361 SIMPLE_TEST_STEP(DrawTextOnPathMatrix, drawTextOnPath(kTestText.c_str(), |
| 361 kTestText.size(), kTestPath, &kTestMatrix, kTestPaint)); | 362 kTestText.size(), kTestPath, &kTestMatrix, kTestPaint)); |
| 362 SIMPLE_TEST_STEP(DrawData, drawData(kTestText.c_str(), kTestText.size())); | 363 SIMPLE_TEST_STEP(DrawData, drawData(kTestText.c_str(), kTestText.size())); |
| 363 SIMPLE_TEST_STEP(BeginGroup, beginCommentGroup(kTestText.c_str())); | 364 SIMPLE_TEST_STEP(BeginGroup, beginCommentGroup(kTestText.c_str())); |
| 364 SIMPLE_TEST_STEP(AddComment, addComment(kTestText.c_str(), kTestText.c_str())); | 365 SIMPLE_TEST_STEP(AddComment, addComment(kTestText.c_str(), kTestText.c_str())); |
| 365 SIMPLE_TEST_STEP(EndGroup, endCommentGroup()); | 366 SIMPLE_TEST_STEP(EndGroup, endCommentGroup()); |
| 367 SIMPLE_TEST_STEP(DrawImage, drawImage(kTestImage, 0, 0)); | |
| 368 SIMPLE_TEST_STEP(DrawImageRect, drawImageRect(kTestImage, 0, SkRect::MakeWH(kWid th, kHeight))); | |
| 366 | 369 |
| 367 /////////////////////////////////////////////////////////////////////////////// | 370 /////////////////////////////////////////////////////////////////////////////// |
| 368 // Complex test steps | 371 // Complex test steps |
| 369 | 372 |
| 370 static void SaveMatrixClipStep(SkCanvas* canvas, | 373 static void SaveMatrixClipStep(SkCanvas* canvas, |
| 371 skiatest::Reporter* reporter, | 374 skiatest::Reporter* reporter, |
| 372 CanvasTestStep* testStep) { | 375 CanvasTestStep* testStep) { |
| 373 int saveCount = canvas->getSaveCount(); | 376 int saveCount = canvas->getSaveCount(); |
| 374 canvas->save(); | 377 canvas->save(); |
| 375 canvas->translate(SkIntToScalar(1), SkIntToScalar(2)); | 378 canvas->translate(SkIntToScalar(1), SkIntToScalar(2)); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 456 canvas->drawVertices(SkCanvas::kTriangleFan_VertexMode, 4, pts, pts, | 459 canvas->drawVertices(SkCanvas::kTriangleFan_VertexMode, 4, pts, pts, |
| 457 NULL, NULL, NULL, 0, paint); | 460 NULL, NULL, NULL, 0, paint); |
| 458 } | 461 } |
| 459 // NYI: issue 240. | 462 // NYI: issue 240. |
| 460 TEST_STEP_NO_PDF(DrawVerticesShader, DrawVerticesShaderTestStep); | 463 TEST_STEP_NO_PDF(DrawVerticesShader, DrawVerticesShaderTestStep); |
| 461 | 464 |
| 462 static void DrawPictureTestStep(SkCanvas* canvas, | 465 static void DrawPictureTestStep(SkCanvas* canvas, |
| 463 skiatest::Reporter*, | 466 skiatest::Reporter*, |
| 464 CanvasTestStep*) { | 467 CanvasTestStep*) { |
| 465 SkPictureRecorder recorder; | 468 SkPictureRecorder recorder; |
| 466 SkCanvas* testCanvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntT oScalar(kHeight), | 469 SkCanvas* testCanvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntT oScalar(kHeight), |
| 467 NULL, 0); | 470 NULL, 0); |
| 468 testCanvas->scale(SkIntToScalar(2), SkIntToScalar(1)); | 471 testCanvas->scale(SkIntToScalar(2), SkIntToScalar(1)); |
| 469 testCanvas->clipRect(kTestRect); | 472 testCanvas->clipRect(kTestRect); |
| 470 testCanvas->drawRect(kTestRect, kTestPaint); | 473 testCanvas->drawRect(kTestRect, kTestPaint); |
| 471 SkAutoTUnref<SkPicture> testPicture(recorder.endRecording()); | 474 SkAutoTUnref<SkPicture> testPicture(recorder.endRecording()); |
| 472 | 475 |
| 473 canvas->drawPicture(testPicture); | 476 canvas->drawPicture(testPicture); |
| 474 } | 477 } |
| 475 TEST_STEP(DrawPicture, DrawPictureTestStep); | 478 TEST_STEP(DrawPicture, DrawPictureTestStep); |
| 476 | 479 |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 682 public: | 685 public: |
| 683 | 686 |
| 684 static void TestPictureFlattenedObjectReuse(skiatest::Reporter* reporter, | 687 static void TestPictureFlattenedObjectReuse(skiatest::Reporter* reporter, |
| 685 CanvasTestStep* testStep, | 688 CanvasTestStep* testStep, |
| 686 uint32_t recordFlags) { | 689 uint32_t recordFlags) { |
| 687 // Verify that when a test step is executed twice, no extra resources | 690 // Verify that when a test step is executed twice, no extra resources |
| 688 // are flattened during the second execution | 691 // are flattened during the second execution |
| 689 testStep->setAssertMessageFormat(kPictureDrawAssertMessageFormat); | 692 testStep->setAssertMessageFormat(kPictureDrawAssertMessageFormat); |
| 690 SkPictureRecorder referenceRecorder; | 693 SkPictureRecorder referenceRecorder; |
| 691 SkCanvas* referenceCanvas = | 694 SkCanvas* referenceCanvas = |
| 692 referenceRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), | 695 referenceRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), |
| 693 SkIntToScalar(kHeight), | 696 SkIntToScalar(kHeight), |
| 694 NULL, recordFlags); | 697 NULL, recordFlags); |
| 695 testStep->draw(referenceCanvas, reporter); | 698 testStep->draw(referenceCanvas, reporter); |
| 696 | 699 |
| 697 SkPictureRecorder testRecorder; | 700 SkPictureRecorder testRecorder; |
| 698 SkCanvas* testCanvas = | 701 SkCanvas* testCanvas = |
| 699 testRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), | 702 testRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), |
| 700 SkIntToScalar(kHeight), | 703 SkIntToScalar(kHeight), |
| 701 NULL, recordFlags); | 704 NULL, recordFlags); |
| 702 testStep->draw(testCanvas, reporter); | 705 testStep->draw(testCanvas, reporter); |
| 703 testStep->setAssertMessageFormat(kPictureSecondDrawAssertMessageFormat); | 706 testStep->setAssertMessageFormat(kPictureSecondDrawAssertMessageFormat); |
| 704 testStep->draw(testCanvas, reporter); | 707 testStep->draw(testCanvas, reporter); |
| 705 | 708 |
| 706 SkPictureRecord* referenceRecord = static_cast<SkPictureRecord*>(referen ceCanvas); | 709 SkPictureRecord* referenceRecord = static_cast<SkPictureRecord*>(referen ceCanvas); |
| 707 SkPictureRecord* testRecord = static_cast<SkPictureRecord*>(testCanvas); | 710 SkPictureRecord* testRecord = static_cast<SkPictureRecord*>(testCanvas); |
| 708 testStep->setAssertMessageFormat(kPictureResourceReuseMessageFormat); | 711 testStep->setAssertMessageFormat(kPictureResourceReuseMessageFormat); |
| 709 AssertFlattenedObjectsEqual(referenceRecord, testRecord, | 712 AssertFlattenedObjectsEqual(referenceRecord, testRecord, |
| 710 reporter, testStep); | 713 reporter, testStep); |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 726 | 729 |
| 727 // The following class groups static functions that need to access | 730 // The following class groups static functions that need to access |
| 728 // the privates members of SkDeferredCanvas | 731 // the privates members of SkDeferredCanvas |
| 729 class SkDeferredCanvasTester { | 732 class SkDeferredCanvasTester { |
| 730 public: | 733 public: |
| 731 static void TestDeferredCanvasStateConsistency( | 734 static void TestDeferredCanvasStateConsistency( |
| 732 skiatest::Reporter* reporter, | 735 skiatest::Reporter* reporter, |
| 733 CanvasTestStep* testStep, | 736 CanvasTestStep* testStep, |
| 734 const SkCanvas& referenceCanvas, bool silent) { | 737 const SkCanvas& referenceCanvas, bool silent) { |
| 735 | 738 |
| 736 SkAutoTUnref<SkSurface> surface(createSurface(0xFFFFFFFF)); | 739 SkAutoTUnref<SkSurface> surface(create_surface(0xFFFFFFFF)); |
| 737 SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(s urface.get())); | 740 SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(s urface.get())); |
| 738 | 741 |
| 739 testStep->setAssertMessageFormat(kDeferredDrawAssertMessageFormat); | 742 testStep->setAssertMessageFormat(kDeferredDrawAssertMessageFormat); |
| 740 testStep->draw(deferredCanvas, reporter); | 743 testStep->draw(deferredCanvas, reporter); |
| 741 testStep->setAssertMessageFormat(kDeferredPreFlushAssertMessageFormat); | 744 testStep->setAssertMessageFormat(kDeferredPreFlushAssertMessageFormat); |
| 742 AssertCanvasStatesEqual(reporter, deferredCanvas, &referenceCanvas, | 745 AssertCanvasStatesEqual(reporter, deferredCanvas, &referenceCanvas, |
| 743 testStep); | 746 testStep); |
| 744 | 747 |
| 745 if (silent) { | 748 if (silent) { |
| 746 deferredCanvas->silentFlush(); | 749 deferredCanvas->silentFlush(); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 768 } | 771 } |
| 769 }; | 772 }; |
| 770 | 773 |
| 771 // unused | 774 // unused |
| 772 static void TestProxyCanvasStateConsistency( | 775 static void TestProxyCanvasStateConsistency( |
| 773 skiatest::Reporter* reporter, | 776 skiatest::Reporter* reporter, |
| 774 CanvasTestStep* testStep, | 777 CanvasTestStep* testStep, |
| 775 const SkCanvas& referenceCanvas) { | 778 const SkCanvas& referenceCanvas) { |
| 776 | 779 |
| 777 SkBitmap indirectStore; | 780 SkBitmap indirectStore; |
| 778 createBitmap(&indirectStore, 0xFFFFFFFF); | 781 create_bitmap(&indirectStore, 0xFFFFFFFF); |
| 779 SkCanvas indirectCanvas(indirectStore); | 782 SkCanvas indirectCanvas(indirectStore); |
| 780 SkProxyCanvas proxyCanvas(&indirectCanvas); | 783 SkProxyCanvas proxyCanvas(&indirectCanvas); |
| 781 testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); | 784 testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); |
| 782 testStep->draw(&proxyCanvas, reporter); | 785 testStep->draw(&proxyCanvas, reporter); |
| 783 // Verify that the SkProxyCanvas reports consitent state | 786 // Verify that the SkProxyCanvas reports consitent state |
| 784 testStep->setAssertMessageFormat(kProxyStateAssertMessageFormat); | 787 testStep->setAssertMessageFormat(kProxyStateAssertMessageFormat); |
| 785 AssertCanvasStatesEqual(reporter, &proxyCanvas, &referenceCanvas, | 788 AssertCanvasStatesEqual(reporter, &proxyCanvas, &referenceCanvas, |
| 786 testStep); | 789 testStep); |
| 787 // Verify that the indirect canvas reports consitent state | 790 // Verify that the indirect canvas reports consitent state |
| 788 testStep->setAssertMessageFormat(kProxyIndirectStateAssertMessageFormat); | 791 testStep->setAssertMessageFormat(kProxyIndirectStateAssertMessageFormat); |
| 789 AssertCanvasStatesEqual(reporter, &indirectCanvas, &referenceCanvas, | 792 AssertCanvasStatesEqual(reporter, &indirectCanvas, &referenceCanvas, |
| 790 testStep); | 793 testStep); |
| 791 } | 794 } |
| 792 | 795 |
| 793 // unused | 796 // unused |
| 794 static void TestNWayCanvasStateConsistency( | 797 static void TestNWayCanvasStateConsistency( |
| 795 skiatest::Reporter* reporter, | 798 skiatest::Reporter* reporter, |
| 796 CanvasTestStep* testStep, | 799 CanvasTestStep* testStep, |
| 797 const SkCanvas& referenceCanvas) { | 800 const SkCanvas& referenceCanvas) { |
| 798 | 801 |
| 799 SkBitmap indirectStore1; | 802 SkBitmap indirectStore1; |
| 800 createBitmap(&indirectStore1, 0xFFFFFFFF); | 803 create_bitmap(&indirectStore1, 0xFFFFFFFF); |
| 801 SkCanvas indirectCanvas1(indirectStore1); | 804 SkCanvas indirectCanvas1(indirectStore1); |
| 802 | 805 |
| 803 SkBitmap indirectStore2; | 806 SkBitmap indirectStore2; |
| 804 createBitmap(&indirectStore2, 0xFFFFFFFF); | 807 create_bitmap(&indirectStore2, 0xFFFFFFFF); |
| 805 SkCanvas indirectCanvas2(indirectStore2); | 808 SkCanvas indirectCanvas2(indirectStore2); |
| 806 | 809 |
| 807 SkISize canvasSize = referenceCanvas.getDeviceSize(); | 810 SkISize canvasSize = referenceCanvas.getDeviceSize(); |
| 808 SkNWayCanvas nWayCanvas(canvasSize.width(), canvasSize.height()); | 811 SkNWayCanvas nWayCanvas(canvasSize.width(), canvasSize.height()); |
| 809 nWayCanvas.addCanvas(&indirectCanvas1); | 812 nWayCanvas.addCanvas(&indirectCanvas1); |
| 810 nWayCanvas.addCanvas(&indirectCanvas2); | 813 nWayCanvas.addCanvas(&indirectCanvas2); |
| 811 | 814 |
| 812 testStep->setAssertMessageFormat(kNWayDrawAssertMessageFormat); | 815 testStep->setAssertMessageFormat(kNWayDrawAssertMessageFormat); |
| 813 testStep->draw(&nWayCanvas, reporter); | 816 testStep->draw(&nWayCanvas, reporter); |
| 814 // Verify that the SkProxyCanvas reports consitent state | 817 // Verify that the SkProxyCanvas reports consitent state |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 826 | 829 |
| 827 /* | 830 /* |
| 828 * This sub-test verifies that the test step passes when executed | 831 * This sub-test verifies that the test step passes when executed |
| 829 * with SkCanvas and with classes derrived from SkCanvas. It also verifies | 832 * with SkCanvas and with classes derrived from SkCanvas. It also verifies |
| 830 * that the all canvas derivatives report the same state as an SkCanvas | 833 * that the all canvas derivatives report the same state as an SkCanvas |
| 831 * after having executed the test step. | 834 * after having executed the test step. |
| 832 */ | 835 */ |
| 833 static void TestOverrideStateConsistency(skiatest::Reporter* reporter, | 836 static void TestOverrideStateConsistency(skiatest::Reporter* reporter, |
| 834 CanvasTestStep* testStep) { | 837 CanvasTestStep* testStep) { |
| 835 SkBitmap referenceStore; | 838 SkBitmap referenceStore; |
| 836 createBitmap(&referenceStore, 0xFFFFFFFF); | 839 create_bitmap(&referenceStore, 0xFFFFFFFF); |
| 837 SkCanvas referenceCanvas(referenceStore); | 840 SkCanvas referenceCanvas(referenceStore); |
| 838 testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); | 841 testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); |
| 839 testStep->draw(&referenceCanvas, reporter); | 842 testStep->draw(&referenceCanvas, reporter); |
| 840 | 843 |
| 841 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte p, referenceCanvas, false); | 844 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte p, referenceCanvas, false); |
| 842 | 845 |
| 843 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte p, referenceCanvas, true); | 846 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte p, referenceCanvas, true); |
| 844 | 847 |
| 845 // The following test code is disabled because SkProxyCanvas is | 848 // The following test code is disabled because SkProxyCanvas is |
| 846 // missing a lot of virtual overrides on get* methods, which are used | 849 // missing a lot of virtual overrides on get* methods, which are used |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 898 info = SkImageInfo::MakeN32Premul(0, 0); | 901 info = SkImageInfo::MakeN32Premul(0, 0); |
| 899 canvas = SkCanvas::NewRaster(info); | 902 canvas = SkCanvas::NewRaster(info); |
| 900 REPORTER_ASSERT(reporter, canvas); | 903 REPORTER_ASSERT(reporter, canvas); |
| 901 SkDELETE(canvas); | 904 SkDELETE(canvas); |
| 902 } | 905 } |
| 903 | 906 |
| 904 DEF_TEST(Canvas, reporter) { | 907 DEF_TEST(Canvas, reporter) { |
| 905 // Init global here because bitmap pixels cannot be alocated during | 908 // Init global here because bitmap pixels cannot be alocated during |
| 906 // static initialization | 909 // static initialization |
| 907 kTestBitmap = testBitmap(); | 910 kTestBitmap = testBitmap(); |
| 911 kTestSurface = create_surface(SK_ColorGREEN); | |
| 912 kTestImage = kTestSurface->newImageSnapshot(); | |
|
Justin Novosad
2014/09/30 18:06:46
I guess these globals could be packaged into a loc
Rémi Piotaix
2014/10/02 18:45:24
Done here: https://codereview.chromium.org/6170930
| |
| 908 | 913 |
| 909 for (int testStep = 0; testStep < testStepArray().count(); testStep++) { | 914 for (int testStep = 0; testStep < testStepArray().count(); testStep++) { |
| 910 TestOverrideStateConsistency(reporter, testStepArray()[testStep]); | 915 TestOverrideStateConsistency(reporter, testStepArray()[testStep]); |
| 911 SkPictureTester::TestPictureFlattenedObjectReuse(reporter, | 916 SkPictureTester::TestPictureFlattenedObjectReuse(reporter, |
| 912 testStepArray()[testStep], 0); | 917 testStepArray()[testStep], 0); |
| 913 if (testStepArray()[testStep]->enablePdfTesting()) { | 918 if (testStepArray()[testStep]->enablePdfTesting()) { |
| 914 TestPdfDevice(reporter, testStepArray()[testStep]); | 919 TestPdfDevice(reporter, testStepArray()[testStep]); |
| 915 } | 920 } |
| 916 } | 921 } |
| 917 | 922 |
| 918 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i s a global) | 923 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i s a global) |
| 919 kTestBitmap.reset(); | 924 kTestBitmap.reset(); |
| 925 kTestSurface->unref(); | |
| 926 kTestImage->unref(); | |
| 920 | 927 |
| 921 test_newraster(reporter); | 928 test_newraster(reporter); |
| 922 } | 929 } |
| OLD | NEW |