Mike Bell
b285ad94d8
PicoVector: Faster polygon rendering.
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
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
Mike Bell
94ee06e01b
PicoVector: Fix ppp arc memory corruption.
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
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
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
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
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
089e5df243
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-03-28 10:31:01 +00:00
Phil Howard
983370f916
PicoGraphics: RGB565 skip layers if not enabled.
2025-03-28 10:31:01 +00:00
Phil Howard
09dbfa1e64
PicoVector: Improve text rendering and control.
2025-03-28 10:31:01 +00:00
Phil Howard
086b9d0135
PicoGraphics: Add layer support to PicoVector tile renderer.
2025-03-28 10:31:01 +00:00
Phil Howard
daa6603d1b
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-03-28 10:31:01 +00:00
Phil Howard
71bcc9d62c
PicoVector: Rewrite around new linked-lists poly.
2025-03-28 10:31:01 +00:00
Phil Howard
dd7d6262df
PicoVector: Use tile renderer for all pens.
2025-03-28 10:31:01 +00:00
Phil Howard
79a33d5a42
PicoVector: Fix x16 anti-aliasing.
2025-03-28 10:31:01 +00:00
Phil Howard
7bc6956dd8
PicoGraphics: Add RGB565 alpha blending support.
2025-03-28 10:31:01 +00:00
Phil Howard
3add0024f6
PicoVector: C++ basic bringup.
2025-03-28 10:31:01 +00:00
Phil Howard
0da5eda410
PicoVector: render text that doesn't end with a linebreak.
2025-03-28 10:31:01 +00:00
Phil Howard
9879e6d602
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-03-28 10:31:01 +00:00
Phil Howard
2fc45d0737
PicoVector: fix pointer arithmatic in af_load_font_file.
...
Pointers were being incremented as if they were bytes, rather than larger
containers.
2025-03-28 10:31:01 +00:00
Phil Howard
a415261cc9
PicoVector: Break things until they work.
2025-03-28 10:31:01 +00:00
Phil Howard
3d6ac818a1
PicoVector: alright-fonts bringup.
2025-03-28 10:31:01 +00:00
Phil Howard
62e45ff8a8
PicoVector: Swap rotate translation order.
2025-03-28 10:31:01 +00:00
Phil Howard
4787460476
PicoVector: Vendor pretty-poly and tweak rotation.
2025-03-28 10:31:01 +00:00
Phil Howard
2a25cfea43
PicoVector: Suppress errors.
...
Ignore sign compare and narrowing conversion errors in pretty-poly.h.
2025-03-28 10:31:01 +00:00
Phil Howard
3de74ad5e6
PicoVector: Rewrite around new C pretty-poly.h.
2025-03-28 10:31:01 +00:00
Phil Howard
51b00c18e9
PicoGraphics: Support multiple layers in more types.
2025-03-28 10:31:01 +00:00
Phil Howard
e46fec7902
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-03-28 10:31:01 +00:00
Philip Howard
f7c45a9983
Merge pull request #1042 from jaeheonshim-forks/inky-blocking-fix
...
Fix: Properly implement non-blocking update functions for the Inky Frame
2025-01-15 11:33:56 +00:00
Phil Howard
19689b4414
PicoGraphics: Fix overflow bug in p4 pixel span.
...
A properly aligned zero length pixel span would cause a single
pixel to be drawn, the length overflowed and a subsequent
2GB of pixels drawn by the main loop.
Add a simple check to discard any attempt to draw zero length spans.
Fixes pimoroni/pimoroni-pico-rp2350#32
2025-01-14 12:16:12 +00:00
Jaeheon Shim
3811195374
Honor 'blocking' parameter in inky_frame and inky_frame_7 update functions
2024-12-24 16:57:48 -05:00
Philip Howard
63461337b1
Merge pull request #1006 from PiPicoDev/display_28
...
Add Pico Display Pack 2.8 and fix SPI for st7789 on Pico2
2024-12-11 17:24:40 +00:00
Charlie Birks
193fe81441
picographics: update text docs
2024-12-05 14:18:19 +00:00
Tobias
6d6a1e2b7d
Allow spritesheets for PenRGB565
2024-10-24 17:45:35 +02:00
peardox
080e6adcf3
Add display_pack_28 and demo with FPS, fix spi for rp2350 in st7789
2024-10-01 18:43:39 +01:00
thirdr
5ab626e983
RV3028: C/C++ Library docs
2024-06-11 16:12:35 +01:00
thirdr
ffa12c2165
corrected pin defs
2024-06-03 10:31:46 +01:00
Phil Howard
964cf5eedf
G/S/C Unicorn: Fix get_brightness to use correct max value.
...
Add a comment noting that 256 is the correct maximum brightness.
2024-03-11 21:14:43 +00:00