OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 #include <functional> | 8 #include <functional> |
9 #include <initializer_list> | 9 #include <initializer_list> |
10 #include <vector> | 10 #include <vector> |
(...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
887 { create_image_large, {{SkMatrix::I(), kMedium_SkFilterQuality, 5}, | 887 { create_image_large, {{SkMatrix::I(), kMedium_SkFilterQuality, 5}, |
888 {SkMatrix::I(), kMedium_SkFilterQuality, 4}}, | 888 {SkMatrix::I(), kMedium_SkFilterQuality, 4}}, |
889 kMedium_SkFilterQuality, 16, true}, | 889 kMedium_SkFilterQuality, 16, true}, |
890 }; | 890 }; |
891 | 891 |
892 | 892 |
893 for (auto testCase : testCases) { | 893 for (auto testCase : testCases) { |
894 sk_sp<SkImage> image(testCase.fImageFactory()); | 894 sk_sp<SkImage> image(testCase.fImageFactory()); |
895 size_t size = image->getDeferredTextureImageData(*proxy, testCase.fParam
s.data(), | 895 size_t size = image->getDeferredTextureImageData(*proxy, testCase.fParam
s.data(), |
896 static_cast<int>(testCa
se.fParams.size()), | 896 static_cast<int>(testCa
se.fParams.size()), |
897 nullptr, SkSourceGammaT
reatment::kIgnore); | 897 nullptr); |
| 898 |
898 static const char *const kFS[] = { "fail", "succeed" }; | 899 static const char *const kFS[] = { "fail", "succeed" }; |
899 if (SkToBool(size) != testCase.fExpectation) { | 900 if (SkToBool(size) != testCase.fExpectation) { |
900 ERRORF(reporter, "This image was expected to %s but did not.", | 901 ERRORF(reporter, "This image was expected to %s but did not.", |
901 kFS[testCase.fExpectation]); | 902 kFS[testCase.fExpectation]); |
902 } | 903 } |
903 if (size) { | 904 if (size) { |
904 void* buffer = sk_malloc_throw(size); | 905 void* buffer = sk_malloc_throw(size); |
905 void* misaligned = reinterpret_cast<void*>(reinterpret_cast<intptr_t
>(buffer) + 3); | 906 void* misaligned = reinterpret_cast<void*>(reinterpret_cast<intptr_t
>(buffer) + 3); |
906 if (image->getDeferredTextureImageData(*proxy, testCase.fParams.data
(), | 907 if (image->getDeferredTextureImageData(*proxy, testCase.fParams.data
(), |
907 static_cast<int>(testCase.fPa
rams.size()), | 908 static_cast<int>(testCase.fPa
rams.size()), |
908 misaligned, SkSourceGammaTrea
tment::kIgnore)) { | 909 misaligned)) { |
909 ERRORF(reporter, "Should fail when buffer is misaligned."); | 910 ERRORF(reporter, "Should fail when buffer is misaligned."); |
910 } | 911 } |
911 if (!image->getDeferredTextureImageData(*proxy, testCase.fParams.dat
a(), | 912 if (!image->getDeferredTextureImageData(*proxy, testCase.fParams.dat
a(), |
912 static_cast<int>(testCase.fP
arams.size()), | 913 static_cast<int>(testCase.fP
arams.size()), |
913 buffer, SkSourceGammaTreatme
nt::kIgnore)) { | 914 buffer)) { |
914 ERRORF(reporter, "deferred image size succeeded but creation fai
led."); | 915 ERRORF(reporter, "deferred image size succeeded but creation fai
led."); |
915 } else { | 916 } else { |
916 for (auto budgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { | 917 for (auto budgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { |
917 sk_sp<SkImage> newImage( | 918 sk_sp<SkImage> newImage( |
918 SkImage::MakeFromDeferredTextureImageData(context, buffe
r, budgeted)); | 919 SkImage::MakeFromDeferredTextureImageData(context, buffe
r, budgeted)); |
919 REPORTER_ASSERT(reporter, newImage != nullptr); | 920 REPORTER_ASSERT(reporter, newImage != nullptr); |
920 if (newImage) { | 921 if (newImage) { |
921 // Scale the image in software for comparison. | 922 // Scale the image in software for comparison. |
922 SkImageInfo scaled_info = SkImageInfo::MakeN32( | 923 SkImageInfo scaled_info = SkImageInfo::MakeN32( |
923 image->width() / testCase.fExpectedScaleFactor, | 924 image->width() / testCase.fExpectedScaleFactor, |
(...skipping 11 matching lines...) Expand all Loading... |
935 otherContextInfo.grContext(), buffer, budgeted)); | 936 otherContextInfo.grContext(), buffer, budgeted)); |
936 REPORTER_ASSERT(reporter, !newImage2); | 937 REPORTER_ASSERT(reporter, !newImage2); |
937 testContext->makeCurrent(); | 938 testContext->makeCurrent(); |
938 } | 939 } |
939 } | 940 } |
940 sk_free(buffer); | 941 sk_free(buffer); |
941 } | 942 } |
942 } | 943 } |
943 } | 944 } |
944 #endif | 945 #endif |
OLD | NEW |