我正在使用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);
有没有人处理过这个问题或者知道问题是什么? 如果你帮助我,我将不胜感激。
答案 0 :(得分:0)
可能是,您创建了OpenGL-3核心配置文件上下文? GLUI使用OpenGL-3中不推荐使用的功能,除非你有兼容性上下文,否则它根本不起作用。还要记住,GLUI不知道着色器,所以如果使用着色器,请记住在使用它们后禁用它们,否则GLUI最终会尝试使用固定功能管道......毫无结果。