diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/GrMipMappedTest.cpp | 3 | ||||
-rw-r--r-- | tests/ImageTest.cpp | 29 |
2 files changed, 31 insertions, 1 deletions
diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp index d71dda8dc0..4e8179950d 100644 --- a/tests/GrMipMappedTest.cpp +++ b/tests/GrMipMappedTest.cpp @@ -136,7 +136,8 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter, } std::unique_ptr<SkImageGenerator> imageGen = GrBackendTextureImageGenerator::Make( - texture, kTopLeft_GrSurfaceOrigin, nullptr, kPremul_SkAlphaType, nullptr); + texture, kTopLeft_GrSurfaceOrigin, nullptr, kRGBA_8888_SkColorType, + kPremul_SkAlphaType, nullptr); REPORTER_ASSERT(reporter, imageGen); if (!imageGen) { gpu->deleteTestingOnlyBackendTexture(backendTex); diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index 726a06adc3..98c2f03c2e 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -1021,6 +1021,35 @@ DEF_GPUTEST(SkImage_MakeCrossContextFromPixmapRelease, reporter, options) { }); } +DEF_GPUTEST(SkImage_CrossContextGrayAlphaConfigs, reporter, options) { + + for (SkColorType ct : { kGray_8_SkColorType, kAlpha_8_SkColorType }) { + SkAutoPixmapStorage pixmap; + pixmap.alloc(SkImageInfo::Make(4, 4, ct, kPremul_SkAlphaType)); + + for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) { + GrContextFactory testFactory(options); + GrContextFactory::ContextType ctxType = static_cast<GrContextFactory::ContextType>(i); + ContextInfo ctxInfo = testFactory.getContextInfo(ctxType); + GrContext* ctx = ctxInfo.grContext(); + if (!ctx || !ctx->caps()->crossContextTextureSupport()) { + continue; + } + + sk_sp<SkImage> image = SkImage::MakeCrossContextFromPixmap(ctx, pixmap, false, nullptr); + REPORTER_ASSERT(reporter, image); + + sk_sp<SkColorSpace> texColorSpace; + sk_sp<GrTextureProxy> proxy = as_IB(image)->asTextureProxyRef( + ctx, GrSamplerState::ClampNearest(), nullptr, &texColorSpace, nullptr); + REPORTER_ASSERT(reporter, proxy); + + bool expectAlpha = kAlpha_8_SkColorType == ct; + REPORTER_ASSERT(reporter, expectAlpha == GrPixelConfigIsAlphaOnly(proxy->config())); + } + } +} + static uint32_t GetIdForBackendObject(GrContext* ctx, GrBackendObject object) { if (!object) { return 0; |