红薯 在FLTK中使用OpenGL进行图形编程

来源:互联网 发布:职场女性英文名知乎 编辑:程序博客网 时间:2024/04/28 22:41
在FLTK中很容易使用OpenGL进行图形编程的,我们只需要使用它的Fl_Gl_Window构件,重新定义一个派生于Fl_Gl_Window的类,重载draw()和handle()就可以。所需要的代码和步骤如下

注意

1. 编译时需要包含openGL32的库文件,名字在不同的平台名字稍微不同。

2. 使用<FL/gl.h>代替<GL/gl.h>头文件,不要使用后者的头文件。


标签: OpenGL FLTK


[代码] 包含以下头文件

1#include <FL/Fl.H>
2#include <FL/gl.h>
3#include <FL/Fl_Gl_Window.H>

[代码] 定义一个子类,如下代码所示

1class MYGLWindow :public Fl_Gl_Window
2{
3    voiddraw(); //作图操作
4    voidhandle( int ); //消息事件处理
5public :
6    MYGLWindow(intx,int y,int w,inth,const char *L) : Fl_Gl_Window(x,y,w,h,L){};
7};

[代码] 实现draw()事件

01void MYGLWindow::draw()//作图
02{
03    if( ! valid() )
04    {
05        //设置viewport窗口大小等等 例如
06        /**********************************************
07        valid(1);
08        glLoadIdentity();
09        glViewport(0,0,w(),h());
10        ***********************************************/
11    }
12    //添加使用OPENGL作图操作
13    /** ……..*/   
14};

[代码] 事件处理实现

1void MYGLWindow::handle(int event) //事件处理
2switch(event)
3 caseFL_PUSH :  //操作等
4                return1;
5    case…….
6}
7}