| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 /* Description: | 9 /* Description: |
| 10 * This test defines a series of elementatry test steps that perform | 10 * This test defines a series of elementatry test steps that perform |
| (...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 // the privates members of SkDeferredCanvas | 772 // the privates members of SkDeferredCanvas |
| 773 class SkDeferredCanvasTester { | 773 class SkDeferredCanvasTester { |
| 774 public: | 774 public: |
| 775 static void TestDeferredCanvasStateConsistency( | 775 static void TestDeferredCanvasStateConsistency( |
| 776 skiatest::Reporter* reporter, | 776 skiatest::Reporter* reporter, |
| 777 CanvasTestStep* testStep, | 777 CanvasTestStep* testStep, |
| 778 const SkCanvas& referenceCanvas, bool silent) { | 778 const SkCanvas& referenceCanvas, bool silent) { |
| 779 | 779 |
| 780 SkBitmap deferredStore; | 780 SkBitmap deferredStore; |
| 781 createBitmap(&deferredStore, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); | 781 createBitmap(&deferredStore, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); |
| 782 SkDevice deferredDevice(deferredStore); | 782 SkBitmapDevice deferredDevice(deferredStore); |
| 783 SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(&
deferredDevice)); | 783 SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(&
deferredDevice)); |
| 784 testStep->setAssertMessageFormat(kDeferredDrawAssertMessageFormat); | 784 testStep->setAssertMessageFormat(kDeferredDrawAssertMessageFormat); |
| 785 testStep->draw(deferredCanvas, reporter); | 785 testStep->draw(deferredCanvas, reporter); |
| 786 testStep->setAssertMessageFormat(kDeferredPreFlushAssertMessageFormat); | 786 testStep->setAssertMessageFormat(kDeferredPreFlushAssertMessageFormat); |
| 787 AssertCanvasStatesEqual(reporter, deferredCanvas, &referenceCanvas, | 787 AssertCanvasStatesEqual(reporter, deferredCanvas, &referenceCanvas, |
| 788 testStep); | 788 testStep); |
| 789 | 789 |
| 790 if (silent) { | 790 if (silent) { |
| 791 deferredCanvas->silentFlush(); | 791 deferredCanvas->silentFlush(); |
| 792 } else { | 792 } else { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 814 }; | 814 }; |
| 815 | 815 |
| 816 // unused | 816 // unused |
| 817 static void TestProxyCanvasStateConsistency( | 817 static void TestProxyCanvasStateConsistency( |
| 818 skiatest::Reporter* reporter, | 818 skiatest::Reporter* reporter, |
| 819 CanvasTestStep* testStep, | 819 CanvasTestStep* testStep, |
| 820 const SkCanvas& referenceCanvas) { | 820 const SkCanvas& referenceCanvas) { |
| 821 | 821 |
| 822 SkBitmap indirectStore; | 822 SkBitmap indirectStore; |
| 823 createBitmap(&indirectStore, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); | 823 createBitmap(&indirectStore, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); |
| 824 SkDevice indirectDevice(indirectStore); | 824 SkBitmapDevice indirectDevice(indirectStore); |
| 825 SkCanvas indirectCanvas(&indirectDevice); | 825 SkCanvas indirectCanvas(&indirectDevice); |
| 826 SkProxyCanvas proxyCanvas(&indirectCanvas); | 826 SkProxyCanvas proxyCanvas(&indirectCanvas); |
| 827 testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); | 827 testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); |
| 828 testStep->draw(&proxyCanvas, reporter); | 828 testStep->draw(&proxyCanvas, reporter); |
| 829 // Verify that the SkProxyCanvas reports consitent state | 829 // Verify that the SkProxyCanvas reports consitent state |
| 830 testStep->setAssertMessageFormat(kProxyStateAssertMessageFormat); | 830 testStep->setAssertMessageFormat(kProxyStateAssertMessageFormat); |
| 831 AssertCanvasStatesEqual(reporter, &proxyCanvas, &referenceCanvas, | 831 AssertCanvasStatesEqual(reporter, &proxyCanvas, &referenceCanvas, |
| 832 testStep); | 832 testStep); |
| 833 // Verify that the indirect canvas reports consitent state | 833 // Verify that the indirect canvas reports consitent state |
| 834 testStep->setAssertMessageFormat(kProxyIndirectStateAssertMessageFormat); | 834 testStep->setAssertMessageFormat(kProxyIndirectStateAssertMessageFormat); |
| 835 AssertCanvasStatesEqual(reporter, &indirectCanvas, &referenceCanvas, | 835 AssertCanvasStatesEqual(reporter, &indirectCanvas, &referenceCanvas, |
| 836 testStep); | 836 testStep); |
| 837 } | 837 } |
| 838 | 838 |
| 839 // unused | 839 // unused |
| 840 static void TestNWayCanvasStateConsistency( | 840 static void TestNWayCanvasStateConsistency( |
| 841 skiatest::Reporter* reporter, | 841 skiatest::Reporter* reporter, |
| 842 CanvasTestStep* testStep, | 842 CanvasTestStep* testStep, |
| 843 const SkCanvas& referenceCanvas) { | 843 const SkCanvas& referenceCanvas) { |
| 844 | 844 |
| 845 SkBitmap indirectStore1; | 845 SkBitmap indirectStore1; |
| 846 createBitmap(&indirectStore1, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); | 846 createBitmap(&indirectStore1, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); |
| 847 SkDevice indirectDevice1(indirectStore1); | 847 SkBitmapDevice indirectDevice1(indirectStore1); |
| 848 SkCanvas indirectCanvas1(&indirectDevice1); | 848 SkCanvas indirectCanvas1(&indirectDevice1); |
| 849 | 849 |
| 850 SkBitmap indirectStore2; | 850 SkBitmap indirectStore2; |
| 851 createBitmap(&indirectStore2, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); | 851 createBitmap(&indirectStore2, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); |
| 852 SkDevice indirectDevice2(indirectStore2); | 852 SkBitmapDevice indirectDevice2(indirectStore2); |
| 853 SkCanvas indirectCanvas2(&indirectDevice2); | 853 SkCanvas indirectCanvas2(&indirectDevice2); |
| 854 | 854 |
| 855 SkISize canvasSize = referenceCanvas.getDeviceSize(); | 855 SkISize canvasSize = referenceCanvas.getDeviceSize(); |
| 856 SkNWayCanvas nWayCanvas(canvasSize.width(), canvasSize.height()); | 856 SkNWayCanvas nWayCanvas(canvasSize.width(), canvasSize.height()); |
| 857 nWayCanvas.addCanvas(&indirectCanvas1); | 857 nWayCanvas.addCanvas(&indirectCanvas1); |
| 858 nWayCanvas.addCanvas(&indirectCanvas2); | 858 nWayCanvas.addCanvas(&indirectCanvas2); |
| 859 | 859 |
| 860 testStep->setAssertMessageFormat(kNWayDrawAssertMessageFormat); | 860 testStep->setAssertMessageFormat(kNWayDrawAssertMessageFormat); |
| 861 testStep->draw(&nWayCanvas, reporter); | 861 testStep->draw(&nWayCanvas, reporter); |
| 862 // Verify that the SkProxyCanvas reports consitent state | 862 // Verify that the SkProxyCanvas reports consitent state |
| (...skipping 12 matching lines...) Expand all Loading... |
| 875 /* | 875 /* |
| 876 * This sub-test verifies that the test step passes when executed | 876 * This sub-test verifies that the test step passes when executed |
| 877 * with SkCanvas and with classes derrived from SkCanvas. It also verifies | 877 * with SkCanvas and with classes derrived from SkCanvas. It also verifies |
| 878 * that the all canvas derivatives report the same state as an SkCanvas | 878 * that the all canvas derivatives report the same state as an SkCanvas |
| 879 * after having executed the test step. | 879 * after having executed the test step. |
| 880 */ | 880 */ |
| 881 static void TestOverrideStateConsistency(skiatest::Reporter* reporter, | 881 static void TestOverrideStateConsistency(skiatest::Reporter* reporter, |
| 882 CanvasTestStep* testStep) { | 882 CanvasTestStep* testStep) { |
| 883 SkBitmap referenceStore; | 883 SkBitmap referenceStore; |
| 884 createBitmap(&referenceStore, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); | 884 createBitmap(&referenceStore, SkBitmap::kARGB_8888_Config, 0xFFFFFFFF); |
| 885 SkDevice referenceDevice(referenceStore); | 885 SkBitmapDevice referenceDevice(referenceStore); |
| 886 SkCanvas referenceCanvas(&referenceDevice); | 886 SkCanvas referenceCanvas(&referenceDevice); |
| 887 testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); | 887 testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); |
| 888 testStep->draw(&referenceCanvas, reporter); | 888 testStep->draw(&referenceCanvas, reporter); |
| 889 | 889 |
| 890 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, false); | 890 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, false); |
| 891 | 891 |
| 892 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, true); | 892 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, true); |
| 893 | 893 |
| 894 // The following test code is disabled because SkProxyCanvas is | 894 // The following test code is disabled because SkProxyCanvas is |
| 895 // missing a lot of virtual overrides on get* methods, which are used | 895 // missing a lot of virtual overrides on get* methods, which are used |
| (...skipping 30 matching lines...) Expand all Loading... |
| 926 TestPdfDevice(reporter, testStepArray()[testStep]); | 926 TestPdfDevice(reporter, testStepArray()[testStep]); |
| 927 } | 927 } |
| 928 } | 928 } |
| 929 | 929 |
| 930 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i
s a global) | 930 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i
s a global) |
| 931 kTestBitmap.reset(); | 931 kTestBitmap.reset(); |
| 932 } | 932 } |
| 933 | 933 |
| 934 #include "TestClassDef.h" | 934 #include "TestClassDef.h" |
| 935 DEFINE_TESTCLASS("Canvas", TestCanvasClass, TestCanvas) | 935 DEFINE_TESTCLASS("Canvas", TestCanvasClass, TestCanvas) |
| OLD | NEW |