aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/gpu/SkGr.h7
-rw-r--r--src/gpu/SkGpuDevice.cpp15
-rw-r--r--src/gpu/SkGr.cpp8
-rw-r--r--tests/ReadPixelsTest.cpp5
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;