我尝试使用以下代码将OpenGL上下文设置为v3.3,但它创建的是一个4.1上下文。
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG);
我是否做错了什么,还是这是Mac的问题?
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG
,这是一个已过时的标志,仅用于OpenGL 3.0和3.1版本,对于3.2及以上版本则无关紧要,并且在3.0之前不存在。 - Dietrich Epp#include <OpenGL/gl3.h>
,并且任何不受支持的函数都将在运行时为空,就像您使用了GLEW一样。 GLEW无法检查核心上下文中扩展的存在,因此在OS X上使用它是没有意义的,除非它碰巧使您的跨平台生活更轻松。 - Dietrich Epp