我正在尝试使用Qt进行OpenGL。我从Qt的文档中编译了2dpainting example。在示例中是两个并排的动画,一个本地运行,另一个由OpenGL呈现。我不认为有什么不同。如何确保使用硬件加速器。我正在使用ÅngströmLinux的嵌入式设备上运行该示例。
我在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创建?我尝试在GLWidget的所有其他功能中使用相同的功能,但没有任何运气。
答案 0 :(得分:2)
我相信它会尽可能晚地初始化,即实际需要绘制的东西。
处理在event参数中传递的绘制事件。将导致调用虚拟paintGL()函数 小部件的渲染上下文将成为当前上下文,如果尚未调用,则将调用initializeGL()。
答案 1 :(得分:1)
openGL场景在QGlWidget paintGL函数中呈现,通常需要使用自己的paintGL函数从QGlWidget派生
NeHe教程已经adapted for Qt