Lines Matching defs:walker

970     TextRunWalker walker(run, 0, 0, this);
971 walker.setWordAndLetterSpacing(wordSpacing(), letterSpacing());
975 int base = walker.rtl() ? walker.widthOfFullRun() : 0;
979 // code. This call also resets |walker|.
980 walker.setBackwardsIteration(false);
986 while (walker.nextScriptRun() && (fromX == -1 || toX == -1)) {
990 walker.setXOffsetToZero();
992 if (walker.rtl())
993 base -= walker.width();
995 int numCodePoints = static_cast<int>(walker.numCodePoints());
1000 int glyph = walker.logClusters()[from];
1001 fromX = base + walker.positions()[glyph].x();
1002 if (walker.rtl())
1003 fromX += truncateFixedPointToInteger(walker.advances()[glyph]);
1008 int glyph = walker.logClusters()[to];
1009 toX = base + walker.positions()[glyph].x();
1010 if (walker.rtl())
1011 toX += truncateFixedPointToInteger(walker.advances()[glyph]);
1015 if (!walker.rtl())
1016 base += walker.width();
1055 TextRunWalker walker(run, point.x(), point.y(), this);
1056 walker.setWordAndLetterSpacing(wordSpacing(), letterSpacing());
1057 walker.setPadding(run.expansion());
1059 while (walker.nextScriptRun()) {
1061 walker.fontPlatformDataForScriptRun()->setupPaint(&fillPaint);
1063 canvas->drawPosText(walker.glyphs(),
1064 walker.length() << 1, walker.positions(), fillPaint);
1067 walker.fontPlatformDataForScriptRun()->setupPaint(&strokePaint);
1069 canvas->drawPosText(walker.glyphs(),
1070 walker.length() << 1, walker.positions(), strokePaint);
1079 TextRunWalker walker(run, 0, 0, this);
1080 walker.setWordAndLetterSpacing(wordSpacing(), letterSpacing());
1081 return walker.widthOfFullRun();
1084 static int glyphIndexForXPositionInScriptRun(const TextRunWalker& walker, int x)
1086 const HB_Fixed* advances = walker.advances();
1088 if (walker.rtl()) {
1089 for (glyphIndex = walker.length() - 1; glyphIndex >= 0; --glyphIndex) {
1095 for (glyphIndex = 0; glyphIndex < static_cast<int>(walker.length());
1111 TextRunWalker walker(run, 0, 0, this);
1112 walker.setWordAndLetterSpacing(wordSpacing(), letterSpacing());
1121 if (walker.rtl()) {
1144 while (walker.nextScriptRun()) {
1145 if (walker.rtl())
1146 basePosition -= walker.numCodePoints();
1148 if (x >= 0 && x < static_cast<int>(walker.width())) {
1152 const int glyphIndex = glyphIndexForXPositionInScriptRun(walker, x);
1164 const unsigned short* log = walker.logClusters();
1165 for (unsigned j = 0; j < walker.numCodePoints(); ++j) {
1170 return basePosition + walker.numCodePoints() - 1;
1173 x -= walker.width();
1175 if (!walker.rtl())
1176 basePosition += walker.numCodePoints();