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
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
Phil Howard
ce42d814a7
Pico Graphics: Avoid unecessary and broken polygon scanline clip.
2023-10-16 09:56:40 +01:00
Phil Howard
4671607b3a
PicoVector: Vector anti-aliasing 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
Phil Howard
09a58b269f
PicoGraphics: Various compile warning fixes for Pretty Poly.
2023-08-22 09:32:28 +01:00
Phil Howard
cc7219b44a
PicoGraphics: Experimental Pretty Poly bring-up.
2023-08-22 09:32:28 +01:00
Phil Howard
004c8de8eb
Bitmap Fonts: Add rotation support.
...
* Fix bug with word-wrap ignoring \n
* Fix bug with word-wrap miscalculating word size
2023-08-03 16:30:25 +01:00
Phil Howard
fba7b53c36
PicoGraphics: Fixed-width bitmap font support.
2023-05-15 11:03:39 +01:00
Phil Howard
73f50e43ec
Hershey Fonts: Replace map lookup to avoid std::string.
2023-03-16 13:25:19 +00:00
Phil Howard
375df60ff3
PicoGraphics: Switch to string_view.
...
MicroPython's GET_STR_DATA_LEN macro returns a const byte array and len, which std::string would copy into heap.
Using string_view lets us wrap the existing const values.
2023-03-16 13:25:19 +00:00
Phil Howard
a8a8321405
PicoGraphics: (Try to) handle non-div-2 thickness.
2023-03-08 14:49:09 +00:00
Phil Howard
83f88c034d
PicoGraphics: Enable thickness for all pens. Document.
2023-03-08 14:34:28 +00:00
Phil Howard
c9f6dfec4f
PicoGraphics: from_hsv to RGB::from_hsv.
2023-02-23 12:59:19 +00:00
Phil Howard
bea90dfd60
JPEGDEC: Experimental 3bit/4bit palette no-dither.
2023-02-22 15:40:22 +00:00
Phil Howard
bbeac41785
Cosmic Unicorn: Implement RGB888 frame convert.
2023-02-21 12:52:46 +00:00
ZodiusInfuser
5a62a79a93
Renamed thick_line
2023-02-16 10:28:07 +00:00
Phil Howard
c3ad87765d
PicoGraphics: Extremely cursed thickness support for 1bit pens.
...
Experimental. There must be less cursed way to do this.
2023-02-10 22:15:07 +00:00
Philip Howard
c4decc5003
PicoGraphics: HSV Pen ( #665 )
...
Co-authored-by: Gee Bartlett <122281230+ageeandakeyboard@users.noreply.github.com>
2023-02-09 16:13:37 +00:00
jon
63183d28be
Lots of features added
2022-10-13 13:19:50 +01:00
Phil Howard
fc3060b640
PicoGraphics: Simplify RGB565 frame convert.
...
Rewrite RGB565 frame convert to iterate over pixels by index, and transfer the buffer when it fills.
Avoid using a bitmask so BUF_LEN can be arbitrary.
2022-09-21 11:32:19 +01:00
Mike Bell
7f330d1a04
Pico Graphics: Use fixed size buffer for frame conversion
2022-08-23 23:07:13 +01:00
Phil Howard
12866a0b7b
PicoGraphics/JPEGDEC: Use PicoGraphics dither.
2022-07-06 10:56:56 +01:00
Phil Howard
cb5f8308a0
PicoGraphics/UC8159: 3bit bitplane pen mode.
...
Add a 3bit pen mode to save 1/4th the RAM needed for the 600x448 Inky Frame.
2022-06-30 15:25:02 +01:00
jon
077159adeb
PicoGraphics: Add set_pixel_span and call where appropriate.
2022-06-17 11:04:02 +01:00
Phil Howard
27d571b473
PicoGraphics: Tidy up dithering.
2022-06-14 15:06:44 +01:00
Phil Howard
eb303ae811
PicoGraphics: Integer sprite scaling.
2022-06-14 13:28:27 +01:00
Phil Howard
5d7113e8c9
PicoGraphics: Basic 128x128 RGB332 spritesheet support.
2022-06-13 20:12:03 +01:00
Phil Howard
2419f0ef45
PicoGraphics/JPEGDEC: RGB332 per channel fast dither.
2022-06-13 20:12:03 +01:00
Phil Howard
602d1b41dd
PicoGraphics: Attempt at dither and scanline interrupts.
...
Currently both unused and both very slow.
Dither may only be feasible for <=8 colour displays.
JPEGDEC will dither to 4-bit greyscale quite happily.
2022-06-13 20:12:03 +01:00
Phil Howard
62818a5f49
PicoGraphics: Palettes as RGB, Scanline convert with callback.
2022-06-13 20:12:03 +01:00
Phil Howard
a558d35cab
PicoGraphics: Remove last vestiges of template approach.
2022-06-13 20:12:03 +01:00
Phil Howard
49b62515c2
PicoGraphicS: Hershey support, bugfixes, tidyup.
2022-06-13 20:12:03 +01:00
Phil Howard
fc1561e54b
PicoGraphics: Fix set_framebuffer.
2022-06-13 20:12:03 +01:00
Phil Howard
b13470b4fb
PicoGraphics: Add set_palette and set_font.
2022-06-13 20:12:03 +01:00
Phil Howard
67f1331b23
ST7789 -> PicoGraphics
...
* Absorb ST7735 support into the generic ST7789 driver and rename to PicoGraphics
* Delete obsolete MicroPython modules
* Refactor PicoGraphics to inherited class for each pen type
* Refactor ST7789 and ST7735 to derive from DisplayDriver
* Allow user to set pen_type in MicroPython constructor for RGB565, RGB332, P8 and P4 modes
2022-06-13 20:11:49 +01:00
Phil Howard
7e4725d1cd
ST7789/PicoGraphics: Templated framebuffer formats.
2022-06-13 20:11:09 +01:00
Phil Howard
65788ae6bf
ST7789/PicoGraphics: Faster RGB332 mode lookups.
...
Replace palette search in RGB332 mode with a simple return of the RGB565 colour packed to RGB332,
since this is identical to its index in the palette.
2022-06-13 20:11:09 +01:00
Phil Howard
9b8d215cd3
ST7789/PicoGraphics: Update C++ libs and examples.
2022-06-13 20:11:09 +01:00
Phil Howard
c13f53092d
ST7789/PicoGraphics: Fix palette bugs, add reserve.
2022-06-13 20:11:09 +01:00
Phil Howard
ef6179e77d
ST7789/PicoGraphics: Refactor & make modes more explicit.
2022-06-13 20:11:09 +01:00
Phil Howard
73f73a0ac5
Make colour truncation from 565 to 332 optional
2022-06-13 20:11:09 +01:00
Phil Howard
3f9f28c60b
Add measure_text, fixed default palette init
2022-06-13 20:11:09 +01:00
Phil Howard
51ad7edb09
Prefer RGB332, add palette management functions
2022-06-13 20:11:09 +01:00
Phil Howard
7abe4aae7f
ST7789: Experimental 8bit framebuffer.
2022-06-13 20:11:09 +01:00
Phil Howard
3b8dcecd8e
Pico Graphics: Move bitmap fonts into generic library.
...
* Add bitmap font support into Badger 2040
2022-03-30 15:10:52 +01:00
Phil Howard
276528c119
Make font settable by user at runtime
...
This allows fonts to be hot-swapped out by calling `set_font`
Unfortunately the way fonts are currently stored limits the maximum height to 8 pixels, since that's the size of a uint8_t and the y dimension is bitwise encoded.
The width can be arbitrary, by specifying the widths and max_width (the multiplier for number of bytes per char).
Might be worth grabbing some more bits from 32blit to make this not terrible, but now a user-defined font is an .hpp and a `set_font` away.
2021-03-29 13:33:43 +01:00
David Tillotson
4cecb920bf
Adjusted font_data in graphics lib code to enable different height fonts
2021-03-29 13:27:25 +01:00
Phil Howard
675106ece4
Patch or suppress warnings
...
The upstream MicroPython rp2 port has re-enabled -Werror so we need to either fix warnings or,
in the case of those generated by C++/C MicroPython binding weirdness, suppress them.
2021-03-22 20:43:23 +00:00