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 787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
798 }; | 798 }; |
799 | 799 |
800 // unused | 800 // unused |
801 static void TestProxyCanvasStateConsistency( | 801 static void TestProxyCanvasStateConsistency( |
802 skiatest::Reporter* reporter, | 802 skiatest::Reporter* reporter, |
803 CanvasTestStep* testStep, | 803 CanvasTestStep* testStep, |
804 const SkCanvas& referenceCanvas) { | 804 const SkCanvas& referenceCanvas) { |
805 | 805 |
806 SkBitmap indirectStore; | 806 SkBitmap indirectStore; |
807 createBitmap(&indirectStore, 0xFFFFFFFF); | 807 createBitmap(&indirectStore, 0xFFFFFFFF); |
808 SkBitmapDevice indirectDevice(indirectStore); | 808 SkCanvas indirectCanvas(indirectStore); |
809 SkCanvas indirectCanvas(&indirectDevice); | |
810 SkProxyCanvas proxyCanvas(&indirectCanvas); | 809 SkProxyCanvas proxyCanvas(&indirectCanvas); |
811 testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); | 810 testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); |
812 testStep->draw(&proxyCanvas, reporter); | 811 testStep->draw(&proxyCanvas, reporter); |
813 // Verify that the SkProxyCanvas reports consitent state | 812 // Verify that the SkProxyCanvas reports consitent state |
814 testStep->setAssertMessageFormat(kProxyStateAssertMessageFormat); | 813 testStep->setAssertMessageFormat(kProxyStateAssertMessageFormat); |
815 AssertCanvasStatesEqual(reporter, &proxyCanvas, &referenceCanvas, | 814 AssertCanvasStatesEqual(reporter, &proxyCanvas, &referenceCanvas, |
816 testStep); | 815 testStep); |
817 // Verify that the indirect canvas reports consitent state | 816 // Verify that the indirect canvas reports consitent state |
818 testStep->setAssertMessageFormat(kProxyIndirectStateAssertMessageFormat); | 817 testStep->setAssertMessageFormat(kProxyIndirectStateAssertMessageFormat); |
819 AssertCanvasStatesEqual(reporter, &indirectCanvas, &referenceCanvas, | 818 AssertCanvasStatesEqual(reporter, &indirectCanvas, &referenceCanvas, |
820 testStep); | 819 testStep); |
821 } | 820 } |
822 | 821 |
823 // unused | 822 // unused |
824 static void TestNWayCanvasStateConsistency( | 823 static void TestNWayCanvasStateConsistency( |
825 skiatest::Reporter* reporter, | 824 skiatest::Reporter* reporter, |
826 CanvasTestStep* testStep, | 825 CanvasTestStep* testStep, |
827 const SkCanvas& referenceCanvas) { | 826 const SkCanvas& referenceCanvas) { |
828 | 827 |
829 SkBitmap indirectStore1; | 828 SkBitmap indirectStore1; |
830 createBitmap(&indirectStore1, 0xFFFFFFFF); | 829 createBitmap(&indirectStore1, 0xFFFFFFFF); |
831 SkBitmapDevice indirectDevice1(indirectStore1); | 830 SkCanvas indirectCanvas1(indirectStore1); |
832 SkCanvas indirectCanvas1(&indirectDevice1); | |
833 | 831 |
834 SkBitmap indirectStore2; | 832 SkBitmap indirectStore2; |
835 createBitmap(&indirectStore2, 0xFFFFFFFF); | 833 createBitmap(&indirectStore2, 0xFFFFFFFF); |
836 SkBitmapDevice indirectDevice2(indirectStore2); | 834 SkCanvas indirectCanvas2(indirectStore2); |
837 SkCanvas indirectCanvas2(&indirectDevice2); | |
838 | 835 |
839 SkISize canvasSize = referenceCanvas.getDeviceSize(); | 836 SkISize canvasSize = referenceCanvas.getDeviceSize(); |
840 SkNWayCanvas nWayCanvas(canvasSize.width(), canvasSize.height()); | 837 SkNWayCanvas nWayCanvas(canvasSize.width(), canvasSize.height()); |
841 nWayCanvas.addCanvas(&indirectCanvas1); | 838 nWayCanvas.addCanvas(&indirectCanvas1); |
842 nWayCanvas.addCanvas(&indirectCanvas2); | 839 nWayCanvas.addCanvas(&indirectCanvas2); |
843 | 840 |
844 testStep->setAssertMessageFormat(kNWayDrawAssertMessageFormat); | 841 testStep->setAssertMessageFormat(kNWayDrawAssertMessageFormat); |
845 testStep->draw(&nWayCanvas, reporter); | 842 testStep->draw(&nWayCanvas, reporter); |
846 // Verify that the SkProxyCanvas reports consitent state | 843 // Verify that the SkProxyCanvas reports consitent state |
847 testStep->setAssertMessageFormat(kNWayStateAssertMessageFormat); | 844 testStep->setAssertMessageFormat(kNWayStateAssertMessageFormat); |
(...skipping 11 matching lines...) Expand all Loading... |
859 /* | 856 /* |
860 * This sub-test verifies that the test step passes when executed | 857 * This sub-test verifies that the test step passes when executed |
861 * with SkCanvas and with classes derrived from SkCanvas. It also verifies | 858 * with SkCanvas and with classes derrived from SkCanvas. It also verifies |
862 * that the all canvas derivatives report the same state as an SkCanvas | 859 * that the all canvas derivatives report the same state as an SkCanvas |
863 * after having executed the test step. | 860 * after having executed the test step. |
864 */ | 861 */ |
865 static void TestOverrideStateConsistency(skiatest::Reporter* reporter, | 862 static void TestOverrideStateConsistency(skiatest::Reporter* reporter, |
866 CanvasTestStep* testStep) { | 863 CanvasTestStep* testStep) { |
867 SkBitmap referenceStore; | 864 SkBitmap referenceStore; |
868 createBitmap(&referenceStore, 0xFFFFFFFF); | 865 createBitmap(&referenceStore, 0xFFFFFFFF); |
869 SkBitmapDevice referenceDevice(referenceStore); | 866 SkCanvas referenceCanvas(referenceStore); |
870 SkCanvas referenceCanvas(&referenceDevice); | |
871 testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); | 867 testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); |
872 testStep->draw(&referenceCanvas, reporter); | 868 testStep->draw(&referenceCanvas, reporter); |
873 | 869 |
874 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, false); | 870 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, false); |
875 | 871 |
876 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, true); | 872 SkDeferredCanvasTester::TestDeferredCanvasStateConsistency(reporter, testSte
p, referenceCanvas, true); |
877 | 873 |
878 // The following test code is disabled because SkProxyCanvas is | 874 // The following test code is disabled because SkProxyCanvas is |
879 // missing a lot of virtual overrides on get* methods, which are used | 875 // missing a lot of virtual overrides on get* methods, which are used |
880 // to verify canvas state. | 876 // to verify canvas state. |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 if (testStepArray()[testStep]->enablePdfTesting()) { | 944 if (testStepArray()[testStep]->enablePdfTesting()) { |
949 TestPdfDevice(reporter, testStepArray()[testStep]); | 945 TestPdfDevice(reporter, testStepArray()[testStep]); |
950 } | 946 } |
951 } | 947 } |
952 | 948 |
953 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i
s a global) | 949 // Explicitly call reset(), so we don't leak the pixels (since kTestBitmap i
s a global) |
954 kTestBitmap.reset(); | 950 kTestBitmap.reset(); |
955 | 951 |
956 test_newraster(reporter); | 952 test_newraster(reporter); |
957 } | 953 } |
OLD | NEW |