GLUI控件不会出现,但它们有效

时间:2014-11-22 11:58:43

标签: opengl visual-c++ glew freeglut glui

我正在使用OpenGL开发图形项目并使用freeglut和glew(v 1.11.0)。我想用GLUI添加和UI控件。我下载源代码并使用Microsoft Visual Studio 2012构建它(我尝试了GLUI版本2.35和2.36)。将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);

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

1 个答案:

答案 0 :(得分:0)

可能是,您创建了OpenGL-3核心配置文件上下文? GLUI使用OpenGL-3中不推荐使用的功能,除非你有兼容性上下文,否则它根本不起作用。还要记住,GLUI不知道着色器,所以如果使用着色器,请记住在使用它们后禁用它们,否则GLUI最终会尝试使用固定功能管道......毫无结果。