FLTK + OpenGL - 未绘制矩形

时间:2014-11-25 23:42:18

标签: c++ opengl fltk

我使用 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());
}

我已经通过这种方式读到,在绘图之前甚至不需要清除颜色,并且交换缓冲区(它是一个双缓冲窗口)。事实上,我发现该窗口默认为黑色,无需拨打glClearglColor。但是,矩形没有被绘制,我得到一个完全黑色的窗口。

这就是我实例化窗口的方式:

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();
}

1 个答案:

答案 0 :(得分:0)

屏幕上未显示绘制对象的可能原因:

  • 对象不是attach() - 对窗口对象。
  • 窗口外的对象坐标。