QGLWidget始终具有无效的上下文

时间:2013-09-26 20:10:55

标签: c++ opengl-es qt4 qglwidget

我有一个QGLWidget的派生类,但无论我尝试设置什么QGLFormat,当我调用isValid()时,上下文都返回为无效。

GLWidget::GLWidget(const QGLFormat& glFormat, QWidget* parent)
:QGLWidget(glFormat, parent)
{

//basically just debug output here

}

我像这样创建我的小部件:

QGLFormat glFormat; 
glFormat.setSwapInterval(1);
glFormat.setVersion(2, 0); 
glFormat.setStencil(true);
glFormat.setStencilSize(8);
glFormat.setProfile(QGLFormat::CompatibilityProfile); 

GLWidget * glView = new GLWidget(glFormat, w); //w is the QGraphicsView 
w->setViewport(glView);

这段代码交叉编译到Linux arm,我对硬件本身了解不多。我知道OpenGL ES 2.0本身是受支持的(我已经测试过了),但我不确定上面的代码是否是我用OpenGL ES 2.0生成上下文的方式。编辑:有什么奇怪的是我可以调用QGLFormat::openGLVersionFlags (),这会返回2048(OpenGL ES 2.0),但类引用说:

  

在运行时标识受支持的OpenGL版本   目前的平台。请注意,如果支持OpenGL 1.5版,   它的前身(即版本1.4及更低版本)也受支持。至   识别特定功能的支持,例如多纹理,   测试首次引入该功能的版本(即   版本1.3在多纹理的情况下)适应最大   可能的运行时平台组。 此功能需要有效   当前的OpenGL上下文工作;否则它会回来   OpenGL_Version_None。此功能是在Qt 4.2中引入的。

我想要做的与this非常相似。我基本上想要一个视口,我可以使用OpenGL渲染视频帧。

非常感谢任何帮助。

0 个答案:

没有答案