class EE::Graphics::TextLayout

#include <textlayout.hpp>

class TextLayout {
public:
    // typedefs

    typedef std::shared_ptr<const TextLayout> Cache;

    // fields

    std::vector<ShapedGlyph> shapedGlyphs;
    std::vector<Float> linesWidth;
    Sizef size;
    TextDirection direction { TextDirection::Unspecified };

    // methods

    bool isRTL() const;

    static Cache layout(
        const String& string,
        Font* font,
        const Uint32& fontSize,
        const Uint32& style,
        const Uint32& tabWidth = 4,
        const Float& outlineThickness = 0.f,
        std::optional<Float> tabOffset = {},
        Uint32 textDrawHints = 0
    );

    static Cache layout(
        const String::View& string,
        Font* font,
        const Uint32& fontSize,
        const Uint32& style,
        const Uint32& tabWidth = 4,
        const Float& outlineThickness = 0.f,
        std::optional<Float> tabOffset = {},
        Uint32 textDrawHints = 0
    );
};