Index: third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp |
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp |
index 82b6917ae754808671abf75175140911282aea72..c75d18caeddd36d9e9f498ab54c945c3764b35e3 100644 |
--- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp |
+++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp |
@@ -90,11 +90,13 @@ float ShapeResultBuffer::fillGlyphBufferForRun(GlyphBuffer* glyphBuffer, |
const HarfBuzzRunGlyphData& glyphData = run->m_glyphData[i]; |
uint16_t currentCharacterIndex = |
run->m_startIndex + glyphData.characterIndex + runOffset; |
- if ((direction == RTL && currentCharacterIndex >= to) || |
- (direction == LTR && currentCharacterIndex < from)) { |
+ if ((direction == TextDirection::Rtl && currentCharacterIndex >= to) || |
+ (direction == TextDirection::Ltr && currentCharacterIndex < from)) { |
advanceSoFar += glyphData.advance; |
- } else if ((direction == RTL && currentCharacterIndex >= from) || |
- (direction == LTR && currentCharacterIndex < to)) { |
+ } else if ((direction == TextDirection::Rtl && |
+ currentCharacterIndex >= from) || |
+ (direction == TextDirection::Ltr && |
+ currentCharacterIndex < to)) { |
addGlyphToBuffer(glyphBuffer, advanceSoFar, run->m_direction, |
run->m_fontData.get(), glyphData); |
advanceSoFar += glyphData.advance; |
@@ -131,8 +133,9 @@ float ShapeResultBuffer::fillGlyphBufferForTextEmphasisRun( |
// linearly split the sum of corresponding glyph advances by the number of |
// grapheme clusters in order to find positions for emphasis mark drawing. |
uint16_t clusterStart = static_cast<uint16_t>( |
- direction == RTL ? run->m_startIndex + run->m_numCharacters + runOffset |
- : run->glyphToCharacterIndex(0) + runOffset); |
+ direction == TextDirection::Rtl |
+ ? run->m_startIndex + run->m_numCharacters + runOffset |
+ : run->glyphToCharacterIndex(0) + runOffset); |
float advanceSoFar = initialAdvance; |
const unsigned numGlyphs = run->m_glyphData.size(); |
@@ -145,10 +148,10 @@ float ShapeResultBuffer::fillGlyphBufferForTextEmphasisRun( |
isRunEnd || (run->glyphToCharacterIndex(i + 1) + runOffset != |
currentCharacterIndex); |
- if ((direction == RTL && currentCharacterIndex >= to) || |
- (direction != RTL && currentCharacterIndex < from)) { |
+ if ((direction == TextDirection::Rtl && currentCharacterIndex >= to) || |
+ (direction != TextDirection::Rtl && currentCharacterIndex < from)) { |
advanceSoFar += glyphData.advance; |
- direction == RTL ? --clusterStart : ++clusterStart; |
+ direction == TextDirection::Rtl ? --clusterStart : ++clusterStart; |
continue; |
} |
@@ -163,7 +166,7 @@ float ShapeResultBuffer::fillGlyphBufferForTextEmphasisRun( |
advanceSoFar += glyphAdvanceX; |
} else if (isClusterEnd) { |
uint16_t clusterEnd; |
- if (direction == RTL) |
+ if (direction == TextDirection::Rtl) |
clusterEnd = currentCharacterIndex; |
else |
clusterEnd = static_cast<uint16_t>( |
@@ -240,7 +243,7 @@ float ShapeResultBuffer::fillGlyphBuffer(GlyphBuffer* glyphBuffer, |
unsigned resolvedIndex = m_results.size() - 1 - j; |
const RefPtr<const ShapeResult>& wordResult = m_results[resolvedIndex]; |
for (unsigned i = 0; i < wordResult->m_runs.size(); i++) { |
- advance += fillGlyphBufferForRun<RTL>( |
+ advance += fillGlyphBufferForRun<TextDirection::Rtl>( |
glyphBuffer, wordResult->m_runs[i].get(), advance, from, to, |
wordOffset - wordResult->numCharacters()); |
} |
@@ -251,9 +254,9 @@ float ShapeResultBuffer::fillGlyphBuffer(GlyphBuffer* glyphBuffer, |
for (unsigned j = 0; j < m_results.size(); j++) { |
const RefPtr<const ShapeResult>& wordResult = m_results[j]; |
for (unsigned i = 0; i < wordResult->m_runs.size(); i++) { |
- advance += |
- fillGlyphBufferForRun<LTR>(glyphBuffer, wordResult->m_runs[i].get(), |
- advance, from, to, wordOffset); |
+ advance += fillGlyphBufferForRun<TextDirection::Ltr>( |
+ glyphBuffer, wordResult->m_runs[i].get(), advance, from, to, |
+ wordOffset); |
} |
wordOffset += wordResult->numCharacters(); |
} |
@@ -297,7 +300,7 @@ CharacterRange ShapeResultBuffer::getCharacterRange(TextDirection direction, |
bool foundFromX = false; |
bool foundToX = false; |
- if (direction == RTL) |
+ if (direction == TextDirection::Rtl) |
currentX = totalWidth; |
// The absoluteFrom and absoluteTo arguments represent the start/end offset |
@@ -309,7 +312,7 @@ CharacterRange ShapeResultBuffer::getCharacterRange(TextDirection direction, |
unsigned totalNumCharacters = 0; |
for (unsigned j = 0; j < m_results.size(); j++) { |
const RefPtr<const ShapeResult> result = m_results[j]; |
- if (direction == RTL) { |
+ if (direction == TextDirection::Rtl) { |
// Convert logical offsets to visual offsets, because results are in |
// logical order while runs are in visual order. |
if (!foundFromX && from >= 0 && |
@@ -323,7 +326,7 @@ CharacterRange ShapeResultBuffer::getCharacterRange(TextDirection direction, |
for (unsigned i = 0; i < result->m_runs.size(); i++) { |
if (!result->m_runs[i]) |
continue; |
- ASSERT((direction == RTL) == result->m_runs[i]->rtl()); |
+ DCHECK_EQ(direction == TextDirection::Rtl, result->m_runs[i]->rtl()); |
int numCharacters = result->m_runs[i]->m_numCharacters; |
if (!foundFromX && from >= 0 && from < numCharacters) { |
fromX = |
@@ -346,24 +349,24 @@ CharacterRange ShapeResultBuffer::getCharacterRange(TextDirection direction, |
break; |
currentX += result->m_runs[i]->m_width; |
} |
- if (direction == RTL) |
+ if (direction == TextDirection::Rtl) |
currentX -= result->width(); |
totalNumCharacters += result->numCharacters(); |
} |
// The position in question might be just after the text. |
if (!foundFromX && absoluteFrom == totalNumCharacters) { |
- fromX = direction == RTL ? 0 : totalWidth; |
+ fromX = direction == TextDirection::Rtl ? 0 : totalWidth; |
foundFromX = true; |
} |
if (!foundToX && absoluteTo == totalNumCharacters) { |
- toX = direction == RTL ? 0 : totalWidth; |
+ toX = direction == TextDirection::Rtl ? 0 : totalWidth; |
foundToX = true; |
} |
if (!foundFromX) |
fromX = 0; |
if (!foundToX) |
- toX = direction == RTL ? 0 : totalWidth; |
+ toX = direction == TextDirection::Rtl ? 0 : totalWidth; |
// None of our runs is part of the selection, possibly invalid arguments. |
if (!foundToX && !foundFromX) |
@@ -398,17 +401,18 @@ Vector<CharacterRange> ShapeResultBuffer::individualCharacterRanges( |
TextDirection direction, |
float totalWidth) const { |
Vector<CharacterRange> ranges; |
- float currentX = direction == RTL ? totalWidth : 0; |
+ float currentX = direction == TextDirection::Rtl ? totalWidth : 0; |
for (const RefPtr<const ShapeResult> result : m_results) { |
- if (direction == RTL) |
+ if (direction == TextDirection::Rtl) |
currentX -= result->width(); |
unsigned runCount = result->m_runs.size(); |
for (unsigned index = 0; index < runCount; index++) { |
- unsigned runIndex = direction == RTL ? runCount - 1 - index : index; |
+ unsigned runIndex = |
+ direction == TextDirection::Rtl ? runCount - 1 - index : index; |
addRunInfoRanges(*result->m_runs[runIndex], currentX, ranges); |
currentX += result->m_runs[runIndex]->m_width; |
} |
- if (direction == RTL) |
+ if (direction == TextDirection::Rtl) |
currentX -= result->width(); |
} |
return ranges; |