Wykres commitów

2632 Commity (ci/micropython-1.26.0)

Autor SHA1 Wiadomość Data
Phil Howard 5ed7913a2c MicroPython: Fix errors reporting an errno. 2025-04-25 17:33:53 +01:00
Phil Howard 5aaf5d3608 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-04-25 17:33:53 +01:00
Phil Howard a22c966ddd CI: Remove Unicorn boards.
These have moved to: https://github.com/pimoroni/unicorn
2025-04-25 17:33:53 +01:00
Phil Howard 8f5c04ba48 PicoVector: Basic documentation. 2025-04-25 17:33:53 +01:00
Phil Howard 9588ee1c26 PicoVector: Make Polygon().path chainable. 2025-04-25 17:33:53 +01:00
Phil Howard cce0a7dabe Hershey Fonts: Fix default value setting for HERSHEY_FONTS. 2025-04-25 17:33:53 +01:00
Phil Howard c58142cf0b Unicorns: Disable Hershey fonts to reclaim some bytes. 2025-04-25 17:33:53 +01:00
Phil Howard fbe2851eaf 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-04-25 17:33:53 +01:00
Phil Howard a2b91340e2 PicoVector: Don't force iterated points to int(). 2025-04-25 17:33:53 +01:00
Phil Howard c5bd4497cd Hub75: Replace and document gamma correction table. 2025-04-25 17:33:53 +01:00
Phil Howard dd1aad35af Hub75: Add support for alternate pen types. 2025-04-25 17:33:53 +01:00
Phil Howard 638ff3d8f4 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-04-25 17:33:53 +01:00
Phil Howard 1488a0b796 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-04-25 17:33:53 +01:00
Phil Howard f533177731 PNG/JPEGDEC: Use MP_ROM_QSTR. 2025-04-25 17:33:53 +01:00
Phil Howard 9bf5562d24 Hub75: Remove 128x128 panel rotation hack. 2025-04-25 17:33:53 +01:00
Phil Howard d0f2a8b1a2 CI: Bump MicroPython to v1.24.1. 2025-04-25 17:33:53 +01:00
Phil Howard 5e114e97c4 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-04-25 17:33:53 +01:00
Phil Howard 0d96ec051b PicoVector: Fix fonts not rendering with no transform set. 2025-04-25 17:33:53 +01:00
Phil Howard 2f5ac9b2db 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-04-25 17:33:53 +01:00
Phil Howard 6efe234139 ST7789: Add RAMCTRL mentioned in #1040. 2025-04-25 17:33:53 +01:00
Mike Bell 807d4ba7ef PicoVector: Fix ppp arc memory corruption. 2025-04-25 17:33:52 +01:00
Mike Bell 9e7c2640d4 Hub75: Fix LED ghosting. 2025-04-25 17:33:52 +01:00
Mike Bell 82c3b73655 PicoVector: Fully initialise text metrics. 2025-04-25 17:33:52 +01:00
Phil Howard 27bd5eecde 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-04-25 17:33:52 +01:00
Phil Howard 660a19952b PicoVector: Add arbitrary matrix transform. 2025-04-25 17:33:52 +01:00
Phil Howard 4c55038f94 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-04-25 17:33:52 +01:00
Phil Howard e1143e80f3 PicoVector: Fix bug in Polygon.regular. 2025-04-25 17:33:52 +01:00
Phil Howard 70a241ebd4 PicoGraphics: Check for out of range layers. 2025-04-25 17:33:52 +01:00
Phil Howard 85c2c659b9 PicoVector: MPY bindings for line and arc. 2025-04-25 17:33:52 +01:00
Phil Howard f900761280 PicoVector: Tweak for C++ compatibility. 2025-04-25 17:33:52 +01:00
Mike Bell bebadbba72 PicoVector: Avoid clipping bottom right AA edges. 2025-04-25 17:33:52 +01:00
Jonathan Williamson a0f35a6834 PicoVector: Add star and line primitives. 2025-04-25 17:33:52 +01:00
Phil Howard 54ecb2318c PicoGraphics: Implement RGB888 alpha blending. 2025-04-25 17:33:52 +01:00
Mike Bell 23860d4315 Hub75: Reformat loop for performance.
~3.09ms to ~2.87ms per frame without overclock.
2025-04-25 17:33:52 +01:00
Phil Howard 73824a0219 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-04-25 17:33:52 +01:00
Phil Howard d2728d4b06 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-04-25 17:33:52 +01:00
Phil Howard 78eb6da31b PicoVector: Remove * 4 from pp_nodes lookup. 2025-04-25 17:33:52 +01:00
Phil Howard 950789e7fe PicoGraphics/Hub75: Add support for 128x128. 2025-04-25 17:33:52 +01:00
Phil Howard 15b0b69a28 PicoVector: Update example with text bounds. 2025-04-25 17:33:52 +01:00
Phil Howard 9359f679d7 PicoGraphics: Don't force Presto to RGB565. 2025-04-25 17:33:52 +01:00
Mike Bell 61b3e0e65f PicoGraphics: Presto full res option. 2025-04-25 17:33:52 +01:00
Mike Bell d1ec50bc3f PicoVector: Apply overall transform to text rendering. 2025-04-25 17:33:52 +01:00
Mike Bell 650fcf6697 PicoVector: Add optional text max width and max height. 2025-04-25 17:33:52 +01:00
Phil Howard 8d8b950308 PicoVector: Revert the tile buffer to be fixed.
Ensure that MicroPython doesn't ever place the tile buffer into PSRAM
and trash performance.
2025-04-25 17:33:52 +01:00
Phil Howard 8f7c1b3c70 PicoVector: Runtime buffer allocation. 2025-04-25 17:33:52 +01:00
Phil Howard 859a9d8b61 PicoVector: Prefix some pretty-poly variables. 2025-04-25 17:33:52 +01:00
Phil Howard 9d7ada75a6 PicoGraphics: Non-blocking Inky update for #936. 2025-04-25 17:33:52 +01:00
Phil Howard a27118e446 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-04-25 17:33:52 +01:00
Phil Howard 0ea83622d0 PicoGraphics: Add Presto. 2025-04-25 17:33:52 +01:00
Phil Howard 85dee30657 PicoVector: Remove (ifdef guard) debug functions. 2025-04-25 17:33:52 +01:00