Wykres commitów

2572 Commity (973fade9fde297a7161d0e5e8cfc483c4eddbce4)

Autor SHA1 Wiadomość Data
Phil Howard 973fade9fd MicroPython: Fix errors reporting an errno. 2025-03-28 10:31:01 +00:00
Phil Howard 3d68cf0010 MicroPython: Add MP_ERROR_TEXT() around errors.
This is required for MicroPython error text compression which is
going to be enabled by default for RP2 builds.

We have a lot of error messages, so the potential flash gain here
is worth the effort of making this work.
2025-03-28 10:31:01 +00:00
Phil Howard d307e4f759 CI: Remove Unicorn boards.
These have moved to: https://github.com/pimoroni/unicorn
2025-03-28 10:31:01 +00:00
Phil Howard 1532b2ca7c PicoVector: Basic documentation. 2025-03-28 10:31:01 +00:00
Phil Howard 2a1c0402ce PicoVector: Make Polygon().path chainable. 2025-03-28 10:31:01 +00:00
Phil Howard 01faf376b7 Hershey Fonts: Fix default value setting for HERSHEY_FONTS. 2025-03-28 10:31:01 +00:00
Phil Howard fdfb28ebb8 Unicorns: Disable Hershey fonts to reclaim some bytes. 2025-03-28 10:31:01 +00:00
Phil Howard a25b27aca8 PicoVector: Improve transform handling.
* Store a reference to transform, so `set_transform(Transform())` is not GC'd until it is replaced
* Transformations return the transform, allowing chaining: `transform.rotate().scale().translate()`
* A new `get_transform` method for getting the currently set transform.
2025-03-28 10:31:01 +00:00
Phil Howard b9a14a275d PicoVector: Don't force iterated points to int(). 2025-03-28 10:31:01 +00:00
Phil Howard ff004aec15 Hub75: Replace and document gamma correction table. 2025-03-28 10:31:01 +00:00
Phil Howard a8f6b48fbf Hub75: Add support for alternate pen types. 2025-03-28 10:31:01 +00:00
Phil Howard b3d7bd497d Hershey Fonts: ifdef guard hershey features for eventual deprecation.
Hershey fonts have all but been replaced by PicoVector's "Alright Fonts"
implementation and in many case we need this flash back!
2025-03-28 10:31:01 +00:00
Phil Howard 7fee95d668 PNG/JPEGDEC: Remove finalizer.
Remove the finalizer from PNGDEC and JPEGDEC, since it was both redundant
and actively harmful.

The finalizer was just calling "close" which is unecessary since the file
is closed automatically after opening/rendering and not left open.

If a file did not exist and "open_file" bailed with ENOENT then it would
be left in an unknown state, and the finalizer calling "close" would
cause a hardlock.
2025-03-28 10:31:01 +00:00
Phil Howard 25627588c3 PNG/JPEGDEC: Use MP_ROM_QSTR. 2025-03-28 10:31:01 +00:00
Phil Howard 01e1eaa157 Hub75: Remove 128x128 panel rotation hack. 2025-03-28 10:31:01 +00:00
Phil Howard 14388e0984 CI: Bump MicroPython to v1.24.1. 2025-03-28 10:31:01 +00:00
Phil Howard 5c19c6ab6a PicoVector: AF: Support for 16bit point count.
Somewhere in the conversion from C++ to C we lost support for 16-bit point counts.

Raise the internal point count to 16-bit, and check for a flag in the font.

If the flag is set, treat the point count as 16-bits, otherwise fallback to 8 for back compatibility.
2025-03-28 10:31:01 +00:00
Phil Howard 4a3f0a435d PicoVector: Fix fonts not rendering with no transform set. 2025-03-28 10:31:01 +00:00
Phil Howard cfe031db33 Tufty 2040: Update spectrometer vector example. 2025-03-28 10:31:01 +00:00
Phil Howard 79844c6eaa PicoVector: Fix bug in polygon iterator.
list(Polygon) should return a list of points, but crashed with non-empty polygons.

We were advancing to the next path and then retriving an invalid point count for building the tuple.

Save the point count before advancing to the next path.
2025-03-28 10:31:01 +00:00
Phil Howard 10acd5d3de Tufty 2040: Update polygons example. 2025-03-28 10:31:01 +00:00
Phil Howard c38652c79b ST7789: Add RAMCTRL mentioned in #1040. 2025-03-28 10:31:01 +00:00
Mike Bell 94ee06e01b PicoVector: Fix ppp arc memory corruption. 2025-03-28 10:31:01 +00:00
Mike Bell 37083a6952 Hub75: Fix LED ghosting. 2025-03-28 10:31:01 +00:00
Mike Bell a08395ca84 PicoVector: Fully initialise text metrics. 2025-03-28 10:31:01 +00:00
Phil Howard ba767b5217 PicoVector: Initialise pp_transform().
For some reason this was unset causing drawing to fail.

