- For color, grayscale or monochrome displays
- Designed for low throughput bus with framebuffer on the panel side (write-only). But not limited to
- Supports multiple displays (also contains simple singledisplay mode)
- proportional fonts
- overwrites text, can also overwtite entire line within the working area (canvas). no need to clean.
- default colors are ARGB 8888. You can implement any color conversion for any type of display as well as static dither for 565 panels inside
pixelOutmethod - contains HSV-RGB converter
Please, provide:
mgl_conf.hfile#define MGL_ASSERT()#define MGL_SINGLEDISPLAYif you don't need multipleDISPLAY_SIZE_XDISPLAY_SIZE_Yfor default single display implementation
- display low level driver file (like
mgldisp_color.c)setZoneis the command for limiting the canvas. pixels expected sequence is left->right, top->bottom. This command has hardware analog on most tft controllers, so you need to translate it to one SPI/IIC request. In case of monocrome lcd, same behavior is emulates for framebuffer.pixelOutshould write one pixel - one SPI/IIC transaction for most color screensupdateis just a wrapper, it may be used for triggering local framebuffer to panel transfer in case this process is application-driven- for multimple displays you need to create
MglDisplaystruct for each
- your own fonts files
- you can use https://www.pentacom.jp/pentacom/bitfontmaker2 for font editing. use
python3 convert.py fontname.jsonfor export tofontname.cfile. rearrange.pymight be helpful to convert existing fonts to bitfontmaker2 format (manual tuning needed, paste array to file)
- you can use https://www.pentacom.jp/pentacom/bitfontmaker2 for font editing. use
- do we really need lines and circles?
- more fonts is always better!)
- convert.py save font image