Skip to content

v0.3.1

Compare
Choose a tag to compare
@Daft-Freak Daft-Freak released this 17 Jun 11:36
· 63 commits to master since this release
b43a2e3

A Pico... Vision?

Realising that it's been ages since the last release, changes have piled up and I can make releases now... Here's a release!

New Hardware

The biggest change in this release is support for the PicoVision, which includes USB HID input and SD card storage (also available on the VGA board). Most code should port over easily with the exception that you can't directly access screen.data. It's possible to blit a Surface in the same format as a partial workaround though.

static uint16_t temp_framebuffer[160 * 120];
static blit::Surface temp_screen((uint8_t *)temp_framebuffer, blit::PixelFormat::BGR555, {160, 120});
...
screen.blit(&temp_screen, {0, 0, 160, 120}, {0, 0});

The "pico" port also has a lot more configuration, making it a easier to support new devices with st7789 displays and buttons wired to GPIO pins. An example of this is the Tufty2040, which is now supported as much as it can be with only five buttons.

Other Additions

  • blit_executable(name INTERNAL_FLASH src.cpp) can be used to build a "firmware" executable for the 32blit. This was previously done with blit_executable_int_flash, which was internal to the SDK.
  • Surface::get_pixel allows reading back data from Surfaces, without needing to access data or know the format. It also works in the PicoVision port.
  • set_screen_mode now takes an optional resolution, currently only used for the PicoVision.
  • The launcher is a bit more helpful about incompatible blit files instead of just going "Oops".
  • The usual bug fixes all over.

Compatibility

As usual, old .blit files should continue to work. This version does contain a minor API bump though, so new .blit files will not run on older firmware.

Aditionally, some loooong-deprecated wrappers have been removed. (SpriteSheet -> Surface, a few blit variants and 32blit.cmake)

What's Changed

Full Changelog: v0.3.0...v0.3.1