Class Font

Synopsis

#include <Source/Falcor/Utils/UI/Font.h>

class Font

Description

This class holds data and texture used to render text. It represents a mono-spaced font.

Structures

CharTexCrdDescThe structs contains information on the location of the character in the texture

Methods

~Font
createCreate a font object.
getCharDescGet the character descriptor
getFontHeightGet the height in pixels of the font
getLettersSpacingGet the spacing in pixels between 2 characters
getTabWidthGet the width in pixels of the tab character
getTextureGet the texture containing the characters

Source

Lines 36-98 in Source/Falcor/Utils/UI/Font.h.

class Font
{
public:
    using UniquePtr = std::unique_ptr<Font>;
    using UniqueConstPtr = std::unique_ptr<const Font>;
    ~Font();
    /** Create a font object.
        \return New object, or throws an exception if creation failed.
    */
    static UniquePtr create();
    /** The structs contains information on the location of the character in the texture
    */
    struct CharTexCrdDesc
    {
        float2 topLeft; ///< Non-normalized origin of the character in the texture
        float2 size;    ///< Size in pixels of the character. This should be used to initialize the texture-coordinate when rendering.
    };
    /** Get the texture containing the characters
    */
    Texture::SharedPtr getTexture() const { return mpTexture; }
    /** Get the character descriptor
    */
    const CharTexCrdDesc& getCharDesc(char c) const
    {
        assert(c >= mFirstChar && c <= mLastChar);
        return mCharDesc[c - mFirstChar];
    }
    /** Get the height in pixels of the font
    */
    float getFontHeight() const { return mFontHeight; }
    /** Get the width in pixels of the tab character
    */
    float getTabWidth() const { return mTabWidth; }
    /** Get the spacing in pixels between 2 characters. This is measured as (start-of-char-2) - (start-of-char-1).
    */
    float getLettersSpacing() const { return mLetterSpacing; }
private:
    Font();
    Font(const Font&) = delete;
    Font& operator=(const Font&) = delete;
    bool loadFromFile(const std::string& fontName, float size);
    static const char mFirstChar = '!';
    static const char mLastChar = '~';
    static const uint32_t mCharCount = mLastChar - mFirstChar + 1;
    static const uint32_t mTexWidth = 1024;
    Texture::SharedPtr mpTexture;
    CharTexCrdDesc mCharDesc[mCharCount];
    float mFontHeight;
    float mTabWidth;
    float mLetterSpacing;
};





Add Discussion as Guest

Log in to DocsForge