Commit 7f4da1df authored by eae@chromium.org's avatar eae@chromium.org

[DirectWrite] Force fully aliased text for certain fonts at small sizes

Force the use of fully aliased text for certain common east asian fonts
at smaller font sizes to ensure that text is legible. This is only
required for fonts without an embedded bitmap at a the specific size and
the minimum size for enabling anti aliasing is set on a per font basis.

BUG=383090,383040
R=dglazkov@chromium.org, cpu@chromium.org

Review URL: https://codereview.chromium.org/339693002

git-svn-id: svn://svn.chromium.org/blink/trunk@176244 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 1e6b0f02
......@@ -1017,6 +1017,10 @@ crbug.com/374569 [ Win ] http/tests/navigation/beacon-cross-origin.html [ Pass F
crbug.com/374572 svg/filters/feImage-target-reappend-to-document.svg [ Pass Failure ]
crbug.com/374572 svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop.html [ Pass ImageOnlyFailure ]
Bug(eae) [ Win7 ] fast/text/justify-ideograph-vertical.html [ NeedsRebaseline ]
Bug(eae) [ Win7 ] virtual/antialiasedtext/fast/text/international/wrap-CJK-001.html [ NeedsRebaseline ]
Bug(eae) [ Win7 ] virtual/antialiasedtext/fast/text/justify-ideograph-vertical.html [ NeedsRebaseline ]
crbug.com/371651 svg/custom/deep-dynamic-updates.svg [ Pass Failure ]
crbug.com/371651 svg/custom/js-update-gradient.svg [ Pass Failure ]
crbug.com/371651 svg/custom/js-update-pattern.svg [ Pass Failure ]
......
......@@ -225,6 +225,23 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
fontDescription.orientation(),
s_useSubpixelPositioning);
struct FamilyMinSize {
const wchar_t* family;
unsigned minSize;
};
const static FamilyMinSize minAntiAliasSizeForFont[] = {
{ L"simsun", 16 },
{ L"dotum", 12 }
};
size_t numFonts = WTF_ARRAY_LENGTH(minAntiAliasSizeForFont);
for (size_t i = 0; i < numFonts; i++) {
FamilyMinSize entry = minAntiAliasSizeForFont[i];
if (typefacesMatchesFamily(tf.get(), entry.family)) {
result->setMinSizeForAntiAlias(entry.minSize);
break;
}
}
return result;
}
......
......@@ -62,6 +62,7 @@ void FontPlatformData::setupPaint(SkPaint* paint, GraphicsContext* context) cons
if (ts <= kMaxSizeForEmbeddedBitmap)
flags |= SkPaint::kEmbeddedBitmapText_Flag;
if (ts >= m_minSizeForAntiAlias) {
if (m_useSubpixelPositioning)
flags |= SkPaint::kSubpixelText_Flag;
......@@ -77,6 +78,7 @@ void FontPlatformData::setupPaint(SkPaint* paint, GraphicsContext* context) cons
}
SkASSERT(!(textFlags & ~textFlagsMask));
flags |= textFlags;
}
paint->setFlags(flags);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment