diff options
Diffstat (limited to 'src/mbgl/text/glyph_set.hpp')
-rw-r--r-- | src/mbgl/text/glyph_set.hpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/src/mbgl/text/glyph_set.hpp b/src/mbgl/text/glyph_set.hpp index b4fcf4c3a4..b48973b6ea 100644 --- a/src/mbgl/text/glyph_set.hpp +++ b/src/mbgl/text/glyph_set.hpp @@ -9,15 +9,34 @@ namespace mbgl { class GlyphSet { public: void insert(uint32_t id, SDFGlyph&&); - const std::map<uint32_t, SDFGlyph> &getSDFs() const; - const Shaping getShaping(const std::u16string &string, const WritingDirection writingDirection, float maxWidth, float lineHeight, - float horizontalAlign, float verticalAlign, float justify, - float spacing, const Point<float> &translate) const; - void lineWrap(Shaping &shaping, float lineHeight, float maxWidth, float horizontalAlign, - float verticalAlign, float justify, const Point<float> &translate, - bool useBalancedIdeographicBreaking, const WritingDirection writingDirection) const; + const std::map<uint32_t, SDFGlyph>& getSDFs() const; + const Shaping getShaping(const std::u16string& string, + float maxWidth, + float lineHeight, + float horizontalAlign, + float verticalAlign, + float justify, + float spacing, + const Point<float>& translate, + BiDi& bidi) const; private: + float determineIdeographicLineWidth(const std::u16string& logicalInput, + const float spacing, + float maxWidth) const; + std::set<int32_t> determineLineBreaks(const std::u16string& logicalInput, + const float spacing, + float maxWidth) const; + + void shapeLines(Shaping& shaping, + const std::vector<std::u16string>& lines, + const float spacing, + float lineHeight, + float horizontalAlign, + float verticalAlign, + float justify, + const Point<float>& translate) const; + std::map<uint32_t, SDFGlyph> sdfs; }; |