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 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 { create_image_large, {{SkMatrix::I(), kMedium_SkFilterQuality, 5}, | 882 { create_image_large, {{SkMatrix::I(), kMedium_SkFilterQuality, 5}, |
883 {SkMatrix::I(), kMedium_SkFilterQuality, 4}}, | 883 {SkMatrix::I(), kMedium_SkFilterQuality, 4}}, |
884 kMedium_SkFilterQuality, 16, true}, | 884 kMedium_SkFilterQuality, 16, true}, |
885 }; | 885 }; |
886 | 886 |
887 | 887 |
888 for (auto testCase : testCases) { | 888 for (auto testCase : testCases) { |
889 sk_sp<SkImage> image(testCase.fImageFactory()); | 889 sk_sp<SkImage> image(testCase.fImageFactory()); |
890 size_t size = image->getDeferredTextureImageData(*proxy, testCase.fParam
s.data(), | 890 size_t size = image->getDeferredTextureImageData(*proxy, testCase.fParam
s.data(), |
891 static_cast<int>(testCa
se.fParams.size()), | 891 static_cast<int>(testCa
se.fParams.size()), |
892 nullptr); | 892 nullptr, SkSourceGammaT
reatment::kIgnore); |
893 | |
894 static const char *const kFS[] = { "fail", "succeed" }; | 893 static const char *const kFS[] = { "fail", "succeed" }; |
895 if (SkToBool(size) != testCase.fExpectation) { | 894 if (SkToBool(size) != testCase.fExpectation) { |
896 ERRORF(reporter, "This image was expected to %s but did not.", | 895 ERRORF(reporter, "This image was expected to %s but did not.", |
897 kFS[testCase.fExpectation]); | 896 kFS[testCase.fExpectation]); |
898 } | 897 } |
899 if (size) { | 898 if (size) { |
900 void* buffer = sk_malloc_throw(size); | 899 void* buffer = sk_malloc_throw(size); |
901 void* misaligned = reinterpret_cast<void*>(reinterpret_cast<intptr_t
>(buffer) + 3); | 900 void* misaligned = reinterpret_cast<void*>(reinterpret_cast<intptr_t
>(buffer) + 3); |
902 if (image->getDeferredTextureImageData(*proxy, testCase.fParams.data
(), | 901 if (image->getDeferredTextureImageData(*proxy, testCase.fParams.data
(), |
903 static_cast<int>(testCase.fPa
rams.size()), | 902 static_cast<int>(testCase.fPa
rams.size()), |
904 misaligned)) { | 903 misaligned, SkSourceGammaTrea
tment::kIgnore)) { |
905 ERRORF(reporter, "Should fail when buffer is misaligned."); | 904 ERRORF(reporter, "Should fail when buffer is misaligned."); |
906 } | 905 } |
907 if (!image->getDeferredTextureImageData(*proxy, testCase.fParams.dat
a(), | 906 if (!image->getDeferredTextureImageData(*proxy, testCase.fParams.dat
a(), |
908 static_cast<int>(testCase.fP
arams.size()), | 907 static_cast<int>(testCase.fP
arams.size()), |
909 buffer)) { | 908 buffer, SkSourceGammaTreatme
nt::kIgnore)) { |
910 ERRORF(reporter, "deferred image size succeeded but creation fai
led."); | 909 ERRORF(reporter, "deferred image size succeeded but creation fai
led."); |
911 } else { | 910 } else { |
912 for (auto budgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { | 911 for (auto budgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { |
913 sk_sp<SkImage> newImage( | 912 sk_sp<SkImage> newImage( |
914 SkImage::MakeFromDeferredTextureImageData(context, buffe
r, budgeted)); | 913 SkImage::MakeFromDeferredTextureImageData(context, buffe
r, budgeted)); |
915 REPORTER_ASSERT(reporter, newImage != nullptr); | 914 REPORTER_ASSERT(reporter, newImage != nullptr); |
916 if (newImage) { | 915 if (newImage) { |
917 // Scale the image in software for comparison. | 916 // Scale the image in software for comparison. |
918 SkImageInfo scaled_info = SkImageInfo::MakeN32( | 917 SkImageInfo scaled_info = SkImageInfo::MakeN32( |
919 image->width() / testCase.fExpectedScaleFactor, | 918 image->width() / testCase.fExpectedScaleFactor, |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 SkBitmap bm1; | 984 SkBitmap bm1; |
986 bm1.allocPixels(SkImageInfo::MakeN32(256, 256, kUnpremul_SkAlphaType)); | 985 bm1.allocPixels(SkImageInfo::MakeN32(256, 256, kUnpremul_SkAlphaType)); |
987 bm0.readPixels(bm1.info(), bm1.getPixels(), bm1.rowBytes(), 0, 0); | 986 bm0.readPixels(bm1.info(), bm1.getPixels(), bm1.rowBytes(), 0, 0); |
988 | 987 |
989 SkBitmap bm2; | 988 SkBitmap bm2; |
990 bm2.allocPixels(SkImageInfo::MakeN32(256, 256, kPremul_SkAlphaType)); | 989 bm2.allocPixels(SkImageInfo::MakeN32(256, 256, kPremul_SkAlphaType)); |
991 bm1.readPixels(bm2.info(), bm2.getPixels(), bm2.rowBytes(), 0, 0); | 990 bm1.readPixels(bm2.info(), bm2.getPixels(), bm2.rowBytes(), 0, 0); |
992 | 991 |
993 REPORTER_ASSERT(reporter, equal(bm0, bm2)); | 992 REPORTER_ASSERT(reporter, equal(bm0, bm2)); |
994 } | 993 } |
OLD | NEW |