QT OpenGL для рабочего стола требуется для создания окон?
Я немного не уверен насчет компиляции QT 5.2.1 без поддержки OpenGL. Я всегда думал, что OpenGL понадобится для приложений, которые хотят делать графику, но когда я читаю документацию, также говорят о 2D на функциональности рабочего стола. Если я не планирую использовать какую-либо графику и просто хочу использовать оконную инфраструктуру QT, нужен ли мне этот настольный пакет поддержки? Каким-то образом это не имело бы смысла разрешать использовать его как дополнительный компонент, который был необходим, но я действительно не знаю, требуется ли он в любом случае, потому что я не знаю, для чего будет использоваться эта поддержка.
Итак, основной вопрос: если я просто хочу реализовать обычное настольное приложение, использующее окна и виджеты, мне не нужно компилировать с поддержкой OpenGL, верно?
До сих пор я использовал wxWidgets в качестве моей кроссплатформенной библиотеки, и мне никогда не приходилось касаться OpenGL, поэтому я бы использовал QT таким же образом.
3 ответа
если я просто хочу реализовать обычное настольное приложение, которое использует окна и виджеты, мне не нужно компилировать с поддержкой OpenGL, верно?
Я думаю, что ответ - да; хотя на уровне приложения, как этот поток специально вызывает, начиная с Qt 5, перевод графической подсистемы в растр -graphicssystem raster
устарела, вы можете установить тип поверхности окна в RasterSurface
, что позволяет производить рендеринг с использованием растра без поддержки OpenGL, используя QBackingStore
(не относящийся к OpenGL контекст рисования); его документ API подтверждает это. QWindow
Документация также информирует об этом.
Если я не планирую использовать какую-либо графику и просто хочу использовать оконную инфраструктуру QT, нужен ли мне этот настольный пакет поддержки?
Да, если вам нужен рендер QML и Qt5uick 2 Qt5 или QtGui, который использует исключительно OpenGL и является основной частью графической системы Qt. Нет, если вы можете сделать это без всего этого. Этот пример Qt 5 Raster Window делает именно это; Вы можете заметить, что в файле проекта нет упоминаний об OpenGL.
Ответ: это сложно. QtCore
будет отлично работать без зависимости от OpenGL, однако с Qt5 они сильно переместили систему виджетов в сторону использования OpenGL(ES) по соображениям производительности. Сложно найти ответ на этот вопрос в документации Qt, однако, если вы просто хотите построить приложение Qt5 с QtWidgets
вы можете указать нет OpenGL в инструкции configure, и все будет в порядке. Если вы хотите использовать QML
тогда вам нужна зависимость OpenGL, чтобы она заработала, но QtWidget
Система теперь эффективно сделана, поэтому она не будет улучшена в ближайшее время.
Модуль OpenGL необходим, только если вы хотите использовать glWidget, для классического настольного приложения он вам не нужен.