| 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 "DMGpuSupport.h" | 10 #include "DMGpuSupport.h" |
| (...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 | 856 |
| 857 | 857 |
| 858 for (auto testCase : testCases) { | 858 for (auto testCase : testCases) { |
| 859 sk_sp<SkImage> image(testCase.fImageFactory()); | 859 sk_sp<SkImage> image(testCase.fImageFactory()); |
| 860 | 860 |
| 861 // This isn't currently used in the implementation, just set any old val
ues. | 861 // This isn't currently used in the implementation, just set any old val
ues. |
| 862 SkImage::DeferredTextureImageUsageParams params; | 862 SkImage::DeferredTextureImageUsageParams params; |
| 863 params.fQuality = kLow_SkFilterQuality; | 863 params.fQuality = kLow_SkFilterQuality; |
| 864 params.fMatrix = SkMatrix::I(); | 864 params.fMatrix = SkMatrix::I(); |
| 865 | 865 |
| 866 size_t size = image->getDeferredTextureImageData(*proxy, ¶ms, 1, nul
lptr); | 866 size_t size = image->getDeferredTextureImageData(*proxy, ¶ms, 1, nul
lptr, |
| 867 SkSourceGammaTreatment:
:kRespect); |
| 867 | 868 |
| 868 static const char *const kFS[] = { "fail", "succeed" }; | 869 static const char *const kFS[] = { "fail", "succeed" }; |
| 869 if (SkToBool(size) != testCase.fExpectation) { | 870 if (SkToBool(size) != testCase.fExpectation) { |
| 870 ERRORF(reporter, "This image was expected to %s but did not.", | 871 ERRORF(reporter, "This image was expected to %s but did not.", |
| 871 kFS[testCase.fExpectation]); | 872 kFS[testCase.fExpectation]); |
| 872 } | 873 } |
| 873 if (size) { | 874 if (size) { |
| 874 void* buffer = sk_malloc_throw(size); | 875 void* buffer = sk_malloc_throw(size); |
| 875 void* misaligned = reinterpret_cast<void*>(reinterpret_cast<intptr_t
>(buffer) + 3); | 876 void* misaligned = reinterpret_cast<void*>(reinterpret_cast<intptr_t
>(buffer) + 3); |
| 876 if (image->getDeferredTextureImageData(*proxy, ¶ms, 1, misaligne
d)) { | 877 if (image->getDeferredTextureImageData(*proxy, ¶ms, 1, misaligne
d, |
| 878 SkSourceGammaTreatment::kResp
ect)) { |
| 877 ERRORF(reporter, "Should fail when buffer is misaligned."); | 879 ERRORF(reporter, "Should fail when buffer is misaligned."); |
| 878 } | 880 } |
| 879 if (!image->getDeferredTextureImageData(*proxy, ¶ms, 1, buffer))
{ | 881 if (!image->getDeferredTextureImageData(*proxy, ¶ms, 1, buffer, |
| 882 SkSourceGammaTreatment::kRes
pect)) { |
| 880 ERRORF(reporter, "deferred image size succeeded but creation fai
led."); | 883 ERRORF(reporter, "deferred image size succeeded but creation fai
led."); |
| 881 } else { | 884 } else { |
| 882 for (auto budgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { | 885 for (auto budgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { |
| 883 sk_sp<SkImage> newImage( | 886 sk_sp<SkImage> newImage( |
| 884 SkImage::MakeFromDeferredTextureImageData(context, buffe
r, budgeted)); | 887 SkImage::MakeFromDeferredTextureImageData(context, buffe
r, budgeted)); |
| 885 REPORTER_ASSERT(reporter, newImage != nullptr); | 888 REPORTER_ASSERT(reporter, newImage != nullptr); |
| 886 if (newImage) { | 889 if (newImage) { |
| 887 check_images_same(reporter, image.get(), newImage.get())
; | 890 check_images_same(reporter, image.get(), newImage.get())
; |
| 888 } | 891 } |
| 889 // The other context should not be able to create images fro
m texture data | 892 // The other context should not be able to create images fro
m texture data |
| 890 // created by the original context. | 893 // created by the original context. |
| 891 sk_sp<SkImage> newImage2(SkImage::MakeFromDeferredTextureIma
geData( | 894 sk_sp<SkImage> newImage2(SkImage::MakeFromDeferredTextureIma
geData( |
| 892 otherContextInfo.grContext(), buffer, budgeted)); | 895 otherContextInfo.grContext(), buffer, budgeted)); |
| 893 REPORTER_ASSERT(reporter, !newImage2); | 896 REPORTER_ASSERT(reporter, !newImage2); |
| 894 testContext->makeCurrent(); | 897 testContext->makeCurrent(); |
| 895 } | 898 } |
| 896 } | 899 } |
| 897 sk_free(buffer); | 900 sk_free(buffer); |
| 898 } | 901 } |
| 899 } | 902 } |
| 900 } | 903 } |
| 901 #endif | 904 #endif |
| OLD | NEW |