mirror of
https://github.com/qgis/QGIS.git
synced 2025-11-13 00:07:27 -05:00
Because some annotation items have scale dependent bounding boxes, we can only index items which have a fixed bounding box. Other item bounds need to be dynamically determined based on a specific render context. So rework the annotation layer index handling to only index appropriate items and store other items in a non-indexed item set. This isn't ideal, because it means we need to clone ALL non-indexed items upfront whenever we render an annotation layer (it's too expensive to calculate their actual bounding box and selectively clone them, as it's a process which blocks the main thread). Hopefully we can think of an alternative approach to this down the line so that we DO have some form of spatial index for scale dependent items, unlocking better performance for annotation layers with 10,000s of items. But we'll ignore that situation for now ;)