Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么时候使用Qt在opengl中创建渲染上下文?_C++_Linux_Qt_Opengl - Fatal编程技术网

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

C++ 什么时候使用Qt在opengl中创建渲染上下文?,c++,linux,qt,opengl,C++,Linux,Qt,Opengl,我正在用Qt试用OpenGL。我从Qt的文档中编译了。本例中有两个并排的动画,一个本地运行,另一个由OpenGL渲染。不过,我看不出有什么不同。如何确保使用了硬件加速器。我正在使用Ångström Linux在嵌入式设备上运行该示例 我在opengl小部件的构造函数中添加了一行,以确定使用的渲染器,但该函数始终返回空指针 GLWidget::GLWidget(Helper *helper, QWidget *parent) : QGLWidget(QGLFormat(QGL::Samp

我正在用Qt试用OpenGL。我从Qt的文档中编译了。本例中有两个并排的动画,一个本地运行,另一个由OpenGL渲染。不过,我看不出有什么不同。如何确保使用了硬件加速器。我正在使用Ångström Linux在嵌入式设备上运行该示例

我在opengl小部件的构造函数中添加了一行,以确定使用的渲染器,但该函数始终返回空指针

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的所有其他函数中使用相同的函数,但没有任何运气

openGL场景在QGlWidget函数中渲染,您通常需要使用自己的paintGL函数从QGlWidget派生


NeHe教程已经完成了

我相信它会尽可能晚地初始化,也就是说,在实际需要绘制某些内容时

从文档中:

处理在事件参数中传递的绘制事件。将导致调用virtual paintGL()函数。
小部件的呈现上下文将成为当前上下文,如果尚未调用initializeGL(),则将调用它


这是否意味着调用paintEvent()后渲染上下文会被破坏?不一定。但它只是在第一次需要绘制某些内容时才完全初始化。它应该始终在您应该覆盖的
paintGL
虚拟环境中可用。什么硬件,视频驱动程序支持opengl?@neagogegab:它实际上只支持OpenGLES 1.1和2.0,OpenVG1.0,但编译和运行的Qt示例没有问题。这就是为什么我要找出到底发生了什么。