【发布时间】:2014-09-27 11:38:56
【问题描述】:
我正在尝试加载特定的 OpenGL 版本函数,但无论我在创建 GL 上下文之前指定什么,似乎 GLEW 都会加载所有函数。
我知道它没有加载我想要的指定版本的原因是因为它返回的函数指针指向更高版本的OpenGL中可用的函数。
glBlendFunci 仅在 >= 4.0 中可用,而我想要 2.1 版本的 OpenGL,但无论如何都会加载 glBlendFunci。
这是我想要做的:
int main(int argc, char** args)
{
SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow("Game",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
width, height,
SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GLContext glContext = SDL_GL_CreateContext(window);
glewInit();
std::cout << glBlendFunci << std::endl;
//Initialize();
SDL_GL_DeleteContext(glContext);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
附:这只是一些原型代码,我只是在搞乱 OpenGL。
【问题讨论】: