我正在配置一个与glut配合使用的程序,使其与Qt配合使用。我正在使用Qt 5.1.1,似乎从Qt4到Qt5中一些OpenGL功能已经丢失。在我的程序中,我创建了一个QOpenGLContext,并尝试使用vbo渲染到QWindow上。vbo部分运行良好。
程序中的其他部分依赖于glew。当我运行程序时,会收到以下警告:
#warning qopenglfunctions.h is not compatible with GLEW, GLEW defines will be undefined [-Wcpp]
#warning To use GLEW with Qt, do not include <qopengl.h> or <QOpenGLFunctions> after glew.h [-Wcpp]
屏幕上的输出是黑色的。
当我注释掉这一行时
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, vboId);
将pbo发送到纹理中,屏幕上呈现随机图像。我认为这个随机图像存储在我正在尝试访问的内存中。
显然,你不能同时使用glew和qopenglfunctions。
如果你想建议我使用QGLWidget而不是带有QWindow的QopenGLContext,请告诉我如何在Qt 5.1.1中使用cmake使用QGLWidget。我已经阅读了很多建议,但是在Qt 5.1.1中没有一个有效的。