Releases: Roger-random/ESP_8_BIT_composite
Fix screen rotation bug in rectangles, fix compiler warnings.
Bug Fix
- Fix coordinate math errors in
drawRect()
andfillRect()
support forsetRotation()
. (#27) - Compiler warning for
printf()
formatting. (#24) - Compiler warning for
switch()
fallthrough. (#35)
New Example
- Example named
GFX_RotatedRect
has been added to illustrate animating a rectangle's X/Y/Width/Height (one of four, cycles every second) in all four orientations.
Maintenance
- Verified to work with updated Adafruit_GFX (1.11.2) and ESP32 Arduino Core (2.0.3)
v1.3.1 published: updated libraries.properties file
Version 1.3.0 was tagged and published without corresponding adjustments to libraries.properties file for Arduino Library Manager. Now everything should be in sync as v1.3.1
v1.3.0 published: Adafruit_GFX::setRotation() support
Bug Fix
- Previously a sketch could call
Adafruit_GFX::setRotation()
, but there would be no effect: this library's frame buffer code neglected to account for rotation. (#21)
New Example
- Example named
GFX_RotatedText
has been added to illustrate how to use the now-workingsetRotation()
to print text in one of four orientations, in one of three sizes.
Performance Metrics and Optional Buffer Sync
New Features
- Some drawing algorithms like the
AnimatedGIF
decoder library depends on the frame buffer being preserved from one frame to the next. However, this is not true in double-buffering. (#11) Setting the new flagcopyAfterSwap
totrue
will copy frame buffers so they stay in sync from one frame to the next. This flag isfalse
by default to avoid unnecessary copy when not needed. ESP_8_BIT_GFX
class now tracks how much time is spent inwaitForFrame()
which can be used as an approximation for idle time. This is in turn an approximation for performance, as faster code will leave more time between frames idle. In order to keep this tracking code lightweight, there are caveats on how these numbers should be interpreted. See comment block inESP_8_BIT_GFX.h
(initial version also copied in #4 ) for details.
New Example
- Example named
AnimatedGIF
illustrates how to use this color composite video out library with theAnimatedGIF
library by Larry Bank / bitbank2. This is a light modification of example projectESP32_LEDMatrix_I2S
from that library. - The animated art is Cat and Galactic Squid by Emily Velasco (CC BY-SA 4.0)
Bug Fixes
- Fixed PAL output error where the blanking lines were not blank. With this fix for #1, PAL support is now fully on par with NTSC.
Double-buffering
Major feature: we now have double-buffering on both ESP_8_BIT_composite
and ESP_8_BIT_GFX
classes.
Before this feature, we only had a single buffer for both render and display. Meaning all render had to be completed within non-active scanlines (vertical blanking interval, etc.) for glitch-free display. That limitation has been removed. Composite video signals are generated from front buffer data, and all rendering operations are now done to the back buffer. The back and front buffer are swapped when waitForFrame()
is called. And if a frame takes too long to render, it just means the previous frame would be shown for longer. A missed frame may mean a visible motion stutter but would no longer result in annoying flickers.
Plus miscellaneous bug fixes and performance enhancements.
Initial release
Introducing an ESP32 Arduino display library for generating color composite video signals.