CODE PRE GFX UPDATE
Update 16: Added Arduino framework support and several drivers. Update 15: Service release. Fixed large_bitmap out of bounds crashing issue Update 14: Added palette/CLUT support! (still a baby, not quite complete but I'll mature it as I go) Update 13: Service release. Certain draw operations between certain draw targets would fail to compile I've compiled all of the includes into a single includable header, and I've added draw::image() which deals with the progressive loading so you don't need to do it yourself. Added image dimensions to jpeg_image::load()'s callback. Also improved the performance of the drawing during resize (though bicubic could stand to be optimized to use ints instead of floats). Update 11: Added bilinear and bicubic resampling for draw::bitmap() resizing options, and fixed the nearest neighbor drawing. Update 10: Fixed several build errors with the last update. Update 9: Added polygon and path support, and cleaned up the API here and there a bit I also used the large bitmap for the frame buffer in the demos, and changed that code to be easier to understand at the cost of raw pixel throughput. Update 8: Some API changes, added large_bitmap support and edged a little closer to adaptive indexed color support. Update 6: Fixed some of the demos that were failing the build Update 4: GFX draw::rectangle() bugfix and added experimental MAX7219 driver Update 3: Added transparent_color argument to draw::bitmap() so you can do sprites. Update 2: Included support for the LilyGo TTGO board, as well as the green tab 128x128 1.44" ST7735 display (though other green tab models may work too they have not been tested)
CODE PRE GFX DRIVERS
Update: Some minor bugfixes, SPI drivers are refactored to use a common base, more drivers are now added, and one click configuration for generic ESP32 boards is now available Without a driver, it can only draw to in memory bitmaps, but once you add a driver to the mix, you can draw directly onto displays the same way you do to bitmaps. It's basically standard C++, and things like line drawing and font drawing algorithms. GFX on the other hand, isn't tied to anything. Also, being tied to the Arduino framework, it can't take advantage of platform specific features that increase performance, like being able to switch between interrupt and polling based SPI transactions on the ESP32. It's very minimalistic, not very optimized, and doesn't have a fully decoupled driver interface. The most popular is probably Adafruit_GFX, but it's not optimal. I wanted a graphics library that was faster and better than what I had found for various IoT devices.
Download library and demo project - 4.9 MB.