110 lines
4.9 KiB
C++
110 lines
4.9 KiB
C++
/* DO NOT EDIT THIS FILE */
|
|
/* This file is autogenerated by the text-database code generator */
|
|
|
|
#ifndef UNMAPPEDDATAFONT_HPP
|
|
#define UNMAPPEDDATAFONT_HPP
|
|
|
|
#include <touchgfx/Font.hpp>
|
|
|
|
namespace touchgfx
|
|
{
|
|
/**
|
|
* An UnmappedDataFont has both glyph table and glyph data placed in a
|
|
* flash which does not support random access read (indirect
|
|
* access). A unicode table is located in a flash with random read
|
|
* access (direct access).
|
|
*
|
|
* @see Font, ConstFont
|
|
*/
|
|
class UnmappedDataFont : public Font
|
|
{
|
|
public:
|
|
/**
|
|
* Construct the UnmappedDataFont.
|
|
*
|
|
* @param list The array of glyphs known to this font (indirect).
|
|
* @param unicodes The array of unicodes known to this font (direct).
|
|
* @param size The number of glyphs in list.
|
|
* @param height The height in pixels of the highest character in this font.
|
|
* @param pixBelowBase The maximum number of pixels that can be drawn below the
|
|
* baseline in this font.
|
|
* @param bitsPerPixel The number of bits per pixel in this font.
|
|
* @param byteAlignRow Are glyphs encoded using A4 format
|
|
* @param maxLeft The maximum a character extends to the left.
|
|
* @param maxRight The maximum a character extends to the right.
|
|
* @param glyphDataList Pointer to pointers the glyph data for the font (indirect).
|
|
* @param kerningList pointer to the kerning data for the font (direct).
|
|
* @param fallbackChar The fallback character for the typography in case no glyph is
|
|
* available.
|
|
* @param ellipsisChar The ellipsis character used for truncating long texts.
|
|
* @param gsubTable Pointer to GSUB table (direct).
|
|
*/
|
|
UnmappedDataFont(const GlyphNode* list, const uint16_t* unicodes, uint16_t size, uint16_t height, uint8_t pixBelowBase, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataList, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData);
|
|
|
|
using Font::getGlyph;
|
|
|
|
/**
|
|
* Gets the glyph data associated with the specified Unicode. The
|
|
GlyphNode is allocated in the buffer passed to the constructor.
|
|
*
|
|
* Please note that in case of Thai letters and Arabic letters
|
|
* where diacritics can be placed relative to the previous
|
|
* character(s), please use TextProvider::getNextLigature()
|
|
* instead as it will create a temporary GlyphNode that will be
|
|
* adjusted with respect to X/Y position.
|
|
*
|
|
* @param unicode The character to look up.
|
|
* @param pixelData Pointer to the pixel data for the glyph if the glyph is
|
|
* found. This is set by this method.
|
|
* @param [out] bitsPerPixel Reference where to place the number of bits per pixel.
|
|
*
|
|
* @return A pointer to the glyph node or null if the glyph was not found.
|
|
*/
|
|
virtual const GlyphNode* getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const;
|
|
|
|
/**
|
|
* Obtains the address to the pixel data for the specified glyph.
|
|
*
|
|
* @param glyph The glyph to get the pixels data of.
|
|
*
|
|
* @return The address of the pixel data of the glyph.
|
|
*/
|
|
virtual const uint8_t* getPixelData(const GlyphNode* glyph) const;
|
|
|
|
/**
|
|
* Gets the kerning distance between two characters.
|
|
*
|
|
* @param prevChar The unicode value of the previous character.
|
|
* @param glyph the glyph object for the current character.
|
|
*
|
|
* @return The kerning distance between prevChar and glyph char.
|
|
*/
|
|
virtual int8_t getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const;
|
|
|
|
/**
|
|
* Gets GSUB table.
|
|
*
|
|
* @return The GSUB table or null if font has GSUB no table
|
|
*/
|
|
virtual const uint16_t* getGSUBTable() const
|
|
{
|
|
return gsubTable;
|
|
}
|
|
|
|
protected:
|
|
UnmappedDataFont() : Font(0, 0, 0, 0, 0, 0, 0, 0), glyphList(0), unicodes(0), glyphDataList(0), kerningData(0), gsubTable(0) { }
|
|
int lookupUnicode(uint16_t unicode) const;
|
|
|
|
const GlyphNode* glyphList; ///< The list of glyphs
|
|
uint16_t listSize; ///< The size of the list of glyphs
|
|
const uint16_t* unicodes; ///< LookupTable with all unicodes in this font
|
|
const void* glyphDataList; ///< Information describing the glyphs (list of pointers)
|
|
const KerningNode* kerningData; ///< Information describing the kerning
|
|
const uint16_t* gsubTable; ///< Information describing the GSUB tables
|
|
|
|
static GlyphNode glyphNodeBuffer; ///< Buffer for GlyphNodes read from unmapped flash
|
|
};
|
|
} // namespace touchgfx
|
|
|
|
#endif // UNMAPPEDDATAFONT_HPP
|