Skip to content

Releases: Roger-random/ESP_8_BIT_composite

Fix screen rotation bug in rectangles, fix compiler warnings.

27 Jun 08:07
Compare
Choose a tag to compare

Bug Fix

  • Fix coordinate math errors in drawRect() and fillRect() support for setRotation(). (#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

03 Dec 22:16
001174d
Compare
Choose a tag to compare

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

02 Dec 01:17
Compare
Choose a tag to compare

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-working setRotation() to print text in one of four orientations, in one of three sizes.

Performance Metrics and Optional Buffer Sync

17 May 07:02
a232df2
Compare
Choose a tag to compare

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 flag copyAfterSwap to true will copy frame buffers so they stay in sync from one frame to the next. This flag is false by default to avoid unnecessary copy when not needed.
  • ESP_8_BIT_GFX class now tracks how much time is spent in waitForFrame() 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 in ESP_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 the AnimatedGIF library by Larry Bank / bitbank2. This is a light modification of example project ESP32_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

10 May 06:21
Compare
Choose a tag to compare

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

25 Apr 07:08
471f3ae
Compare
Choose a tag to compare

Introducing an ESP32 Arduino display library for generating color composite video signals.