2013-12-10 89 views
5

我正在配置一個程序,可以與glut一起使用以使用Qt。我正在使用Qt 5.1.1。而且似乎有些OpenGL功能已經從Qt4丟失到Qt5。在我的程序中,我創建了一個QOpenGLContext,並試圖使用vbo渲染QWindow。該vbo部分工作正常。警告:#警告qopenglfunctions.h與GLEW不兼容,GLEW定義將是未定義的[-Wcpp]

程序的其他部分取決於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] 

屏幕輸出爲黑色。

當我註釋發送所述PBO到紋理線

glBindBuffer(GL_PIXEL_UNPACK_BUFFER, vboId); 

,隨機圖像渲染到屏幕上。我假設這個隨機圖像存儲在我嘗試訪問的內存中。

顯然,你不能一起使用glew和qopenglfunctions。

如果你想建議我使用QGLWidget而不是QopenGLContext和QWindow,請向我解釋如何在Qt 5.1.1中使用帶有cmake的QGLWidget。我已經閱讀了許多答案,但是它們都不適用於Qt 5.1.1。

回答

0

作爲回答發佈,因爲沒有足夠的代表評論。

要使用Qt使用GLEW,不包括<qopengl.h>或<QOpenGLFunctions> glew.h [-Wcpp]

作爲警告提示,您應該忽略QOpenGLFunctions包括指令後贊成GLEW包括。

編輯:經過一番研究後,發現QT在內部文件的某處包含QOpenGLFunctions標頭。我必須自己測試一個解決方法,會回來。

編輯:一般更新,顯然人們誤解了這篇文章的攻擊性和粗魯。