Skip to content

How to constrain area redrawing to clip region? #540

Description

@AndyObtiva

Hi,

I built this game, Glimmer Tetris

It runs fast with a basic 2D look (each block is a path).

glimmer-dsl-libui-mac-tetris

When I attempt to add a simulated bevel-block 3D look via 4 extra polygons per block where each polygon is a figure of multiple line calls done under a single path (similar to the Glimmer Tetris built with SWT)...

Screen Shot 2021-11-03 at 6 35 17 PM

Area redrawing slows down to a crawl!

I ensured that only a single redraw is happening per movement of the Tetris tetromino blocks.

My question is: I could probably optimize performance by asking the area to redraw only the blocks that changed instead of the entire playfield.

How do I do that with libui? Is that option available? The only thing I saw is queueRedrawAll, which redraws everything.

Is that what save and restore are all about? Initial saving... restoring the whole area, making a small change, and then saving again? Does that improve performance?

If clipped redrawing is not available, this would be a great performance optimization feature to have I think.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions