FLTK + OpenGL - 未绘制矩形

Posted

技术标签:

【中文标题】FLTK + OpenGL - 未绘制矩形【英文标题】:FLTK + OpenGL - rectangle not drawn 【发布时间】:2014-11-25 23:42:18 【问题描述】:

我使用 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】:

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

对象不是attach()-ed 到窗口对象。 对象在窗口外的坐标。

【讨论】:

以上是关于FLTK + OpenGL - 未绘制矩形的主要内容,如果未能解决你的问题,请参考以下文章

opengl 中的透明度(使用 FLTK)

OpenGL随机大小矩形代码更改绘制的矩形

Opengl 未使用着色器正确绘制 - 矩阵设置/初始化问题?

OpenGL - 如何绘制一个完整的窗口矩形

OpenGL用鼠标拖动绘制矩形?

OpenGL:绘制矩形后不显示文本