// Input: glyphs // Output: positions void LayoutEngine::positionGlyphs(LEGlyphStorage &glyphStorage, float x, float y, LEErrorCode &success) { if (LE_FAILURE(success)) { return; } glyphStorage.allocatePositions(success); if (LE_FAILURE(success)) { return; } le_int32 i, glyphCount = glyphStorage.getGlyphCount(); for (i = 0; i < glyphCount; i += 1) { LEPoint advance; glyphStorage.setPosition(i, x, y, success); fFontInstance->getGlyphAdvance(glyphStorage[i], advance); x += advance.fX; y += advance.fY; } glyphStorage.setPosition(glyphCount, x, y, success); }