我有一些非常基本的OpenGL着色器,用於編譯但在Nvidia驅動程序更新後不再編譯。 每個着色器開始於下列行: 的#Version 150芯 ....Nvidia驅動程序更新後無法在Qt 5.3上編譯GLSL着色器
我用於編譯使用QGLShaderProgram :: addShaderFromSourceFile方法
它在文檔(http://doc.qt.digia.com/qt-5.1/qtgui/qopenglshaderprogram.html#writing-portable-shaders)mentionned,對於可重用性的目的的那些着色器繼預處理指令在着色器開始時加入
#define highp
#define mediump
#define lowp
然而,由於驅動程序更新,我有一個編譯錯誤:
error C0204: version directive must be first statement and may not be repeated
和我着色器源已成爲
#define highp
#define mediump
#define lowp
#version 150 core
....
所以這個問題是很容易理解,但是修復也不是那麼容易。 這是一種防止Qt擁有#define的方法嗎? 什麼是適當的解決方案來處理這個問題(如果可能,不用重寫所有我的着色器管理代碼)
您可以添加您正在使用的確切着色器,以及'log()'報告的確切錯誤日誌,以及控制檯上打印的任何東西嗎? – peppe 2015-02-09 23:15:05
[OpenGL 4.1和Qt 5嚴重渲染問題]的可能重複(http://stackoverflow.com/questions/25858868/serious-rendering-issues-with-opengl-4-1-and-qt-5) – 2015-02-10 03:23:15
感謝你們。是的,這是你提到的問題的重複。 – Zed 2015-02-10 11:35:36