我的macbook上的GLSL版本与人们预期的不同

时间:2013-01-27 21:54:00

标签: macos opengl glsl

我有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。 你知道我的驱动程序/硬件有什么问题吗?我如何解决这个问题?

1 个答案:

答案 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。