Phil Howard
fba0f1c962
PicoVector: Add tracked memory alloc, track the node buffer.
...
With a low GC threshold the node buffer was being collected (despite guards against this)
and causing further drawing operations to be corrupted.
Add a new tracked malloc method and use it for node buffers and font data.
Tweak pp_poly_add_path to accept a point count, avoiding many successive rellocs when
dealing with a known quantity of points (copying from an af_glyph_t.)
2025-05-09 17:11:27 +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
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
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
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
8f7e8d4334
PicoVector: Improve text rendering and control.
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
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
ed494ecf20
PicoVector: Fix x16 anti-aliasing.
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
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
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
116268b6f5
PicoVector: Vendor pretty-poly and tweak rotation.
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
5f730ff400
PicoVector: Pass PicoGraphics clip into Pretty Poly.
2023-09-12 12:03:09 +01:00
Mike Bell
e908d5e53e
Allow pen function for fast tile alpha blending
2023-09-08 23:48:16 +01:00
Phil Howard
c443f8d206
PicoVector: Tweak polygon tile rendering loop.
2023-08-22 09:32:28 +01:00
Phil Howard
cfe8b3c096
PicoVector: Text rotation support.
2023-08-22 09:32:28 +01:00
Phil Howard
7c5ebfce8c
PicoVector: Matrix transforms and polygon type.
2023-08-22 09:32:28 +01:00
Phil Howard
61c9d7e9b6
PicoVector: Experimental matrix transforms.
2023-08-22 09:32:28 +01:00
Phil Howard
c7d9fe411a
PicoVector: Bugfixes and font/aa options.
2023-08-22 09:32:28 +01:00
Phil Howard
4671607b3a
PicoVector: Vector anti-aliasing support.
2023-08-22 09:32:28 +01:00
Phil Howard
95ab839ba5
PicoVector: Text wrap support.
2023-08-22 09:32:28 +01:00
Phil Howard
9e430fd68c
PicoVector: Better separation of concerns, add Alright Fonts support.
2023-08-22 09:32:28 +01:00