初时OpenGL,OpenGL应用工具包GLUT的基本函数

1.初始化和创建窗口

为了初始化并打开一个窗口,需要调用五个函数完成必要的任务。
1).void glutInit(int argc,char**argv);该函数用于初始化GLUT库,其参数应与主函数main()的参数相同。应该在调用其他GLUT函数之前调用glutInit()函数。
2).void glutInitDisplayMode(unsigned int mode);该函数为即将创建的窗口指定一种显示模式。参数的默认值为GLUT_RGBA|GLUT_SINGLE,即指定一个RGBA颜色模式的单缓存窗口。
3)void glutInitWindowPosition(int x,int y); 指定窗口左上角应该放置在屏幕上的位置。
4)void glutInitWindowSize(int width,int height);指定了窗口以像素为单位的尺寸。
5)void glutCreateWindow(char* string); 创建一个允许使用的OpenGL窗口,并将其视为当前窗口。

2.处理窗口和输入

1)void glutDisplayFunc(void(*func)(void)); 该函数用于绘制当前窗口。参数void(*func)为绘制当前窗口时所调用的函数名。任何时候当窗口的内容需要被重新绘制,则调用该函数。
2).void glutReshapeFunc(void(*func)(int width,int height));
表示在窗口尺寸改变时,指定了所调用的函数。width, height指定了 窗口新的宽度和高度。
3).void glutKeyboardFunc(void(*func)(unsigned int key,int x,int y)); 参数(*func)(unsigned int key,int x,int y)为按下一个生成ASCII字符的键时,GLUT调用的函数名称。
4).void glutMouseFunc(void(*func)(int button,int state,int x,int y));该函数指定了当按下或释放一个鼠标键时,调用的函数。参数button有三个有效值:GLUT_LEFT_BUTTON,GLUT_MIDDLE_BUTTON以及GLUT_RIGHT_BUTTON 分别代表鼠标的左键、中键和右键。
5).void glutKeyboardFunc(void(*func)(unsigned int key,int x,int y)); 参数(*func)(unsigned int key,int x,int y)为按下一个非ASCII字符的键(如shift键)时,GLUT调用的函数名称。
6).void glutMotionFunc(void(*func)(int x,int y));参数(*func)(int x,int y)为发生鼠标移动时,GLUT调用的函数名称。参数x和y返回鼠标当前的x和y位置。

3.绘制三维物体

例如:绘制圆锥体,函数如下:
void glutWireCube(GLdouble size);
void glutSolidCube(GLdouble size);

4.管理后台处理

当没有其他的待处理的事件时,用户可以用函数glutIdleFunc指定另一个函数。函数如下
Void glutIdleFunc*(void(*func)(void));
void(*func)指定了被调用的函数名。

5.运行程序

void glutMainLoop(void);这个函数开始启动主GLUT处理循环。事件循环包括所有的键盘、鼠标、绘制及窗口的事件等。

注意:在运用这些函数之前,要先配置以下的库和头文件
编译OpenGL程序需要有头文件gl.h和glu.h、GLAUX.h,库opengl32.lib,glu32.lib, GLAUX.lib,
若使用GLUT还需要glut.h 和glut32.lib。
运行OpenGL程序,需要在windows\system目录下有动态连接库opengl32.dll和glu32.dll, GLAUX.dll,若使用GLUT还需要glut32.dll。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值