1.6OpenGL编程
优质
小牛编辑
133浏览
2023-12-01
在FLTK中很容易使用OpenGL进行图形编程的,我们只需要使用它的Fl_Gl_Window构件,重新定义一个派生于Fl_Gl_Window的类,重载draw()和handle()就可以。所需要的代码和步骤如下:
包含以下头文件
#include <FL/Fl.H> #include <FL/gl.h> #include <FL/Fl_Gl_Window.H>
定义一个子类,如下代码所示
class MYGLWindow : public Fl_Gl_Window { void draw(); //作图操作 void handle( int ); //消息事件处理 public : MYGLWindow(int x,int y,int w,int h,const char *L) : Fl_Gl_Window(x,y,w,h,L){}; };
实现draw()事件
void MYGLWindow::draw() //作图 { if(!valid()) { //设置viewport窗口大小等等 例如 /********************************************** valid(1); glLoadIdentity(); glViewport(0,0,w(),h()); ***********************************************/ } //添加使用OPENGL作图操作 };
事件处理实现
void MYGLWindow::handle( int event) //事件处理 { switch (event) { case FL_PUSH : //操作等 return 1; case …… } }
注意
- 编译时需要包含openGL32的库文件,名字在不同的平台名字稍微不同。
- 使用
<FL/gl.h>
代替<GL/gl.h>
头文件,不要使用后者的头文件。
例子程序比较长,附在参考中。运行显示,弹出菜单后如图所示: