只有glsl着色器版本120适用于mac OS X.

时间:2014-05-13 11:33:02

标签: macos opengl glsl shader sdl-2

我的mac os X 10.9.2上的glsl版本有问题。我用OpenGL和SDL2用c ++编写程序

我无法从我的120版升级到更高版本。我怎么升级好吗? 我这样编译:

g ++和我的旗帜是: -framework SDL2 -lSDLmain -framework OpenGL -framework SDL2_image -framework cocoa

错误:0:3:'' :版本' 330'不支持

1 个答案:

答案 0 :(得分:7)

在OS / X 10.9上创建OpenGL 3.3 / 4.1上下文时,您需要在SDL_CreateWindow之前添加以下代码段。

  SDL_Init(SDL_INIT_VIDEO); 
  SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
  SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
  SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
  // ...
  // auto window = SDL_CreateWindow(...)
  // auto context = SDL_GL_CreateContext(window);
  cout << "OpenGL version " << glGetString​(GL_VERSION​) << endl;
  cout << "GLSL version " << glGetString​(GL_SHADING_LANGUAGE_VERSION​​) << endl;

这里有一个完整的例子: https://gist.github.com/mortennobel/643e92bd6a63de688c6f