DigiScore / neoscore

A python library for notating music in a graphics-first paradigm
https://neoscore.org
BSD 3-Clause "New" or "Revised" License
108 stars 9 forks source link

Support automatic object culling #103

Open ajyoon opened 1 year ago

ajyoon commented 1 year ago

Complex scenes are slow partly because neoscore renders every object on every frame, regardless of whether the objects are visible inside the frame. Qt automatically culls objects on the graphical rendering side, but neoscore still instantiates the Qt objects every frame, which is a pretty slow process. If we had broader bounding rect support we could implement some kind of culling. There are complications with flowable contexts, but my gut says they aren't so bad.