1

我正在考虑将我的一个软件从 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 吗?

4

2 回答 2

1

我想你可以使用WGL_ARB_create_contextorwglCreateContext创建一个 OpenGL 上下文,然后你可以使用 Fl_GL_Window 的void context (void *, int destroy_flag=0) 方法来设置上下文。当然,你必须小心创造。幸运的是,FLTK 将能够为您提供有关 DC 的详细信息,以便您可以创建有效的 OpenGL 上下文。此外,您可以使用void* context()方法来获取 FLTK 使用的 OpenGL 上下文的点。

于 2012-07-19T22:03:30.543 回答
1

FLTK 1.1和FLTX 2.0的窗口创建函数都不允许创建核心OpenGL 上下文。您仍然可以创建 2.1 后版本的兼容性上下文(尽管不是在 MacOSX 上,它们只提供核心 OpenGL)。

于 2012-07-19T18:01:50.110 回答