59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* DO NOT EDIT THIS FILE */
 | |
| /* This file is autogenerated by the text-database code generator */
 | |
| 
 | |
| #include <fonts/CachedFont.hpp>
 | |
| 
 | |
| namespace touchgfx
 | |
| {
 | |
| const uint8_t* CachedFont::getPixelData(const GlyphNode* glyph) const
 | |
| {
 | |
|     //if glyph is cached, then data is present just after the GlyphNode
 | |
|     if (FontCache::isCached(glyph))
 | |
|     {
 | |
|         const uint8_t* data = FontCache::getPixelData(glyph);
 | |
|         return data;
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         return flashFont->getPixelData(glyph);
 | |
|     }
 | |
| }
 | |
| 
 | |
| const GlyphNode* CachedFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const
 | |
| {
 | |
|     //look first in internal flash font
 | |
|     const GlyphNode* n = flashFont->find(unicode);
 | |
| 
 | |
|     if ((n == 0) && (cache != 0))
 | |
|     {
 | |
|         //now look in FontCache table
 | |
|         n = cache->getGlyph(unicode, fontId);
 | |
|     }
 | |
| 
 | |
|     //revert to normal behaviour if still not found
 | |
|     if (n == 0 && unicode != 0 && unicode != '\n')
 | |
|     {
 | |
|         Unicode::UnicodeChar fallbackChar = flashFont->getFallbackChar();
 | |
|         n = flashFont->find(fallbackChar);
 | |
|         if (n == 0)
 | |
|         {
 | |
|             n = cache->getGlyph(fallbackChar, fontId);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     if (n != 0)
 | |
|     {
 | |
|         pixelData = getPixelData(n);
 | |
|         bitsPerPixel = getBitsPerPixel();
 | |
|         return n;
 | |
|     }
 | |
|     return (const GlyphNode*)0;
 | |
| }
 | |
| 
 | |
| int8_t CachedFont::getKerning(Unicode::UnicodeChar prevChar, const GlyphNode* glyph) const
 | |
| {
 | |
|     //Kerning is not supported by Font Caching
 | |
|     return 0;
 | |
| }
 | |
| }
 |