Wykres commitów

53 Commity (b4451c3bdc06235a1358a5a8aabd008647ed9f8a)

Autor SHA1 Wiadomość Data
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