c++ - FLTK + OpenGL - 未绘制矩形

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

最佳答案

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

  • 对象未attach()到窗口对象。
  • 对象在窗口外的坐标。

关于c++ - FLTK + OpenGL - 未绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138870/

相关文章:

c++ - 打破 while 循环重复

opengl - GLFW - 无法打开窗口

c++ - 使用平截头体时 OpenGL 远剪裁

c++ - FLTK 和连接字符的问题

c++ - 地址的数据类型

c++ - 使用一些 map 的点云中的有序点

c++ - 损坏的顶点和片段着色器

user-interface - 如何在FLTK中获取下拉菜单?

c++ - 如何绘制多个矩形 FLTK C++

c++ - CHAR_BIT 的更好名称?