diff options
-rw-r--r-- | include/gpu/SkGr.h | 7 | ||||
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 15 | ||||
-rw-r--r-- | src/gpu/SkGr.cpp | 8 | ||||
-rw-r--r-- | tests/ReadPixelsTest.cpp | 5 |
4 files changed, 7 insertions, 28 deletions
diff --git a/include/gpu/SkGr.h b/include/gpu/SkGr.h index e59720e82d..e2f09e5ac2 100644 --- a/include/gpu/SkGr.h +++ b/include/gpu/SkGr.h @@ -84,12 +84,7 @@ GrTexture* GrRefCachedBitmapTexture(GrContext*, const SkBitmap&, const GrSampler sk_sp<GrTexture> GrMakeCachedBitmapTexture(GrContext*, const SkBitmap&, const GrSamplerParams&); // TODO: Move SkImageInfo2GrPixelConfig to SkGrPriv.h (requires cleanup to SkWindow its subclasses). -GrPixelConfig SkImageInfo2GrPixelConfig(SkColorType, SkAlphaType, const SkColorSpace*, - const GrCaps&); - -static inline GrPixelConfig SkImageInfo2GrPixelConfig(const SkImageInfo& info, const GrCaps& caps) { - return SkImageInfo2GrPixelConfig(info.colorType(), info.alphaType(), info.colorSpace(), caps); -} +GrPixelConfig SkImageInfo2GrPixelConfig(const SkImageInfo& info, const GrCaps& caps); GrSamplerParams::FilterMode GrSkFilterQualityToGrFilterMode(SkFilterQuality paintFilterQuality, const SkMatrix& viewM, diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index 3e94d32956..845b22c3cc 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -163,21 +163,10 @@ sk_sp<GrRenderTargetContext> SkGpuDevice::MakeRenderTargetContext( return nullptr; } - SkColorType ct = origInfo.colorType(); - SkAlphaType at = origInfo.alphaType(); - SkColorSpace* cs = origInfo.colorSpace(); - if (kRGB_565_SkColorType == ct || kGray_8_SkColorType == ct) { - at = kOpaque_SkAlphaType; // force this setting - } - if (kOpaque_SkAlphaType != at) { - at = kPremul_SkAlphaType; // force this setting - } - - GrPixelConfig config = SkImageInfo2GrPixelConfig(ct, at, cs, *context->caps()); - + GrPixelConfig config = SkImageInfo2GrPixelConfig(origInfo, *context->caps()); return context->makeRenderTargetContext(SkBackingFit::kExact, // Why exact? origInfo.width(), origInfo.height(), - config, sk_ref_sp(cs), sampleCount, + config, sk_ref_sp(origInfo.colorSpace()), sampleCount, origin, surfaceProps, budgeted); } diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp index 6837a3d56c..5c937d40e8 100644 --- a/src/gpu/SkGr.cpp +++ b/src/gpu/SkGr.cpp @@ -378,13 +378,11 @@ GrColor4f SkColorToUnpremulGrColor4f(SkColor c, bool gammaCorrect, GrColorSpaceX /////////////////////////////////////////////////////////////////////////////// -// alphatype is ignore for now, but if GrPixelConfig is expanded to encompass -// alpha info, that will be considered. -GrPixelConfig SkImageInfo2GrPixelConfig(SkColorType ct, SkAlphaType, const SkColorSpace* cs, - const GrCaps& caps) { +GrPixelConfig SkImageInfo2GrPixelConfig(const SkImageInfo& info, const GrCaps& caps) { // We intentionally ignore profile type for non-8888 formats. Anything we can't support // in hardware will be expanded to sRGB 8888 in GrUploadPixmapToTexture. - switch (ct) { + SkColorSpace* cs = info.colorSpace(); + switch (info.colorType()) { case kUnknown_SkColorType: return kUnknown_GrPixelConfig; case kAlpha_8_SkColorType: diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp index 71cd8f5fc9..ee762d19a2 100644 --- a/tests/ReadPixelsTest.cpp +++ b/tests/ReadPixelsTest.cpp @@ -449,10 +449,7 @@ static void test_readpixels_texture(skiatest::Reporter* reporter, GrTexture* tex if (startsWithPixels) { fill_dst_bmp_with_init_data(&bmp); GrPixelConfig dstConfig = - SkImageInfo2GrPixelConfig(gReadPixelsConfigs[c].fColorType, - gReadPixelsConfigs[c].fAlphaType, - nullptr, - *texture->getContext()->caps()); + SkImageInfo2GrPixelConfig(bmp.info(), *texture->getContext()->caps()); uint32_t flags = 0; if (gReadPixelsConfigs[c].fAlphaType == kUnpremul_SkAlphaType) { flags = GrContext::kUnpremul_PixelOpsFlag; |