crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QOpenGLWidget on CPU vs deprecated QGLWidget on GPU
FireBlack
  опции профиля:
сообщение 30.1.2015, 15:03
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 17.10.2010
Из: г.Пенза
Пользователь №: 2121

Спасибо сказали: 13 раз(а)




Репутация:   1  


Доброго времени суток.

Имеется QGraphicsScene сцена, на которой расположено несколько item'ов. Также имеется QGraphicsView на котором эта сцена отображается.
При использовании ui->graphicsView->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers))), во время перетаскивания item'а на сцене, загрузка процессора не превышает 50%.
При использовании ui->graphicsView->setViewport(new QOpenGLWidget), во время перетаскивания item'а, загрузка процессора не падает ниже 99%. Тоже самое происходит при использовании обычного виджета в качестве vewiport'а.

Из этого напрашивается очевидный вывод, что в моем случае с QGLWidget больше используется графический процессор, а с QOpenGLWidget или QWidget - центральный процессор (что не очень хорошо).
Меня QGLWidget полностью устраивает, но он отмечен как deprecated (или obsolete), что означает что его исключат в Qt 6.

В связи с вышесказаным, хочу спросить у Вас совета, что использовать: быстрый старый QGLWidget или медленный новый QOpenGLWidget?

P.S.:
Боюсь что оптимизировать код, чтобы снизить нагрузку на проц, не удастся т.к. при перемещении item'а перерисовывается весь background в QGraphicsScene, на котором рисуется большой QPixmap и куча линий между item'ами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 6.2.2015, 19:22
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Я часто использую SVG в графических элементах, и при перемещении маленького элемента над большим наблюдается значительное отставание элемента от указателя мышки.
Если для большого SVG устанавливать кэш
Раскрывающийся текст
item->setCacheMode(QGraphicsItem::ItemCoordinateCache);

то всё приходит в норму.

Может и тебе поможет?

Сообщение отредактировал Litkevich Yuriy - 6.2.2015, 19:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 16:26