diff options
author | Chris Loer <chris.loer@gmail.com> | 2016-11-16 12:50:57 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-11-17 14:33:03 -0800 |
commit | d4fc66af3924805d40576989c1e139ddafcc4670 (patch) | |
tree | 87e8dac7bc21051086f2765b4d04e884aad4cec7 /src/mbgl/layout/symbol_layout.cpp | |
parent | bceeba29a3fa85105c21718ed0be8704508ab585 (diff) | |
download | qtlocation-mapboxgl-d4fc66af3924805d40576989c1e139ddafcc4670.tar.gz |
[core] Add minimal line breaking support for RTL text.
Diffstat (limited to 'src/mbgl/layout/symbol_layout.cpp')
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 00395fafc2..6556d65d3d 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -92,7 +92,9 @@ SymbolLayout::SymbolLayout(std::string bucketName_, u8string = platform::lowercase(u8string); } - ft.text = bidi.bidiTransform(util::utf8_to_utf16::convert(u8string)); + std::u16string u16string = util::utf8_to_utf16::convert(u8string); + ft.text = bidi.bidiTransform(u16string); + ft.writingDirection = bidi.baseWritingDirection(u16string); // Loop through all characters of this text and collect unique codepoints. for (char16_t chr : *ft.text) { @@ -196,6 +198,7 @@ void SymbolLayout::prepare(uintptr_t tileUID, if (feature.text) { shapedText = glyphSet->getShaping( /* string */ *feature.text, + /* base direction of text */ *feature.writingDirection, /* maxWidth: ems */ layout.symbolPlacement != SymbolPlacementType::Line ? layout.textMaxWidth * 24 : 0, /* lineHeight: ems */ layout.textLineHeight * 24, |