Home | History | Annotate | Download | only in chromium

Lines Matching refs:walker

506     TextRunWalker walker(run, point.x(), this);
509 while (walker.nextScriptRun()) {
511 walker.fontPlatformDataForScriptRun()->setupPaint(&fillPaint);
513 canvas->drawPosTextH(walker.glyphs(), walker.length() << 1, walker.xPositions(), point.y(), fillPaint);
517 walker.fontPlatformDataForScriptRun()->setupPaint(&strokePaint);
519 canvas->drawPosTextH(walker.glyphs(), walker.length() << 1, walker.xPositions(), point.y(), strokePaint);
526 TextRunWalker walker(run, 0, this);
527 return walker.widthOfFullRun();
530 static int glyphIndexForXPositionInScriptRun(const TextRunWalker& walker, int x)
532 const HB_Fixed* advances = walker.advances();
534 if (walker.rtl()) {
535 for (glyphIndex = walker.length() - 1; glyphIndex >= 0; --glyphIndex) {
541 for (glyphIndex = 0; glyphIndex < walker.length(); ++glyphIndex) {
557 TextRunWalker walker(run, 0, this);
566 if (walker.rtl()) {
589 while (walker.nextScriptRun()) {
590 if (walker.rtl())
591 basePosition -= walker.numCodePoints();
593 if (x < walker.width()) {
597 const int glyphIndex = glyphIndexForXPositionInScriptRun(walker, x);
609 const unsigned short* log = walker.logClusters();
610 for (unsigned j = 0; j < walker.numCodePoints(); ++j) {
615 return basePosition + walker.numCodePoints() - 1;
618 x -= walker.width();
620 if (!walker.rtl())
621 basePosition += walker.numCodePoints();
633 TextRunWalker walker(run, 0, this);
637 int base = walker.rtl() ? walker.widthOfFullRun() : 0;
641 // code. This call also resets |walker|.
642 walker.setBackwardsIteration(false);
644 while (walker.nextScriptRun() && (fromX == -1 || toX == -1)) {
648 walker.setXOffsetToZero();
650 if (walker.rtl())
651 base -= walker.width();
653 if (fromX == -1 && from < walker.numCodePoints()) {
657 int glyph = walker.logClusters()[from];
658 fromX = base + walker.xPositions()[glyph];
659 fromAdvance = walker.advances()[glyph];
661 from -= walker.numCodePoints();
663 if (toX == -1 && to < walker.numCodePoints()) {
664 int glyph = walker.logClusters()[to];
665 toX = base + walker.xPositions()[glyph];
666 toAdvance = walker.advances()[glyph];
668 to -= walker.numCodePoints();
670 if (!walker.rtl())
671 base += walker.width();
678 else if (walker.rtl())