Skip to content

Only render what can be realistically displayed to users

Hannes Siebenhandl requested to merge fendor/quick-scrolling into master

viewport is unreasonably inefficient for our usecase when the IOTree grows, as it decides what to display once it rendered to full IOTree. Especially while scrolling, this inefficiency became apparent.

Unfortunately, brick doesn't have any builtin way to improve this, see https://github.com/jtdaugherty/brick/issues/264

We take drawListElement as an inspiration, and only render up to heightOfBox * 2 elements of the IOTree. This speeds up the view noticeably, giving the user a responsive experience.

In particular, we decouple rendering metadata computation from the actual rendering to decide which rows to render.

Edited by Hannes Siebenhandl

Merge request reports