什么时候使用Qt在opengl中创build渲染上下文?

我正在尝试使用Qt的OpenGL。 我编译了Qt文档中的第2个示例 。 在这个例子中,两个并排的animation,一个是本地运行的,另一个是由OpenGL渲染的。 我没有看到有什么区别。 我怎样才能确保使用硬件加速器。 我正在使用ÅngströmLinux在embedded式设备上运行示例。

我在opengl小部件的构造函数中添加了一行,以确定使用的渲染器,但函数总是返回一个NULL指针。

GLWidget::GLWidget(Helper *helper, QWidget *parent) : QGLWidget(QGLFormat(QGL::SampleBuffers), parent), helper(helper) { elapsed = 0; setFixedSize(200, 200); setAutoFillBackground(false); printf(" OpenGL Renderer: %s\n",glGetString(GL_RENDERER)); //added this line } 

现在我读了许多在线论坛,我需要一个有效的渲染上下文。 但是这是什么意思,什么时候使用Qt创build? 我尝试在GLWidget的所有其他function中使用相同的function,但没有任何运气。

我相信它是在尽可能晚的时候初始化的,即什么时候需要绘制。

QGLWidget::paintEvent()文档:

处理在事件参数中传递的绘画事件。 将导致虚拟paintGL()函数被调用。
小部件的渲染上下文将成为当前的上下文,如果它尚未被调用,initializeGL()将被调用

openGL场景在QGlWidget的paintGL函数中呈现,你通常需要从你自己的paintGL函数中派生出QGlWidget

NeHe教程已经被改编为Qt