Ошибка версии Qt5 OpenGL GLSL
начинаю использовать OpenGL с Qt и с шейдерами (у меня есть опыт работы с OpenGL, но пока не с шейдерами)
После этого урока:http://releases.qt-project.org/learning/developerguides/qtopengltutorial/OpenGLTutorial.pdf (официальный учебник по Qt5 OpenGL).
Проблема в том, что когда я пытаюсь запустить свою программу, я получаю черный экран и следующие сообщения об ошибках:
QGLShader::compile(Vertex): ERROR: 0:1: '' : version '130' is not supported
QGLShader::compile(Fragment): ERROR: 0:1: '' : version '130' is not supported
Моя программа основана на QGLWidget
В процессе просмотра веб-страниц я обнаружил, что мне нужно использовать контекст OpenGL 3.2, но Qt любит использовать OpenGL 2.x.
Мой компьютер:
MacBook Pro Retina '15, конец 2012Intel HD 4000NVidia GeForce 650MИтак, как я могу сделать эту работу?
РЕДАКТИРОВАТЬ:
Моя версия 3.2 (устанавливается через QGLFormat), без указанного формата она использует 2.0
fragmentShader.frag:
#version 130
uniform vec4 color;
out vec4 fragColor;
void main(void)
{
fragColor = color;
}
vertexShader.vert:
#version 130
uniform mat4 mvpMatrix;
in vec4 vertex;
void main(void)
{
gl_Position = mvpMatrix * vertex;
}
Ошибки (с форматом OpenGL 3.2):
QGLShaderProgram: shader programs are not supported
QGLShaderProgram::uniformLocation( mvpMatrix ): shader program is not linked
The program has unexpectedly finished.
Ошибки (без формата, OpenGL 2.0):
QGLShader::compile(Vertex): ERROR: 0:1: '' : version '130' is not supported
QGLShader::compile(Fragment): ERROR: 0:1: '' : version '130' is not supported