Skip to content

displayio: core changes to enable decorator and/or context handler to batch display changes #3181

Open
@jepler

Description

@jepler

@FoamyGuy has written (adafruit/Adafruit_CircuitPython_ProgressBar#8):

When the progress is moving down the library previously would fill the "empty" portion of the progress bar from left to right so it looked like it was moving "the wrong way" I modified the behavior to fill emptiness from right to left so the progress bar appears to visually "empty" itself in reverse as it gets drawn.

This prompts me to imagine that there's a missing piece: A decorator and/or context-handler that ensures that all the displayio changes done inside it are displayed at the same time, not piecemeal.

Complicating factor: In the current world, it's actually the display that needs its auto_refresh flag handled, but a ProgressBar instance does not have access to the related display object. I think something needs to be added in the core to help facilitate this.

Alternative: Pursue it as a bug that multiple updates aren't getting batched due to the "target fps" of the display presumably being much larger than the length of time it takes to actually do "a few hundred" bitmap updates. (there may be more work than necessary done in ProgressBar, adafruit/Adafruit_CircuitPython_ProgressBar#10)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions