Skip to content

Conversation

tmsmr
Copy link

@tmsmr tmsmr commented Nov 7, 2023

While using Pico Graphics might usually be the proper way to draw on the Stellar/Galactic/Cosmic Unicorn, there are use cases where setting the pixels directly is desirable.
This PR exposes GalacticUnicorn::set_pixel (https://github.com/pimoroni/pimoroni-pico/blob/v1.21.0/libraries/galactic_unicorn/galactic_unicorn.cpp#L447) to MicroPython.

The implementation is pretty much copy-pasted from https://github.com/pimoroni/pimoroni-pico/blob/v1.21.0/micropython/modules/pico_unicorn/pico_unicorn.cpp#L56.

If this change generally suits you, i'll add it to the Stellar and Cosmic Unicorn as well and update the docs accordingly as preparation for the merge.

@Gadgetoid
Copy link
Member

Sorry for the delay feeding back on this. This seems reasonable, though there may be some confusion that arises between the two methods of drawing to the display. Do you have any use-cases or examples?

If you're still interested do you want to add the other two displays to this PR?

@tmsmr
Copy link
Author

tmsmr commented Jan 17, 2024

The use-case is for my personal project to be honest: https://github.com/tmsmr/RUC

This is basically a minimal TCP-based protocol and a client lib which allows to draw in a "frame-buffer" on the client side and transmit only the diff required to update the image.

Every update-call in uPython on the Pico overwrites the whole frame-buffer: https://github.com/pimoroni/pimoroni-pico/blob/main/libraries/galactic_unicorn/galactic_unicorn.cpp#L517

While this might not actually be a performance issue, it feels unnecessary for me in cases where only some pixels have changed...

If the change generally suits you, i'll add the other displays as well and update the docs accordingly. I could add a note, that using update should be preferred generally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants