Qt - разница в производительности между QOpnGLWidget и обычным QWidget - PullRequest
0 голосов
/ 17 апреля 2019

Виджеты типа QLabel можно использовать для отображения изображения, вызывая функцию setPixmap(...). Или это можно сделать с помощью QPainter::drawPixmap(...) в paintEvent(...). Как я знаю, QOpenGLWidget / openGL просит GPU работать на него.

Поэтому я считаю, что производительность QOpenGLWidget будет лучше. Так что насчет обычных QWidgets? Они просят GPU работать при отображении изображений или рисовании вещей?

Виджеты выглядят аналогично, но в QOpenGLWidget есть специальный метод paintGL(...). Я не часто вижу, paintEvent(...) используется для QOpenGLWidget.

1 Ответ

0 голосов
/ 24 апреля 2019

Обычные QWidget обычно обрабатываются процессором, хотя они МОГУТ использовать GPU для закрытия резервных хранилищ, но обычно это происходит только при наличии QOpenGLWidget в том же окне.Некоторые платформы могут по умолчанию использовать рендеринг OpenGL, но я думаю, что только платформа iOS сделала это, и я не уверен, что он все еще делает.

Что касается производительности, это зависит.OpenGL имеет более высокие издержки, но обычно для изображений значительно улучшенная скорость обработки пикселей перевешивает любые накладные расходы.Процессор рендеринга имеет преимущество в инкрементном рендеринге, где он может легче перерисовывать небольшие части окна, где OpenGL обычно просто перерисовывает все окно в каждом кадре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...