Да, это правильно.OpenGL
рисует прямо на framebuffer
.Драйвер simplegl
не обрабатывает то, что нарисовано с использованием механизма растровой краски QWS
, поэтому вы можете видеть только черный.
Использование simplegl
для «всего» означает, что вы хотите, чтобы все былонарисовано с помощью OpenGL
в вашем полноэкранном окне EGL
?Это возможно при некоторых допущениях.Вы должны написать все свои приложения для визуализации, используя Qt OpenGL paint engine
(использование графической системы opengl не поддерживается в Qt/E
).Это возможно также для QtWebKit
, я делаю это сейчас.Обратите внимание, что это не означает, что все отображается с использованием аппаратного ускорения.Вы должны будете написать свои приложения "правильным способом", чтобы ускорить работу всего оборудования.Учтите, что в этом случае вам придется обрабатывать указатель мыши другим способом.
Другой способ - просто изменить драйвер simplegl
, чтобы разрешить использование приложений Qt
с использованием raster paint engine
.Это возможно также с некоторыми ограничениями.Qt
может использовать blit для размещения своих окон поверх OpenGL
.Ищите драйвер кадрового буфера внутри дерева исходных текстов Qt
, чтобы знать, как это сделать.После этого вы можете иметь общие приложения Qt
и приложения OpenGL
Qt
.Я тоже этим занимаюсь.Не все может быть сделано в любом случае.
РЕДАКТИРОВАТЬ: Я уверен, что вы уже сделали, но в случае, уделите этому http://doc.qt.io/qt-4.8/qt-embeddedlinux-opengl.html много внимания.