Qt рендеринг с использованием OpenGL - PullRequest
7 голосов
/ 27 июня 2011

Я работаю над приложением QML для встроенной платформы, которая включает в себя виджет GridView, содержащий изображения.Для меня важно, что прокрутка GridView будет плавной и не будет загружать процессор.Могу ли я ожидать, что Qt будет использовать OpenGL для рендеринга GridView?

Ответы [ 3 ]

5 голосов
/ 29 июня 2011

Я столкнулся с той же проблемой.

QApplication::setGraphicsSystem(QLatin1String("opengl"));

не работает для меня.Поэтому я установил OGWidget как область просмотра:

QDeclarativeView mainwindow;
mainwindow.setSource(QUrl::fromLocalFile("./qml/app.qml"));
QGLFormat format = QGLFormat(QGL::DirectRendering); // you can play with other rendering formats like DoubleBuffer or SimpleBuffer
format.setSampleBuffers(false);
QGLWidget *glWidget = new QGLWidget(format);
glWidget->setAutoFillBackground(false);
mainwindow.setViewport(glWidget);

и не забудьте добавить opengl в * .pro файл.

3 голосов
/ 27 июня 2011

В зависимости от вашей платформы используйте

QApplication::setGraphicsSystem(QLatin1String("opengl"));

или (Symbian)

QApplication::setGraphicsSystem(QLatin1String("openvg"));

перед созданием объекта QApplication.

2 голосов
/ 27 июня 2011

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

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