我正在配置一个程序,它可以处理过剩的Qt。我正在使用QT5.1.1。而且,openGL的某些功能似乎已经从Qt4丢失到Qt5。在我的程序中,我创建了一个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和qopenglfunction。
如果您想建议我使用QGLWidget而不是带有QWindow的QopenGLContext,请向我解释如何在QT5.1.1中使用QGLWidget和cmake。我读过无数这样的回答,但在QT5.1.1中没有一个有效。
发布于 2014-09-22 12:41:27
张贴作为回答,因为没有足够的代表评论。
若要在Qt中使用GLEW,请不包括或GREW.h -Wcpp
正如警告所建议的那样,您应该省略QOpenGLFunctions包含指令,以支持GLEW包含。
编辑:经过更多的研究后,它发现QT在内部文件中的某个位置包含了QOpenGLFunctions头。我得自己试一试,会回来的。
编辑:一般更新,显然人们误解了这篇文章是无礼和粗鲁的。
https://stackoverflow.com/questions/20491132
复制相似问题