X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flayouts%2Flayout-engine.cpp;h=9bde93f667828fddc5397b5f0a8984ca5edcdcf0;hp=ebbf65bf447cdc3825a14a4b611f7e61f87521d2;hb=70703869596d06ae4abfb815fc84bca0920d7f9d;hpb=ebbf2aed6e030f66f640d0f4c933e76e9b63ee27 diff --git a/dali-toolkit/internal/text/layouts/layout-engine.cpp b/dali-toolkit/internal/text/layouts/layout-engine.cpp index ebbf65b..9bde93f 100644 --- a/dali-toolkit/internal/text/layouts/layout-engine.cpp +++ b/dali-toolkit/internal/text/layouts/layout-engine.cpp @@ -355,14 +355,16 @@ struct LayoutEngine::Impl void ReLayoutRightToLeftLines( const LayoutParameters& layoutParameters, Vector& glyphPositions ) { + // Traverses the paragraphs with right to left characters. for( LineIndex lineIndex = 0u; lineIndex < layoutParameters.numberOfBidirectionalInfoRuns; ++lineIndex ) { - const BidirectionalLineInfoRun& bidiLine = *( layoutParameters.lineBidirectionalInfoRunsBuffer +lineIndex ); + const BidirectionalLineInfoRun& bidiLine = *( layoutParameters.lineBidirectionalInfoRunsBuffer + lineIndex ); float penX = 0.f; Vector2* glyphPositionsBuffer = glyphPositions.Begin(); + // Traverses the characters of the right to left paragraph. for( CharacterIndex characterLogicalIndex = 0u; characterLogicalIndex < bidiLine.characterRun.numberOfCharacters; ++characterLogicalIndex ) @@ -376,7 +378,9 @@ struct LayoutEngine::Impl for( GlyphIndex index = 0u; index < numberOfGlyphs; ++index ) { // Convert the character in the visual order into the glyph in the visual order. - GlyphIndex glyphIndex = 1u + *( layoutParameters.charactersToGlyphsBuffer + characterVisualIndex + index ) - numberOfGlyphs; + const GlyphIndex glyphIndex = *( layoutParameters.charactersToGlyphsBuffer + characterVisualIndex ) + index; + + DALI_ASSERT_DEBUG( 0u <= glyphIndex && glyphIndex < layoutParameters.totalNumberOfGlyphs ); const GlyphInfo& glyph = *( layoutParameters.glyphsBuffer + glyphIndex ); Vector2& position = *( glyphPositionsBuffer + glyphIndex );