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.
`create_pen` returns an int with the most significant byte set to indicate it is an RGB888 colour.
Pen values without the most significant byte set are treated as palette entries and handled normally.
* have a basic pg working needs optimizing
* working well ported some examples from GU
* started on micropython module
* Fixes to get new Hub75 compiling in MP
* stripped down for faster compilling
* Update hub75.cmake
* added hub75 to galatic and eviro as it is needed for picographics
* Update picographics.c
* added hu75 update
* added _ModPicoGraphics_obj_t
* Update hub75.cpp
* update bindings
* some examples needs linting
* added other panel sizes and linted
* Update picographics.cpp
* Update picographics.c
* fixing gc memory allocation
* Update hub75.cpp
* Update interstate75_balls_demo.cpp
* review
* broke
* working with built in panel defs
* still borked
* not much change needs review
* Update hub75.cpp
* reverted alot of things
* adding i75 lib
* lots of updates ready to test compile mp
* Update picographics.h
* little tweaks
* an inability to count fixed!
* fixed some readme's
* lots of tiding
* fixed linting and removed experimental code
* Minor formatting
* Minor formatting and cmake tidy
* Removed unneeded parts of examples
* Final tidy
* tidy examples and adding more
* updated to new library
* documentation tweaks
* fixed inclusion of interstate75 module
* syncing some stuff
* fixed linting
Co-authored-by: ZodiusInfuser <christopher.parrott2@gmail.com>
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.
Fix byte alignment to use the pixel index, rather than just the x-coordinate.
Prevent new rows from being erroneously byte-aligned in displays without an even width (eg: Pico Display portrait).