2012-07-19 67 views
1

我正在考慮將我的一個軟件從opengl 2.1移植到現代版本(3.x或4.x)。如何用fltk 1.3創建opengl 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_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION,2);

有沒有類似的fltk?或者它只能處理Opengl 2.1?

回答

1

FLTK 1.1也沒有FLTX 2.0的窗口創建功能允許創建一個核心 OpenGL上下文。您仍然可以創建後2.1版本的compatibility context(儘管不是在MacOSX上,它們只提供核心OpenGL)。

1

我想你可以使用WGL_ARB_create_contextwglCreateContext創建一個OpenGL上下文,之後你可以使用Fl_GL_Window的void context (void *, int destroy_flag=0)方法來設置上下文。當然,你必須小心創造。 Luckilly,FLTK將能夠爲您提供有關DC的詳細信息,以便您可以創建有效的OpenGL上下文。另外,您可以使用void* context()方法來獲取FLTK正在使用的OpenGL上下文的一個點。

+0

好的,所以上下文必須在FLTK之外創建,對吧?我將不得不爲不同的系統(Windows和Linux)創建它。 – Once 2012-07-27 09:03:13

+0

應該爲你創建一個默認的(由Fl_GL_window),如果你想要別的東西,你必須自己製作。對我有意義(我不是OpenGL專家)... – DejanLekic 2012-07-27 13:47:36

相關問題