Berry: add scroll method to Leds_matrix #22693
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Adds new method to the
Leds_matrix
class for scrolling the pixel buffer in all directions. Support for RGB mode only, not RGBW.Usage:
<my_matrix>.scroll(int: direction, bytes: outshift[,bytes: inshift])
0 - up, 1 - left, 2 - down, 3 - right
, 0/2 will shift a row and 1/3 shift a columnThe application code can be quite small. Here is an excerpt from a text scroller, where we scroll out from an offscreen buffer and use that date to scroll in the main screen:
In my testing with the Ulanzi clock performance was quite okay, although this is only pure Berry code and this could possibly be optimised later with a native function.
scroll.mov
Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass