Wykres commitów

2532 Commity (ff1917c2f6f34f9476cc9e469e45fc18cad80ae9)

Autor SHA1 Wiadomość Data
Phil Howard ff1917c2f6 PicoVector: MPY bindings for line and arc. 2025-01-16 16:32:34 +00:00
Phil Howard bed45f6424 PicoVector: Tweak for C++ compatibility. 2025-01-16 16:32:34 +00:00
Mike Bell e99a791352 PicoVector: Avoid clipping bottom right AA edges. 2025-01-16 16:32:34 +00:00
Jonathan Williamson 749feb03ea PicoVector: Add star and line primitives. 2025-01-16 16:32:34 +00:00
Phil Howard f44196860a PicoGraphics: Implement RGB888 alpha blending. 2025-01-16 16:32:34 +00:00
Mike Bell 4fc8323e9a Hub75: Reformat loop for performance.
~3.09ms to ~2.87ms per frame without overclock.
2025-01-16 16:32:34 +00:00
Phil Howard 44ffeeed3f 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-01-16 16:32:34 +00:00
Phil Howard 515521c16c 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-01-16 16:32:34 +00:00
Phil Howard 93323f4a28 PicoVector: Remove * 4 from pp_nodes lookup. 2025-01-16 16:32:34 +00:00
Phil Howard b71324bbd4 PicoGraphics/Hub75: Add support for 128x128. 2025-01-16 16:32:34 +00:00
Phil Howard 27b363db5f PicoVector: Update example with text bounds. 2025-01-16 16:32:34 +00:00
Phil Howard c9c7f1d634 PicoGraphics: Don't force Presto to RGB565. 2025-01-16 16:32:34 +00:00
Mike Bell b9f11a3b1d PicoGraphics: Presto full res option. 2025-01-16 16:32:34 +00:00
Mike Bell 4274cd183b PicoVector: Apply overall transform to text rendering. 2025-01-16 16:32:34 +00:00
Mike Bell 6942bc7329 PicoVector: Add optional text max width and max height. 2025-01-16 16:32:34 +00:00
Phil Howard cc38cf06fb PicoVector: Revert the tile buffer to be fixed.
Ensure that MicroPython doesn't ever place the tile buffer into PSRAM
and trash performance.
2025-01-16 16:32:34 +00:00
Phil Howard 234ea41f40 PicoVector: Runtime buffer allocation. 2025-01-16 16:32:34 +00:00
Phil Howard 0cd4669f7d PicoVector: Prefix some pretty-poly variables. 2025-01-16 16:32:34 +00:00
Phil Howard 25f30fba00 PicoGraphics: Non-blocking Inky update for #936. 2025-01-16 16:32:34 +00:00
Phil Howard 9985daf56b 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-01-16 16:32:34 +00:00
Phil Howard b69ad9b1b3 PicoGraphics: Add Presto. 2025-01-16 16:32:34 +00:00
Phil Howard e04e6efea6 PicoVector: Remove (ifdef guard) debug functions. 2025-01-16 16:32:34 +00:00
Phil Howard 230d9facab 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-01-16 16:32:34 +00:00
Phil Howard 97f00a05a3 PicoGraphics: RGB565 skip layers if not enabled. 2025-01-16 16:32:34 +00:00
Phil Howard 9989135926 PicoVector: Improve text rendering and control. 2025-01-16 16:32:34 +00:00
Phil Howard 23d166895f PicoGraphics: Add layer support to PicoVector tile renderer. 2025-01-16 16:32:34 +00:00
Phil Howard d4e0d660b9 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-01-16 16:32:34 +00:00
Phil Howard 3f46772e44 PicoVector: Update C++ examples. 2025-01-16 16:32:34 +00:00
Phil Howard 34cd133cd1 PicoVector: Rewrite around new linked-lists poly. 2025-01-16 16:32:34 +00:00
Phil Howard 5c03d8e30a PicoVector: Use tile renderer for all pens. 2025-01-16 16:32:34 +00:00
Phil Howard 80c52183fc PicoVector: Support float types in MicroPython bindings. 2025-01-16 16:32:34 +00:00
Phil Howard 8212fb715b PicoVector: Remove malloc from MicroPython bindings. 2025-01-16 16:32:34 +00:00
Phil Howard d6862fd49d PicoGraphics: Add get_clip. 2025-01-16 16:32:34 +00:00
Phil Howard 7fd72fe06c PicoVector: Fix x16 anti-aliasing. 2025-01-16 16:32:34 +00:00
Phil Howard 03ada256ed PicoGraphics: Add RGB565 alpha blending support. 2025-01-16 16:32:34 +00:00
Phil Howard 5ce870fd3f PicoVector: Remove alright_fonts.cpp from cmake. 2025-01-16 16:32:34 +00:00
Phil Howard 22850357ef PicoVector: C++ basic bringup. 2025-01-16 16:32:34 +00:00
Phil Howard e35678e4c0 PicoVector: render text that doesn't end with a linebreak. 2025-01-16 16:32:34 +00:00
Phil Howard 89fc6256d3 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-01-16 16:32:34 +00:00
Phil Howard 26c310fbe4 PicoVector: fix pointer arithmatic in af_load_font_file.
Pointers were being incremented as if they were bytes, rather than larger
containers.
2025-01-16 16:32:34 +00:00
Phil Howard 29ee929d14 PicoVector: Break things until they work. 2025-01-16 16:32:34 +00:00
Phil Howard dc251a42bf PicoVector: alright-fonts bringup. 2025-01-16 16:32:34 +00:00
Phil Howard c5af1752ce PicoVector: Swap rotate translation order. 2025-01-16 16:32:34 +00:00
Phil Howard 1603b64af9 PicoVector: Vendor pretty-poly and tweak rotation. 2025-01-16 16:32:34 +00:00
Phil Howard 6a8a7c4a0c PicoVector: Suppress errors.
Ignore sign compare and narrowing conversion errors in pretty-poly.h.
2025-01-16 16:32:34 +00:00
Phil Howard d479923133 PicoVector: Rewrite MicroPython bindings. 2025-01-16 16:32:34 +00:00
Phil Howard f7a33ade4e PicoVector: Rewrite around new C pretty-poly.h. 2025-01-16 16:32:34 +00:00
Phil Howard a340b47e69 PicoGraphics: Support multiple layers in more types. 2025-01-16 16:32:34 +00:00
Phil Howard 3a9cdc8f39 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-01-16 16:32:34 +00:00
Philip Howard aa1e3f18b7
Merge pull request #1029 from pimoroni/feature/scd4x-low-power
SCD4X: API bump and possible low power support
2025-01-15 11:59:00 +00:00