Wykres commitów

2551 Commity (f9007612802b09e2bd0d0128c024ba86ce71cb15)

Autor SHA1 Wiadomość Data
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
Phil Howard b40818c900 PicoVector: Refactor text multiline support.
Drop dependence on null terminated strings, and for a final linebreak.

Bound all text processing using the text length.
2025-04-25 17:33:52 +01:00
Phil Howard 48ee9fde66 PicoGraphics: RGB565 skip layers if not enabled. 2025-04-25 17:33:52 +01:00
Phil Howard 8f7e8d4334 PicoVector: Improve text rendering and control. 2025-04-25 17:33:52 +01:00
Phil Howard 0f0c1ab8a2 PicoGraphics: Add layer support to PicoVector tile renderer. 2025-04-25 17:33:52 +01:00
Phil Howard 75a01b2fb8 PicoVector: Big refactor, ppp primitives.
* Remove Polygon types in favour of primitives .circle, .rectangle etc
* Add a new Transform type for building up transformation matrices
* Add support to set/clear transform on drawing
2025-04-25 17:33:52 +01:00
Phil Howard eae591ae3c PicoVector: Update C++ examples. 2025-04-25 17:33:52 +01:00
Phil Howard 1115900443 PicoVector: Rewrite around new linked-lists poly. 2025-04-25 17:33:52 +01:00
Phil Howard faf675c9f8 PicoVector: Use tile renderer for all pens. 2025-04-25 17:33:52 +01:00
Phil Howard be5315dab3 PicoVector: Support float types in MicroPython bindings. 2025-04-25 17:33:52 +01:00
Phil Howard ede2bad4f3 PicoVector: Remove malloc from MicroPython bindings. 2025-04-25 17:33:52 +01:00
Phil Howard d188afcb11 PicoGraphics: Add get_clip. 2025-04-25 17:33:52 +01:00
Phil Howard ed494ecf20 PicoVector: Fix x16 anti-aliasing. 2025-04-25 17:33:52 +01:00
Phil Howard 9642cdf2cd PicoGraphics: Add RGB565 alpha blending support. 2025-04-25 17:33:52 +01:00
Phil Howard 568f329efc PicoVector: Remove alright_fonts.cpp from cmake. 2025-04-25 17:33:52 +01:00
Phil Howard db4670bb8e PicoVector: C++ basic bringup. 2025-04-25 17:33:52 +01:00
Phil Howard e2ce6eb416 PicoVector: render text that doesn't end with a linebreak. 2025-04-25 17:33:52 +01:00
Phil Howard e48c798bdb PicoVector: Fix out of bounds drawing.
pretty-poly.h is not giving us fully clipped rectangles, so revert to the
slower bounds checked pixel for now.
2025-04-25 17:33:52 +01:00
Phil Howard 56d430b862 PicoVector: fix pointer arithmatic in af_load_font_file.
Pointers were being incremented as if they were bytes, rather than larger
containers.
2025-04-25 17:33:52 +01:00
Phil Howard 116df431fb PicoVector: Break things until they work. 2025-04-25 17:33:52 +01:00
Phil Howard 9c0e696230 PicoVector: alright-fonts bringup. 2025-04-25 17:33:52 +01:00
Phil Howard 9250e129db PicoVector: Swap rotate translation order. 2025-04-25 17:33:52 +01:00
Phil Howard 116268b6f5 PicoVector: Vendor pretty-poly and tweak rotation. 2025-04-25 17:33:52 +01:00
Phil Howard a7a98ae3aa PicoVector: Suppress errors.
Ignore sign compare and narrowing conversion errors in pretty-poly.h.
2025-04-25 17:33:52 +01:00
Phil Howard d19971d7e0 PicoVector: Rewrite MicroPython bindings. 2025-04-25 17:33:52 +01:00
Phil Howard 9f1d68dbec PicoVector: Rewrite around new C pretty-poly.h. 2025-04-25 17:33:52 +01:00
Phil Howard 1a8f8e9aae PicoGraphics: Support multiple layers in more types. 2025-04-25 17:33:52 +01:00
Phil Howard 354c95ca61 PicoGraphics: Layers.
Add preliminary support for multiple layered drawing surfaces.

Allows, for example, static content to be loaded into one layer and
remain unmodified while the above layer contains animations.

Particularly useful for drawing PNG or JPEG UI elements which are
then overdrawn with text or animated elements, without paying the
cost of loading/decoding every frame.
2025-04-25 17:33:52 +01:00
Philip Howard a3811b8330
Merge pull request #1075 from pimoroni/feature/python-linting-update
QA/CI: Update and apply Python and MicroPython linting rules.
2025-04-25 17:33:11 +01:00
Phil Howard 4ebdff414e QA: Lint Python tools. 2025-04-25 17:04:26 +01:00