Bug 1383817 - clamp gamma/contrast for ScaledFontDWrite when creating SkTypeface. r=mchang

MozReview-Commit-ID: LSSffVooDCI
This commit is contained in:
Lee Salzman 2017-07-24 14:12:26 -04:00
Родитель 7ea4601b8b
Коммит 68f83ebade
2 изменённых файлов: 13 добавлений и 9 удалений

Просмотреть файл

@ -156,7 +156,19 @@ ScaledFontDWrite::GetSkTypeface()
return nullptr;
}
mTypeface = SkCreateTypefaceFromDWriteFont(factory, mFontFace, mStyle, mForceGDIMode, mGamma, mContrast);
Float gamma = mGamma;
// Skia doesn't support a gamma value outside of 0-4, so default to 2.2
if (gamma < 0.0f || gamma > 4.0f) {
gamma = 2.2f;
}
Float contrast = mContrast;
// Skia doesn't support a contrast value outside of 0-1, so default to 1.0
if (contrast < 0.0f || contrast > 1.0f) {
contrast = 1.0f;
}
mTypeface = SkCreateTypefaceFromDWriteFont(factory, mFontFace, mStyle, mForceGDIMode, gamma, contrast);
}
return mTypeface;
}

Просмотреть файл

@ -1193,14 +1193,6 @@ gfxWindowsPlatform::SetupClearTypeParams()
}
}
if (GetDefaultContentBackend() == BackendType::SKIA) {
// Skia doesn't support a contrast value outside of 0-1, so default to 1.0
if (contrast < 0.0 || contrast > 1.0) {
NS_WARNING("Custom dwrite contrast not supported in Skia. Defaulting to 1.0.");
contrast = 1.0;
}
}
// For parameters that have not been explicitly set,
// we copy values from default params (or our overridden value for contrast)
if (gamma < 1.0 || gamma > 2.2) {