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

Neg*_*ien 1 opengl macos shader glsl 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'

Mor*_*bel 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;
Run Code Online (Sandbox Code Playgroud)

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

  • 你是否设置了`SDL_GL_CONTEXT_MINOR_VERSION`和`SDL_GL_CONTEXT_MAJOR_VERSION`?您粘贴的代码只包含`SDL_GL_CONTEXT_MINOR_VERSION`! (2认同)