diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/text/GrBatchFontCache.cpp | 2 | ||||
-rw-r--r-- | src/gpu/text/GrBatchFontCache.h | 21 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/gpu/text/GrBatchFontCache.cpp b/src/gpu/text/GrBatchFontCache.cpp index faafc16a13..3e212cd171 100644 --- a/src/gpu/text/GrBatchFontCache.cpp +++ b/src/gpu/text/GrBatchFontCache.cpp @@ -18,7 +18,7 @@ bool GrBatchFontCache::initAtlas(GrMaskFormat format) { int index = MaskFormatToAtlasIndex(format); if (!fAtlases[index]) { - GrPixelConfig config = MaskFormatToPixelConfig(format); + GrPixelConfig config = MaskFormatToPixelConfig(format, *fContext->caps()); int width = fAtlasConfigs[index].fWidth; int height = fAtlasConfigs[index].fHeight; int numPlotsX = fAtlasConfigs[index].numPlotsX(); diff --git a/src/gpu/text/GrBatchFontCache.h b/src/gpu/text/GrBatchFontCache.h index 42612fe8b6..2aa67ddebe 100644 --- a/src/gpu/text/GrBatchFontCache.h +++ b/src/gpu/text/GrBatchFontCache.h @@ -186,15 +186,18 @@ public: void setAtlasSizes_ForTesting(const GrBatchAtlasConfig configs[3]); private: - static GrPixelConfig MaskFormatToPixelConfig(GrMaskFormat format) { - static const GrPixelConfig kPixelConfigs[] = { - kAlpha_8_GrPixelConfig, - kRGB_565_GrPixelConfig, - kSkia8888_GrPixelConfig - }; - static_assert(SK_ARRAY_COUNT(kPixelConfigs) == kMaskFormatCount, "array_size_mismatch"); - - return kPixelConfigs[format]; + static GrPixelConfig MaskFormatToPixelConfig(GrMaskFormat format, const GrCaps& caps) { + switch (format) { + case kA8_GrMaskFormat: + return kAlpha_8_GrPixelConfig; + case kA565_GrMaskFormat: + return kRGB_565_GrPixelConfig; + case kARGB_GrMaskFormat: + return caps.srgbSupport() ? kSkiaGamma8888_GrPixelConfig : kSkia8888_GrPixelConfig; + default: + SkDEBUGFAIL("unsupported GrMaskFormat"); + return kAlpha_8_GrPixelConfig; + } } // There is a 1:1 mapping between GrMaskFormats and atlas indices |