1. A method comprising: starting from a first end of a path, iteratively placing along the path, by a processor, each of a first subset of a plurality of glyphs in a first visual order based on determining that each of the first subset of glyphs has a first directional value indicating a first level of bidirectional embedding of the glyph, wherein the first visual order is the order in which the first subset of glyphs are displayed for reading; determining, by the processor, that one of a second subset of the plurality of glyphs has a second directional value indicating a second level of bidirectional embedding of the glyph; starting from a second end of the path that is opposite to the first end of the path, iteratively placing along the path, by the processor, each of the second subset of glyphs in a second visual order, wherein the second visual order is the order in which the second subset of glyphs are displayed for reading; and redetermining, by the processor, placement points for the second subset of glyphs by, starting from a start point on the path adjacent to the first subset of glyphs as placed on the path, iteratively placing the second subset of glyphs along the path such that the second visual order of the second subset of glyphs is maintained.