我正在考虑将我的一个软件从opengl 2.1移植到现代版本(3.x或4.x)。
GUI使用fltk设计,并包含FL_GL_Window,我在其中进行所有渲染。现在我的问题是我不明白如何为这个窗口指定opengl上下文。
如果我使用SDL创建OpenGL上下文,我可以使用类似的东西: SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION,3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION,2);
fltk有类似的东西吗?或者它只能处理Opengl 2.1?
答案 0 :(得分:1)
FLTK 1.1和FLTX 2.0的窗口创建函数都不允许创建核心 OpenGL上下文。你仍然可以创建compatibility context的2.1版后版本(虽然不是在MacOSX上,它们只提供核心OpenGL)。
答案 1 :(得分:1)
我想您可以使用WGL_ARB_create_context
或wglCreateContext
来创建OpenGL上下文,之后您可以使用Fl_GL_Window的void context (void *, int destroy_flag=0)方法来设置上下文。当然,你必须小心创造。 Luckilly,FLTK将能够为您提供有关DC的详细信息,以便您可以创建有效的OpenGL上下文。此外,您可以使用void* context()
方法获取FLTK使用的OpenGL上下文的一个点。