• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/ICU-511.35/icuSources/layoutex/

Lines Matching refs:run

57     le_int32 style, run, runStyle;
73 run = 0;
77 * Since the last run limit for each style run must be
83 fRunLimits[run] = 0x7FFFFFFF;
85 // find the minimum run limit for all the styles
87 if (styleRunArrays[style]->getLimit(currentRun[style]) < fRunLimits[run]) {
88 fRunLimits[run] = styleRunArrays[style]->getLimit(currentRun[style]);
92 // advance all styles whose current run is at this limit to the next run
96 if (styleRunArrays[style]->getLimit(currentRun[style]) == fRunLimits[run]) {
101 run += 1;
104 fRunCount = run;
303 * * Return the sub-fonts as the run fonts... could keep the mapping back to the client's FontRuns
372 // now build a LayoutEngine for each style run...
374 le_int32 run, runStart;
383 for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
384 fStyleRunInfo[run].font = NULL;
385 fStyleRunInfo[run].runBase = 0;
386 fStyleRunInfo[run].runLimit = 0;
387 fStyleRunInfo[run].script = (UScriptCode)0;
388 fStyleRunInfo[run].locale = NULL;
389 fStyleRunInfo[run].level = 0;
390 fStyleRunInfo[run].glyphBase = 0;
391 fStyleRunInfo[run].engine = NULL;
392 fStyleRunInfo[run].glyphCount = 0;
393 fStyleRunInfo[run].glyphs = NULL;
394 fStyleRunInfo[run].positions = NULL;
399 for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
400 fStyleRunInfo[run].font = fFontRuns->getFont(styleIndices[0]);
401 fStyleRunInfo[run].runBase = runStart;
402 fStyleRunInfo[run].runLimit = fStyleRunLimits[run];
403 fStyleRunInfo[run].script = (UScriptCode) fScriptRuns->getValue(styleIndices[2]);
404 fStyleRunInfo[run].locale = fLocaleRuns->getLocale(styleIndices[3]);
405 fStyleRunInfo[run].level = (UBiDiLevel) fLevelRuns->getValue(styleIndices[1]);
406 fStyleRunInfo[run].glyphBase = fGlyphCount;
408 fStyleRunInfo[run].engine = LayoutEngine::layoutEngineFactory(fStyleRunInfo[run].font,
409 fStyleRunInfo[run].script, getLanguageCode(fStyleRunInfo[run].locale), layoutStatus);
415 fStyleRunInfo[run].glyphCount = fStyleRunInfo[run].engine->layoutChars(fChars, runStart, fStyleRunLimits[run] - runStart, fCharCount,
416 fStyleRunInfo[run].level & 1, 0, 0, layoutStatus);
422 runStart = fStyleRunLimits[run];
424 fGlyphCount += fStyleRunInfo[run].glyphCount;
446 for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
447 LayoutEngine *engine = fStyleRunInfo[run].engine;
448 le_int32 glyphCount = fStyleRunInfo[run].glyphCount;
449 le_int32 glyphBase = fStyleRunInfo[run].glyphBase;
451 fStyleRunInfo[run].glyphs = LE_NEW_ARRAY(LEGlyphID, glyphCount);
452 fStyleRunInfo[run].positions = LE_NEW_ARRAY(float, glyphCount * 2 + 2);
453 if ((fStyleRunInfo[run].glyphs == NULL) ||
454 (fStyleRunInfo[run].positions == NULL)) {
459 engine->getGlyphs(fStyleRunInfo[run].glyphs, layoutStatus);
465 engine->getGlyphPositions(fStyleRunInfo[run].positions, layoutStatus);
478 fGlyphWidths[glyphBase + glyph] = fStyleRunInfo[run].positions[glyph * 2 + 2] - fStyleRunInfo[run].positions[glyph * 2];
481 if ((fStyleRunInfo[run].level & 1) != 0) {
486 runStart = fStyleRunLimits[run];
489 fStyleRunInfo[run].engine = NULL;
584 le_int32 run;
589 for (run = 0; run < fStyleRunCount; run += 1) {
590 LE_DELETE_ARRAY(fStyleRunInfo[run].glyphs);
591 LE_DELETE_ARRAY(fStyleRunInfo[run].positions);
593 fStyleRunInfo[run].glyphs = NULL;
594 fStyleRunInfo[run].positions = NULL;
710 le_int32 run;
714 for (ch = 0, run = 0; run < fLevelRuns->getCount(); run += 1) {
715 UBiDiLevel runLevel = (UBiDiLevel) fLevelRuns->getValue(run) | UBIDI_LEVEL_OVERRIDE;
716 le_int32 runLimit = fLevelRuns->getLimit(run);
732 le_int32 run;
736 for (run = 0; run < levelRunCount; run += 1) {
789 le_int32 run, offset, *si;
796 for (run = 0; run < styleRunCount; run += 1) {
800 while (offset < styleRunLimits[run]) {
801 const LEFontInstance *subFont = runFont->getSubFont(fChars, &offset, styleRunLimits[run], script, status);
1026 le_int32 relStart, run, runLength;
1036 for (run = startRun; run != stopRun; run += dir) {
1037 le_int32 firstChar = (run == firstRun)? runStart : fStyleRunInfo[run].runBase;
1038 le_int32 lastChar = (run == lastRun)? runEnd : fStyleRunInfo[run].runLimit - 1;
1040 appendRun(line, run, firstChar, lastChar);
1047 void ParagraphLayout::appendRun(ParagraphLayout::Line *line, le_int32 run, le_int32 firstChar, le_int32 lastChar)
1049 le_int32 glyphBase = fStyleRunInfo[run].glyphBase;
1072 if ((fStyleRunInfo[run].level & 1) != 0) {
1074 le_int32 last = glyphBase + fStyleRunInfo[run].glyphCount - 1;
1086 // from the middle of a layout. If we've got a right-to-left run, we
1088 // previous run, even though this glyph may be in the middle of the
1089 // run.
1090 fVisualRunLastX -= fStyleRunInfo[run].positions[leftGlyph * 2];
1093 // the run's glyphs
1096 UBiDiDirection direction = ((fStyleRunInfo[run].level & 1) == 0)? UBIDI_LTR : UBIDI_RTL;
1102 LE_ARRAY_COPY(glyphs, &fStyleRunInfo[run].glyphs[leftGlyph], glyphCount);
1105 positions[outGlyph] = fStyleRunInfo[run].positions[inGlyph] + fVisualRunLastX;
1106 positions[outGlyph + 1] = fStyleRunInfo[run].positions[inGlyph + 1] + fVisualRunLastY;
1109 // Save the ending position of this run
1110 // to use for the start of the next run
1114 if ((fStyleRunInfo[run].level & 1) == 0) {
1122 le_int32 base = glyphBase + fStyleRunInfo[run].glyphCount - 1;
1129 line->append(fStyleRunInfo[run].font, direction, glyphCount, glyphs, positions, glyphToCharMap);
1138 le_int32 run;
1143 run = 0;
1144 while (charIndex >= fStyleRunLimits[run]) {
1145 run += 1;
1148 return run;