C++ Qt与QOpenGLWidget核心配置文件:大量着色器编译错误
我在MacOS 10.12下的Qt5.7应用程序上使用了一个带有英特尔GPU的C++ Qt与QOpenGLWidget核心配置文件:大量着色器编译错误,c++,macos,qt,opengl,C++,Macos,Qt,Opengl,我在MacOS 10.12下的Qt5.7应用程序上使用了一个带有英特尔GPU的QOpenGLWidget 我尝试使用 QSurfaceFormat format; format.setDepthBufferSize(24); format.setStencilBufferSize(8); format.setVersion(3, 2); format.setProfile(QSurfaceFormat::CoreProfile); QSurfaceFormat::setDefaultFormat
QOpenGLWidget
我尝试使用
QSurfaceFormat format;
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
如中所述
现在,当我这样做时,我会遇到很多着色器/编译错误,例如
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。我已经做了一些研究,发现这与Intel的Intel GPU驱动程序/OpenGL实现有关,它不允许第一行不是#version
但这是Qt的预期结果吗??有什么办法可以解决这个问题吗?您是否尝试过在着色器顶部添加所需的
#version
字符串?@G.M.这些不是我的着色器。这些是Qt尝试为自己编译的一些通用着色器。