Russian Qt Forum

Qt => OpenGL => Тема начата: Igors от Апрель 28, 2015, 08:02



Название: QOpenGLWindow вместо QOpenGLWidget
Отправлено: Igors от Апрель 28, 2015, 08:02
Добрый день

В общем QOpenGLWidget достал меня своим рендером в текстуру и проблемами прущими изо всех щелей. Текущая проблема - упало fps в полтора-два раза (по сравнению с до-Qt реализацией). Профайлер ничего путного не показывает, и как решать хз. Возвращаться к deprecated QGLWidget совершенно бесперспективно. Остается использовать QOpenGLWindow - судя по букварю это то что надо (вывод на экран, свободный swapBuffers).

Но это наследник QWindow (а не QWidget). В примерах просто создается QOpenGLWindow - но переделывать так свои окна нереально. Тогда как же задействовать QOpenGLWindow ?

Спасибо


Название: Re: QOpenGLWindow вместо QOpenGLWidget
Отправлено: kamre от Апрель 28, 2015, 13:41
Можно задействовать через функцию: http://doc.qt.io/qt-5/qwidget.html#createWindowContainer


Название: Re: QOpenGLWindow вместо QOpenGLWidget
Отправлено: Igors от Апрель 28, 2015, 14:48
Можно задействовать через функцию: http://doc.qt.io/qt-5/qwidget.html#createWindowContainer
Да, буду пробовать. Спасибо


Название: Re: QOpenGLWindow вместо QOpenGLWidget
Отправлено: Igors от Апрель 29, 2015, 11:10
Перевел на QOpenGLWindow - ну пока только "заходило", там еще чистить и чистить. Вернулась нормальная скорость!!! swapBuffers бычит как положено!! С огромным удовольствием убираю многочисленные сопли что я понавешивал для долбаного QOpenGLWidget. Появилась парочка новых проблем

- не понимает что swapBuffers уже сделано и делает второй раз после paintGL
- не работают виджеты "сверху" (как и предупреждали в букваре)

Ну то выкручусь, мелочи, детский сад по сравнению с проблемами QOpenGLWidget. И ведь отвечали же мне Qt "можешь сделать контейнер",  а я ушами прохлопал. Думал "был QGLWidget, стало быть теперь QOpenGLWidget". В общем - бестолковый  :)