aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/text
diff options
context:
space:
mode:
authorGravatar brianosman <brianosman@google.com>2016-07-08 06:15:45 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-08 06:15:45 -0700
commit86dc226b6024c61fa711475aa9fc2cfd53811ccb (patch)
tree8f1db92fac44516f95ecb4bde44deaa9cff63ace /src/gpu/text
parent4b4a7cca638ce18b97399e40d158a7e9fb448d64 (diff)
Use sRGB pixel config for ARGB masks (color emoji)
Fixes over-bright color emoji and GM:colortype in sRGB mode BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2129913004 Committed: https://skia.googlesource.com/skia/+/920af9fac3d9e275a93910d9c626ee7bc23ed17a Review-Url: https://codereview.chromium.org/2129913004
Diffstat (limited to 'src/gpu/text')
-rw-r--r--src/gpu/text/GrBatchFontCache.cpp2
-rw-r--r--src/gpu/text/GrBatchFontCache.h21
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