# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] - ReleaseDate
## [0.9.2] - 2026-07-05
### Fixed
* latched, bitplane/latched: fixed bug in OE setting in address table created in 0.9.1
## [0.9.1] - 2026-07-05 (YANKED)
### Changed
* latched, bitplane/latched: support `invert-oe`, `blank-delay-1`, `blank-delay-2`, `blank-delay-4`, and `blank-delay-8` features to control extra blanking time around row address changes, preventing ghosting artifacts on panels with slower address-line settling
## [0.9.0] - 2026-07-03
### ⚠️ Breaking
* `FrameBuffer` trait now requires a `Word` associated type (e.g. `type Word = u16;`) instead of manually implementing `get_word_size()`; `get_word_size()` has a default implementation derived from `size_of::<Self::Word>()`
### Added
* feature `tail-closes-latch` will include an extra entry in `plain` and `bitplane/plain` implementations to close the latch at the end of the the buffer (`plain`) and at the end of each plane (`bitplane/plain`)
## [0.8.1] - 2026-06-27
### Changed
* bitplane/latched: tweak latch timing & clear values after latch closed to prevent address "bleeding" into the first pixels in some cases
### Added
* plain, bitplane/plain: new `blank-delay-1`, `blank-delay-2`, `blank-delay-4`, and `blank-delay-8` features to control extra blanking time around row address changes, preventing ghosting artifacts on panels with slower address-line settling
## [0.8.0] - 2026-05-01
### ⚠️ Breaking
* removed unneeded const generics from the FrameBuffer, MutableFrameBuffer, and FrameBufferOperations traits
### Added
* add new bitplane framebuffers
### Removed
* remove dependency on `esp-hal`
## [0.7.0] - 2026-04-25
* bump `esp-hal` to `1.1.0`
## [0.6.0] - 2025-10-31
### Changed
* bump `esp-hal` to `1.0.0`
## [0.5.0] - 2025-10-14
### Changed
* bump `esp-hal` to `1.0.0-rc1`
## [0.4.2] - 2025-08-16
## [0.4.1] - 2025-08-14
## [0.4.0] - 2025-08-14
### Added
* New `tiling::TiledFrameBuffer` wrapper that lets you chain multiple HUB75
panels into one large virtual canvas ([#10](https://github.com/liebman/hub75-framebuffer/pull/10))
## [0.3.0] - 2025-07-16
* update to `esp-hal` `1.0.0-rc.1` [#9](https://github.com/liebman/hub75-framebuffer/pull/9)
## [0.2.0] - 2025-06-20
### ⚠️ Breaking
* Renamed `DmaFrameBuffer::clear()` to `erase()`.
The new name avoids shadowing `embedded_graphics::DrawTarget::clear(Color)`.
Update your code: `fb.clear()` ➜ `fb.erase()`.
If you actually wanted the trait method, call `fb.clear(Color::BLACK)` instead.
* Removed feature flags `esp32`, `esp32s3`, `esp32c6`.
* Renamed feature `esp-dma` ➜ `esp-hal-dma`.
### Added
* `skip-black-pixels` feature that gives a performance boot in some cases (#2)
* Removed feature flags `esp32`, `esp32s3`, `esp32c6`.
### Changed
* almost double(!) performance of the set_pixel in the plain and latched
`DmaFrameBuffers` (#2)
* Renamed feature `esp-dma` ➜ `esp-hal-dma`.
## [0.1.0] - 2025-06-14
* initial version
[Unreleased]: https://github.com/liebman/hub75-framebuffer/compare/v0.9.2...HEAD
[0.9.2]: https://github.com/liebman/hub75-framebuffer/compare/v0.9.1...v0.9.2
[0.9.1]: https://github.com/liebman/hub75-framebuffer/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/liebman/hub75-framebuffer/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.4.2...v0.5.0
[0.4.2]: https://github.com/liebman/hub75-framebuffer/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/liebman/hub75-framebuffer/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/liebman/hub75-framebuffer/compare/v0.1.0...v0.2.0