我试图将OSX OpenGL项目更新为OpenGL 4.1。我的着色器使用#version 410
,一切正常,非常活泼。今天我注意到4.1的新NSOpenGLPFAOpenGLProfile
值,所以我将像素格式配置文件从NSOpenGLProfileVersion3_2Core
更新为NSOpenGLProfileVersion4_1Core
,现在渲染疯狂慢。我的像素格式初始化代码如下所示:
NSOpenGLPixelFormatAttribute attrs[] =
{
NSOpenGLPFADoubleBuffer,
NSOpenGLPFADepthSize, 24,
NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion4_1Core,
0
};
NSOpenGLPixelFormat *pf =
[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
任何人都知道为什么会这么慢 - 我还需要更新一些东西吗?
答案 0 :(得分:1)
在Mavericks上使用NSOpenGLProfileVersion4_1Core
会导致完整的软件回退。这不是优胜美地的问题。
答案 1 :(得分:0)
在任何一种情况下(10.9或10.10)使用NSOpenGLPFAOpenGLProfile,NSOpenGLProfileVersion3_2Core实际上将启用OpenGL和GLSL版本4.1。我在两种情况下都用过它。
NSOpenGLProfileVersion3_2Core用词不当。它实际上可以使用最新版本,不一定是3.2。
使用prepareOpenGL方法中的以下调用检查此项为真:
NSLog(@"OpenGL version = %s", glGetString(GL_VERSION));
NSLog(@"GLSL version = %s", glGetString(GL_SHADING_LANGUAGE_VERSION));