我有MacBook pro和Radeon HD6750,MacOS 10.7.5,我发现它应该支持OpenGL 3.2和GLSL 1.5 proof。不幸的是,当我尝试使用着色器(OpenVDB查看器)构建一个第三方应用程序时,它返回我的硬件不支持#version 130
。代码如下:
mShader.setVertShader(
"#version 130\n
"in vec3 vertex;\n"
"in vec3 color;\n"
"out vec4 f_color;\n"
"void main() {\n"
"f_color = vec4(color, 1.0);\n"
"gl_Position = gl_ModelViewProjectionMatrix * vec4(vertex, 1.0);}\n");
//check that it is shader and add source
glCompileShader(mVertShader);
char buffer[256];
int l = 0;
glGetShaderInfoLog(mVertShader, 256, &l, buffer);
if(GL_NO_ERROR != glGetError()) throw "Error: Unable to compile vertex shader.";
我安装了OpenGL Extension viewer,它告诉我Shading语言版本是1.20而OpenGL版本是2.1(完全支持,3.2的一些功能可用)。 如果我的硬件能够支持更新版本,我不想使用GLSL 1.2。 你知道我的驱动程序/硬件有什么问题吗?我如何解决这个问题?
答案 0 :(得分:0)
您必须告诉像素格式使用OpenGL 3.2(或核心opengl)。
NSOpenGLPixelFormatAttribute attribute[] =
{
NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core,
//You can add other attributes here
0
};
NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attribute];
[self setPixelFormat:pixelFormat];
修改强> 旁注,我很确定OpenGL Extension Viewer允许你在某个地方使用OpenGL,它将使用OpenGL 3.2。