Index: Source/platform/fonts/Font.cpp |
diff --git a/Source/platform/fonts/Font.cpp b/Source/platform/fonts/Font.cpp |
index e2ccfba1a003a2602ba31caaea166e73ec7850db..8252dc9fdb79bea43179a155871fdad641b04656 100644 |
--- a/Source/platform/fonts/Font.cpp |
+++ b/Source/platform/fonts/Font.cpp |
@@ -110,12 +110,7 @@ float Font::drawText(GraphicsContext* context, const TextRunPaintInfo& runInfo, |
if (shouldSkipDrawing() && customFontNotReadyAction == DoNotPaintIfFontNotReady) |
return 0; |
- CodePath codePathToUse = codePath(runInfo.run); |
- // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050 |
- if (codePathToUse != ComplexPath && fontDescription().typesettingFeatures() && (runInfo.from || runInfo.to != runInfo.run.length())) |
- codePathToUse = ComplexPath; |
- |
- if (codePathToUse != ComplexPath) |
+ if (codePath(runInfo.run, runInfo.from, runInfo.to) != ComplexPath) |
return drawSimpleText(context, runInfo, point); |
return drawComplexText(context, runInfo, point); |
@@ -126,12 +121,7 @@ void Font::drawEmphasisMarks(GraphicsContext* context, const TextRunPaintInfo& r |
if (shouldSkipDrawing()) |
return; |
- CodePath codePathToUse = codePath(runInfo.run); |
- // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050 |
- if (codePathToUse != ComplexPath && fontDescription().typesettingFeatures() && (runInfo.from || runInfo.to != runInfo.run.length())) |
- codePathToUse = ComplexPath; |
- |
- if (codePathToUse != ComplexPath) |
+ if (codePath(runInfo.run, runInfo.from, runInfo.to) != ComplexPath) |
drawEmphasisMarksForSimpleText(context, runInfo, mark, point); |
else |
drawEmphasisMarksForComplexText(context, runInfo, mark, point); |
@@ -211,12 +201,7 @@ PassTextBlobPtr Font::buildTextBlob(const TextRunPaintInfo& runInfo, const Float |
if (shouldSkipDrawing() && customFontNotReadyAction == DoNotPaintIfFontNotReady) |
return nullptr; |
- CodePath codePathToUse = codePath(runInfo.run); |
- // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050 |
- if (codePathToUse != ComplexPath && fontDescription().typesettingFeatures() && (runInfo.from || runInfo.to != runInfo.run.length())) |
- codePathToUse = ComplexPath; |
- |
- if (codePathToUse != ComplexPath) |
+ if (codePath(runInfo.run, runInfo.from, runInfo.to) != ComplexPath) |
return buildTextBlobForSimpleText(runInfo, textOrigin, couldUseLCDRenderedText); |
return nullptr; |
@@ -297,12 +282,7 @@ FloatRect Font::selectionRectForText(const TextRun& run, const FloatPoint& point |
{ |
to = (to == -1 ? run.length() : to); |
- CodePath codePathToUse = codePath(run); |
- // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. See http://webkit.org/b/100050 |
- if (codePathToUse != ComplexPath && fontDescription().typesettingFeatures() && (from || to != run.length())) |
- codePathToUse = ComplexPath; |
- |
- if (codePathToUse != ComplexPath) |
+ if (codePath(run, from, to) != ComplexPath) |
return selectionRectForSimpleText(run, point, h, from, to, accountForGlyphBounds); |
return selectionRectForComplexText(run, point, h, from, to); |
@@ -322,13 +302,15 @@ void Font::setCodePath(CodePath p) |
s_codePath = p; |
} |
-CodePath Font::codePath() |
+CodePath Font::codePath(const TextRun& run, int from, int to) const |
Dominik Röttsches
2014/10/10 13:37:53
I would make the argument a TextRunPaintInfo - whi
f(malita)
2014/10/10 14:09:12
Done.
|
{ |
- return s_codePath; |
-} |
+ // FIXME: Do we really want to override s_codePath? |
Dominik Röttsches
2014/10/10 13:37:54
Can you elaborate on the question? What do we need
f(malita)
2014/10/10 14:09:12
Per comments, I assumed it is a way to force a par
|
+ // FIXME: Use the fast code path once it handles partial runs with kerning and ligatures. |
Dominik Röttsches
2014/10/10 13:37:54
The second FIXME is obsolete. We plan to remove th
f(malita)
2014/10/10 14:09:12
Do you mean SimpleShaper & friends are going away?
|
+ // See http://webkit.org/b/100050 |
+ // (Is that still feasible?) |
+ if (fontDescription().typesettingFeatures() && (from || to != run.length())) |
+ return ComplexPath; |
-CodePath Font::codePath(const TextRun& run) const |
-{ |
if (s_codePath != AutoPath) |
return s_codePath; |