我使用 OpenGL 一段时间了,现在我想将它与 FLTK 结合使用。我将Fl_Gl_Window
子类化并实现了draw方法:
void MainWindow::draw()
{
if(!valid())
{
// Setup
glEnable(GL_DEPTH_TEST);
glViewport(0,0,w(),h()); // At runtime W()=800, h()=600
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,w(),0,h(),1,1000);
}
gl_color(FL_BLUE);
gl_rect(0,0,w(),h());
}
我已经通过这种方式读到,在绘图之前甚至不需要清除颜色,并且交换缓冲区(它是一个双缓冲窗口)。事实上,我发现该窗口默认为黑色,无需拨打glClear
和glColor
。但是,矩形没有被绘制,我得到一个完全黑色的窗口。
这就是我实例化窗口的方式:
int main(int argc, char **argv)
{
MainWindow* w= new MainWindow(50,100,width,height,"Test Window");
w->end();
w->show(argc,argv);
return Fl::run();
}
答案 0 :(得分:0)
屏幕上未显示绘制对象的可能原因:
attach()
- 对窗口对象。