Qt with QOpenGLWidget Core Profile:很多着色器编译错误

时间:2016-11-14 00:39:52

标签: c++ macos qt opengl

我在我的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预期的吗?有什么方法可以解决这个问题吗?

0 个答案:

没有答案