Я использую Qt / C ++ и пытаюсь нарисовать большой и сложный QGraphicsScene. Как только я добавляю много объектов, панорамирование и масштабирование становятся неприятно медленными. (Не удивительно, конечно). Я играл с кэшированием координат устройства (помогает с панорамированием до точки) и минимальными обновлениями области просмотра и т. Д., Но в итоге слишком много объектов. То, что я хотел бы сделать, это рисовать элементы асинхронно из-за управления пользовательским интерфейсом. Другими словами, как и в случае с Картами Google, я хочу выполнять панорамирование и масштабирование, позволяя рисованию ускоряться настолько быстро, насколько это возможно, но для возможности повторного панорамирования до завершения рисования элементов.
Один из способов, который я пытаюсь сделать, - создать два QGraphicsScenes. У одного есть реальные объекты, но он не привязан к QGraphicsView. Другой QGraphicsScene подключен к QGraphicsView, но у него просто есть несколько плиточных QPixmaps, размер которых соответствует размеру экрана. План состоит в том, чтобы использовать свободные циклы ЦП для обновления любого растрового изображения плитки, в котором оно нуждается. Похоже, что это даст мне необходимый контроль над рендерингом (поэтому мне не нужно блокировать при повторном рендеринге всей видимой сцены). Мысли? Кто-нибудь реализовал это?