我在我的Qt 5.7应用程序上使用QOpenGLWidget
,在MacOS 10.12下使用英特尔GPU。
我尝试使用
请求核心配置文件QSurfaceFormat format;
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
如http://doc.qt.io/qt-5/qopenglwidget.html
中所述现在,当我这样做时,我会收到许多着色器/编译错误,例如
QOpenGLShader::compile(Fragment): ERROR: 0:1: '' : #version required and missing.
*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp
#line 1
lowp vec4 srcPixel();
void main()
{
gl_FragColor = srcPixel();
}
lowp vec4 srcPixel()
{
return vec4(0.98, 0.06, 0.75, 1.0);
}
并非我没有编写或编译任何这些着色器:它们都来自Qt。我已经做了一些研究,发现这与英特尔的英特尔GPU驱动程序/ OpenGL实现有关,这不允许第一行不是#version
。
但这是从Qt预期的吗?有什么方法可以解决这个问题吗?