45 lines
1.7 KiB
Plaintext
45 lines
1.7 KiB
Plaintext
|
/* DO NOT EDIT THIS FILE */
|
||
|
/* This file is autogenerated by the text-database code generator */
|
||
|
|
||
|
#include <fonts/GeneratedFont.hpp>
|
||
|
|
||
|
namespace touchgfx
|
||
|
{
|
||
|
GeneratedFont::GeneratedFont(const GlyphNode* glyphs, uint16_t numGlyphs, uint16_t height, uint16_t baseline, uint8_t pixAboveTop, uint8_t pixBelowBottom, uint8_t bitsPerPixel, uint8_t byteAlignRow, uint8_t maxLeft, uint8_t maxRight, const uint8_t* const* glyphDataInternalFlash, const KerningNode* kerningList, const Unicode::UnicodeChar fallbackChar, const Unicode::UnicodeChar ellipsisChar, const uint16_t* const gsubData, const FontContextualFormsTable* formsTable)
|
||
|
: ConstFont(glyphs, numGlyphs, height, baseline, pixAboveTop, pixBelowBottom, bitsPerPixel, byteAlignRow, maxLeft, maxRight, fallbackChar, ellipsisChar),
|
||
|
glyphData(glyphDataInternalFlash),
|
||
|
kerningData(kerningList),
|
||
|
gsubTable(gsubData),
|
||
|
arabicTable(formsTable)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
const uint8_t* GeneratedFont::getPixelData(const GlyphNode* glyph) const
|
||
|
{
|
||
|
const uint8_t* const* table = (const uint8_t* const*)glyphData;
|
||
|
return &(table[glyph->unicode / 2048][glyph->dataOffset]);
|
||
|
}
|
||
|
|
||
|
int8_t GeneratedFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const
|
||
|
{
|
||
|
if (!glyph || glyph->kerningTableSize == 0)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
const KerningNode* kerndata = kerningData + glyph->kerningTablePos();
|
||
|
for (uint16_t i = glyph->kerningTableSize; i > 0; i--, kerndata++)
|
||
|
{
|
||
|
if (prevChar == kerndata->unicodePrevChar)
|
||
|
{
|
||
|
return kerndata->distance;
|
||
|
}
|
||
|
if (prevChar < kerndata->unicodePrevChar)
|
||
|
{
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
} // namespace touchgfx
|