我已经看到了一些关于能够在现代 OpenGL 上运行 Qt5 的有希望的参考资料。我正在使用以下代码将我的 QQuickView 设置为 OpenGL 4.1 Core(我的 MacBook 上 OSX 10.9 支持的最新版本)。
QSurfaceFormat sf = g_mainView->format();
sf.setProfile(QSurfaceFormat::CoreProfile);
sf.setVersion(4, 1);
g_mainView->setFormat(sf);
大部分问题。首先,应用程序在尝试渲染文本时完全崩溃。如果我碰巧在我的 QML 中只有图像、矩形等,我会得到大量的片段着色器错误。
QOpenGLShader::compile(Fragment): ERROR: 0:1: '' : #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error
*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp
varying highp vec2 qt_TexCoord0;
uniform highp float qt_Opacity;
uniform lowp sampler2D source;
uniform lowp sampler2D maskSource;
void main(void) {
gl_FragColor = texture2D(source, qt_TexCoord0.st) * (texture2D(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
}
***
QQuickCustomMaterialShader: Shader compilation failed:
"ERROR: 0:1: '' : #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error
"
Qt5.3 还没有为现代 OpenGL 做好准备吗?还是我只是设置不正确?我想使用 OpenGL 4 嵌入我自己的 OpenGL 图形窗口,所以我的假设是我也需要在 GL 4 下运行该应用程序。还有其他方法吗?