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
Philip Howard
7d4ca4a86b
Graphics Enhancements ( #8 )
...
* typedef pen and constexpr create_pen for #6
* Prevent out of bounds clip permitting write outside buffer
* camelcase rect, point, and pen types
* added triangle(p1, p2, p3) and polygon(std::vector<Point> points) methods to graphics library
* change all uses of pen that were uint16_t into Pen type
* updated micropython modules to use new rect, point, pen naming
* added line(p1, p2) method to pico graphics library with faster vertical/horizontal special cases
Co-authored-by: Jonathan Williamson <jon@pimoroni.com>
2021-01-23 23:41:09 +00:00
Phil Howard
4f6691be8b
Very messy attempt at using a bytearray as the buffer
2021-01-20 21:39:09 +00:00
ZodiusInfuser
84e98b7040
Completed mpy wrapper for pico_display, and included example
2021-01-20 21:05:07 +00:00