Personal Mirror
Go to file
en-ot 8aae3fec0d
Update README.md
2021-08-08 22:09:48 +03:00
Extensions Font partition supported. No time and ram is used for load smooth font. 2021-08-08 21:44:12 +03:00
Fonts Fix: Font7srle Character '1' is missing two dots. 2020-04-27 21:05:01 +09:00
Processors Raise issue 2021-05-24 12:04:03 +01:00
TFT_Drivers Remove unused macros 2021-05-11 01:29:56 +01:00
Tools Font partition supported. No time and ram is used for load smooth font. 2021-08-08 21:44:12 +03:00
User_Setups Update Setup202_SSD1351_128.h 2021-04-27 10:20:01 +03:00
examples Add DMA Bouncy_Circles sketch 2021-04-24 12:09:47 +01:00
.gitattributes Revert "Clear out attributes" 2017-05-23 02:02:35 +01:00
.gitignore Revert "Clear out attributes" 2017-05-23 02:02:35 +01:00
README.md Update README.md 2021-08-08 22:09:48 +03:00
README.txt Correct typos 2021-01-25 14:18:46 +00:00
TFT_eSPI.cpp Font partition supported. No time and ram is used for load smooth font. 2021-08-08 21:44:12 +03:00
TFT_eSPI.h Raise issue 2021-05-24 12:04:03 +01:00
User_Setup.h FAST_UNICODE_INDEX - faster binary search for index from unicode code point, for ordered by code point fonts only 2021-07-01 11:58:11 +03:00
User_Setup_Select.h Merge branch 'master' of https://github.com/Bodmer/TFT_eSPI 2021-05-11 00:22:46 +01:00
keywords.txt Finalise viewport changes 2020-10-13 13:35:03 +01:00
library.json Raise issue 2021-05-24 12:04:03 +01:00
library.properties Raise issue 2021-05-24 12:04:03 +01:00
license.txt Raise to version 2.0.0 2020-01-26 21:17:49 +00:00

README.md

This is a branch of https://github.com/Bodmer/TFT_eSPI.git

It is created to solve some problems I encountered while using Bodmer's lib in my mp3 player based on ESP32:

  1. I can only use smooth fonts to display unicode font with about 13K glyphs.
  2. The font can be placed in array, but then application uploading time becomes very long
  3. The font can be placed in SPIFFS, but then printing time is unacceptable
  4. The font loading takes huge amount of time and RAM
  5. Printing chars with high codes is much slower than chars from basic ASCII range.

This version of TFT_eSPI solves those problems:

  1. The font can be loaded in separate partition in flash, so there is no need to re-upload it with every code upload.
  2. The font format (vlw) is converted to custom format (prt), which is:
  • all metrics are little-endian to match the CPU = no need to swap bytes
  • contains pre-calculated glyph offsets = no need to scan font for glyph sizes
  • contains pre-calculated max_descent = no need to scan font for max_descent
  1. Glyph metrics is loaded on-the-fly when printing, so no RAM is used
  2. Faster getUnicodeIndex function (FAST_UNICODE_INDEX) = glyph searching time is greatly decreased in large font

Using partition for font is somewhat strange:

  • I can only use SPI_FLASH_MMAP_INST - instruction memory mapping, not data memory. And it forces to use 32-bit aligned access only.
  • Partition font seems a little slower than array font, but in final version of code usual array font can be used.

This code is tested in my player only, so it can contain bugs and incompatibilities.

Known problems:

  1. When program size grows and when using font partition, some characters stop printing as expected (very high codes), 0xBAD00BAD value is readed from flash instead of bitmap data.