Reset it to a known good state in the constructor.
2025-03-28 10:31:01 +00:00
Phil Howard 17785d9299 PicoVector: Add arbitrary matrix transform. 2025-03-28 10:31:01 +00:00
Phil Howard c3680857ba PicoVector: Fix bug in Polygon.rectangle.
Fix spurious point in top-left corner causing a broken triangular
rectangle when any permutation of corners other than the bottom-left
is rounded.
2025-03-28 10:31:01 +00:00
Phil Howard ad7833e45a PicoVector: Fix bug in Polygon.regular. 2025-03-28 10:31:01 +00:00
Phil Howard 3e7baf6906 PicoGraphics: Check for out of range layers. 2025-03-28 10:31:01 +00:00
Phil Howard 9162120b90 PicoVector: MPY bindings for line and arc. 2025-03-28 10:31:01 +00:00
Phil Howard e6ae12e65a PicoVector: Tweak for C++ compatibility. 2025-03-28 10:31:01 +00:00
Mike Bell 4986537f5d PicoVector: Avoid clipping bottom right AA edges. 2025-03-28 10:31:01 +00:00
Jonathan Williamson 610b4e8e4b PicoVector: Add star and line primitives. 2025-03-28 10:31:01 +00:00
Phil Howard df5bda7363 PicoGraphics: Implement RGB888 alpha blending. 2025-03-28 10:31:01 +00:00
Mike Bell 545ea81e53 Hub75: Reformat loop for performance.
~3.09ms to ~2.87ms per frame without overclock.
2025-03-28 10:31:01 +00:00
Phil Howard cb6bf89a33 Hub75: Performance improvements and stacked mode.
Inline and simplify the pixel flip for a 13.2ms -> 3.8ms speedup at 128x128 on RP2350 stock.

Drop RGB565 mode.

Add the ability to stack some panels, eg: 2x128x64 in a 128x127 configuration.
2025-03-28 10:31:01 +00:00
Phil Howard 8b32174fc9 PicoVector: Avoid MicroPython GC.
Since we're not using tracked allocation, any memory we don't explicitly
hold a reference to will be assumed unused by MicroPython's GC.

Pass up the pp_nodes and pp_node_counts points (hackily) to fix this.
2025-03-28 10:31:01 +00:00
Phil Howard 8f87e1c75f PicoVector: Remove * 4 from pp_nodes lookup. 2025-03-28 10:31:01 +00:00
Phil Howard 405cd490ea PicoGraphics/Hub75: Add support for 128x128. 2025-03-28 10:31:01 +00:00
Phil Howard d7f55fa3c7 PicoVector: Update example with text bounds. 2025-03-28 10:31:01 +00:00
Phil Howard 9a43f5f371 PicoGraphics: Don't force Presto to RGB565. 2025-03-28 10:31:01 +00:00
Mike Bell 2811350c50 PicoGraphics: Presto full res option. 2025-03-28 10:31:01 +00:00
Mike Bell 00bfbddaf0 PicoVector: Apply overall transform to text rendering. 2025-03-28 10:31:01 +00:00
Mike Bell c94f4607de PicoVector: Add optional text max width and max height. 2025-03-28 10:31:01 +00:00
Phil Howard 074570f99c PicoVector: Revert the tile buffer to be fixed.
Ensure that MicroPython doesn't ever place the tile buffer into PSRAM
and trash performance.
2025-03-28 10:31:01 +00:00
Phil Howard 1bf73a20cd PicoVector: Runtime buffer allocation. 2025-03-28 10:31:01 +00:00
Phil Howard aa9d03f0cb PicoVector: Prefix some pretty-poly variables. 2025-03-28 10:31:01 +00:00
Phil Howard 24eee10895 PicoGraphics: Non-blocking Inky update for #936. 2025-03-28 10:31:01 +00:00
Phil Howard 64136cdb83 Plasma: Add support for GPIOs >=32.
For both APA102 and WS2812 the pins used on the same PIO must be in the same range.
The GPIO base offset applies to the whole PIO and not individual state machines.

This means that for APA102 both data and clock must be in the same pin range,
ie: either 16-48 inclusive or 0-31 inclusive.
2025-03-28 10:31:01 +00:00