Как я могу оптимизировать производительность приложения на основе QGraphicsView?

У меня есть приложение, основанное на фреймворке Qt Graphics View.
Это игра-головоломка, которая в основном разрезает растровое изображение на более мелкие пиксельные изображения (части головоломки) и отображает их как QGraphicsItem в QGraphicsView . Я хочу, чтобы это приложение работало на смартфонах и планшетах. (Он уже работает на Nokia N900 и некоторых телефонах Symbian. Еще не оптимизирован для Symbian ^ 3.)
Источник на Gitorious .

Элементы наследуют QGraphicsItem и QObject и имеют макросы Q_PROPERTY для pos () и вращения () из QGraphicsItem , чтобы включить их анимацию с помощью инфраструктуры Qt Animation.
Я выполняю преобразования элементов, такие как масштабирование и вращение (последнее только в ветке мультитач, находящейся в разработке), а также использую для них QGraphicsDropShadowEffect .

Я использую QGLWidget в качестве области просмотра QGraphicsView , чтобы включить ускорение OpenGL для приложения.

Проблема в том, что, несмотря на ускорение OpenGL, приложение не работает плавно. (Особенно анимации, особенно с тех пор, как я добавил преобразование вращения в ветвь мультитач.) Отображается не так много графических элементов, нет 3D-операций или чего-то серьезного, только 2D-рисование.
Я совсем не специалист по графике, поэтому понятия не имею, почему это приложение работает медленно. Я видел, как другие игры с гораздо более сложными эффектами работали намного плавнее, чем эта.

В чем секрет? Как мне оптимизировать это приложение?

5
задан genpfault 11 October 2011 в 13:59
поделиться