0

我正在使用 OpenGL 开发图形项目,并使用 freeglut 和 glew(v 1.11.0)。我想用 GLUI 添加总和 UI 控件。我下载了源代码并使用 Microsoft Visual Studio 2012 构建它(我尝试了 2.35 和 2.36 的 GLUI 版本)。将 lib 文件添加到我的项目库中没有问题。所以,我现在可以在项目中使用 GLUI。
但是控件的显示存在问题。我正在尝试将我的 GLUI 窗口添加为我的主窗口的子窗口。添加子窗口,重塑等没有问题。另外,我也可以向子窗口添加控件。但是,当我添加它们时,它们不会出现在子窗口中。有趣的是,它们实际上就在那里。当我大约单击按钮位置时,它们具有附加回调函数来控制的效果,它调用该函数并使其工作。
我也尝试了独立的 GLUI 窗口而不是子窗口,但结果是一样的。
这是我的代码:

GLUI* glui_subwin = GLUI_Master.create_glui_subwindow(mainWindowID,GLUI_SUBWINDOW_BOTTOM);

GLUI_Button* b_RotateX = glui_subwin->add_button( "Rotate X", 0, (GLUI_CB)CB_rotate);

glui_subwin->add_column(true);

GLUI_Button* b_RotateY = glui_subwin->add_button( "Rotate Y", 1, (GLUI_CB)CB_rotate);
glui_subwin->add_column(true);

GLUI_Button* b_RotateZ = glui_subwin->add_button( "Rotate Z", 2, (GLUI_CB)CB_rotate);
glui_subwin->add_column(true);
...
glui_subwin->set_main_gfx_window(mainWindowID);

GLUI_Master.set_glutKeyboardFunc(keyboard);
GLUI_Master.set_glutSpecialFunc(NULL);
GLUI_Master.set_glutMouseFunc(mouse);
GLUI_Master.set_glutReshapeFunc(reshape);
GLUI_Master.set_glutIdleFunc(idle);

有没有人处理过这个问题或者知道问题是什么?
如果你帮助我,我将不胜感激。

4

1 回答 1

0

有没有可能是您创建了一个 OpenGL-3 核心配置文件上下文?GLUI 使用 OpenGL-3 中已弃用的功能,除非您有兼容性上下文,否则它根本无法工作。还要记住,GLUI 不知道着色器,因此如果您使用着色器,请记住在使用完它们后禁用它们,否则 GLUI 最终会尝试使用固定功能管道……徒劳无功。

于 2014-11-22T20:38:21.657 回答