• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/ICU-531.30/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
375 // now build a LayoutEngine for each style run...
377 le_int32 run, runStart;
386 for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
387 fStyleRunInfo[run].font = NULL;
388 fStyleRunInfo[run].runBase = 0;
389 fStyleRunInfo[run].runLimit = 0;
390 fStyleRunInfo[run].script = (UScriptCode)0;
391 fStyleRunInfo[run].locale = NULL;
392 fStyleRunInfo[run].level = 0;
393 fStyleRunInfo[run].glyphBase = 0;
394 fStyleRunInfo[run].engine = NULL;
395 fStyleRunInfo[run].glyphCount = 0;
396 fStyleRunInfo[run].glyphs = NULL;
397 fStyleRunInfo[run].positions = NULL;
402 for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
403 fStyleRunInfo[run].font = fFontRuns->getFont(styleIndices[0]);
404 fStyleRunInfo[run].runBase = runStart;
405 fStyleRunInfo[run].runLimit = fStyleRunLimits[run];
406 fStyleRunInfo[run].script = (UScriptCode) fScriptRuns->getValue(styleIndices[2]);
407 fStyleRunInfo[run].locale = fLocaleRuns->getLocale(styleIndices[3]);
408 fStyleRunInfo[run].level = (UBiDiLevel) fLevelRuns->getValue(styleIndices[1]);
409 fStyleRunInfo[run].glyphBase = fGlyphCount;
411 fStyleRunInfo[run].engine = LayoutEngine::layoutEngineFactory(fStyleRunInfo[run].font,
412 fStyleRunInfo[run].script, getLanguageCode(fStyleRunInfo[run].locale), layoutStatus);
418 fStyleRunInfo[run].glyphCount = fStyleRunInfo[run].engine->layoutChars(fChars, runStart, fStyleRunLimits[run] - runStart, fCharCount,
419 fStyleRunInfo[run].level & 1, 0, 0, layoutStatus);
425 runStart = fStyleRunLimits[run];
427 fGlyphCount += fStyleRunInfo[run].glyphCount;
449 for (runStart = 0, run = 0; run < fStyleRunCount; run += 1) {
450 LayoutEngine *engine = fStyleRunInfo[run].engine;
451 le_int32 glyphCount = fStyleRunInfo[run].glyphCount;
452 le_int32 glyphBase = fStyleRunInfo[run].glyphBase;
454 fStyleRunInfo[run].glyphs = LE_NEW_ARRAY(LEGlyphID, glyphCount);
455 fStyleRunInfo[run].positions = LE_NEW_ARRAY(float, glyphCount * 2 + 2);
456 if ((fStyleRunInfo[run].glyphs == NULL) ||
457 (fStyleRunInfo[run].positions == NULL)) {
462 engine->getGlyphs(fStyleRunInfo[run].glyphs, layoutStatus);
468 engine->getGlyphPositions(fStyleRunInfo[run].positions, layoutStatus);
481 fGlyphWidths[glyphBase + glyph] = fStyleRunInfo[run].positions[glyph * 2 + 2] - fStyleRunInfo[run].positions[glyph * 2];
484 if ((fStyleRunInfo[run].level & 1) != 0) {
489 runStart = fStyleRunLimits[run];
492 fStyleRunInfo[run].engine = NULL;
587 le_int32 run;
592 for (run = 0; run < fStyleRunCount; run += 1) {
593 LE_DELETE_ARRAY(fStyleRunInfo[run].glyphs);
594 LE_DELETE_ARRAY(fStyleRunInfo[run].positions);
596 fStyleRunInfo[run].glyphs = NULL;
597 fStyleRunInfo[run].positions = NULL;
713 le_int32 run;
717 for (ch = 0, run = 0; run < fLevelRuns->getCount(); run += 1) {
718 UBiDiLevel runLevel = (UBiDiLevel) fLevelRuns->getValue(run) | UBIDI_LEVEL_OVERRIDE;
719 le_int32 runLimit = fLevelRuns->getLimit(run);
735 le_int32 run;
739 for (run = 0; run < levelRunCount; run += 1) {
792 le_int32 run, offset, *si;
799 for (run = 0; run < styleRunCount; run += 1) {
803 while (offset < styleRunLimits[run]) {
804 const LEFontInstance *subFont = runFont->getSubFont(fChars, &offset, styleRunLimits[run], script, status);
1029 le_int32 relStart, run, runLength;
1039 for (run = startRun; run != stopRun; run += dir) {
1040 le_int32 firstChar = (run == firstRun)? runStart : fStyleRunInfo[run].runBase;
1041 le_int32 lastChar = (run == lastRun)? runEnd : fStyleRunInfo[run].runLimit - 1;
1043 appendRun(line, run, firstChar, lastChar);
1050 void ParagraphLayout::appendRun(ParagraphLayout::Line *line, le_int32 run, le_int32 firstChar, le_int32 lastChar)
1052 le_int32 glyphBase = fStyleRunInfo[run].glyphBase;
1075 if ((fStyleRunInfo[run].level & 1) != 0) {
1077 le_int32 last = glyphBase + fStyleRunInfo[run].glyphCount - 1;
1089 // from the middle of a layout. If we've got a right-to-left run, we
1091 // previous run, even though this glyph may be in the middle of the
1092 // run.
1093 fVisualRunLastX -= fStyleRunInfo[run].positions[leftGlyph * 2];
1096 // the run's glyphs
1099 UBiDiDirection direction = ((fStyleRunInfo[run].level & 1) == 0)? UBIDI_LTR : UBIDI_RTL;
1105 LE_ARRAY_COPY(glyphs, &fStyleRunInfo[run].glyphs[leftGlyph], glyphCount);
1108 positions[outGlyph] = fStyleRunInfo[run].positions[inGlyph] + fVisualRunLastX;
1109 positions[outGlyph + 1] = fStyleRunInfo[run].positions[inGlyph + 1] + fVisualRunLastY;
1112 // Save the ending position of this run
1113 // to use for the start of the next run
1117 if ((fStyleRunInfo[run].level & 1) == 0) {
1125 le_int32 base = glyphBase + fStyleRunInfo[run].glyphCount - 1;
1132 line->append(fStyleRunInfo[run].font, direction, glyphCount, glyphs, positions, glyphToCharMap);
1141 le_int32 run;
1146 run = 0;
1147 while (charIndex >= fStyleRunLimits[run]) {
1148 run += 1;
1151 return run;