您的位置:首页 > 运维架构

glut

2015-10-25 10:07 246 查看
Void 
glutInit(int*argc,char**argv):
Argc:一个指针,指向从main()函数传递过来的没更改的argc变量;
Argv:一个指针,指向从main()函数传递过来的没更改的argv变量。
 
Void glutInitWindowPositon(int
x,int y):
X: 距离屏幕左边的像素数。-1是默认值,意思就是由窗口管理程序决定窗口出现在哪里。如果不使用默认值,那你就自己设置一个值。
Y:距离屏幕上边的像素数。和X一样。

Void glutInitWindowSize(int width,int height):
Width:窗口的宽度。
Height:窗口的高度。

Void glutInitDisplayMode(unsighed
int mode):
Mode参数是一个GLUT库里预定义的可能的布尔组合。你使用mode去指定颜色模式,数量和缓冲区类型。
颜色模式:
GLUT_RGBA或者GLUT_RGB。指定一个RGBA窗口,这是一个默认的颜色模式;
GLUT_INDEX:指定颜色索引模式;
 
选择单缓冲区或双缓冲区窗口。
1:GLUT_SINGLE.单缓冲区窗口。//当不需要用户交互时用单缓冲,需要用户交互时要用双缓冲
2:GLUT_DOUBLE.双缓冲区窗口,这是产生流畅动画必须选的。Glut使用双缓冲很简单只需要在显示回调函数中使用函数glutSwapBuffers()取代glFlush()即可。
 
指定一组特殊的缓冲的话,用下面的变量:
1:GLUT_ACCUM.累积缓冲区
2:GLUT_STENCIL.模板缓冲区
3:GLUT_DEPTH.深度缓冲区
 
Int glutCreateWindow(char*
title);

Title:设置窗口的标题。
glutCreateWindow()的返回值是一个窗口标识符。
 
void glutDisplayFunc(void
(*func)(void));

func: 当窗口需要被重绘是调用的函数的名称。
 
glutReshapeFunc是窗口改变的时候调用的函数,在这个里面可以根据缩放后的窗口重新设置,而glutDisplayFunc是显示的时候调用,可见改变窗口后调用glutReshapeFunc后还是会调用glutDisplayFunc进行显示。
 
使用函数glutMouseFunc(A),就可以帮我们注册我们的函数,当发生鼠标事件时就会自动调用A方法。
void glutMouseFunc(void(*func)(int button,int state,int x,int y));
func:处理鼠标click事件的函数的函数名。
第一个参数表明响应哪个鼠标键:GLUT_LEFT_BUTTON    GLUT_MIDDLE_BUTTON     GLUT_RIGHT_BUTTON
第二个参数表明鼠标的状态:GLUT_DOWN      GLUT_UP
第三个参数提供了鼠标当前的窗口坐标
 

void glutMotionFunc(void(*func)(int x,int y));

这个函数是处理当鼠标键摁下时,鼠标拖动的事件。当鼠标拖动时,将每一帧都调用一次这个函数。

 

void glutSpecialFunc(void (*func)(int key,int x,int y));

 这个函数是用来处理一些特殊键摁下的事件。参数key是这个键编号,在glut.h中预定义了这些常量:

 #define GLUT_KEY_F1          1

 #define GLUT_KEY_F2          2

 #define GLUT_KEY_F3          3

void glutSetCursor(int cursor);

设置当前窗口的光标样式。

GLUT_CURSOR_RIGHT_ARROW指向右边的光标,

GLUT_CURSOR_LEFT_ARROW指向左边的光标,

GLUT_CURSOR_INFO成为手状,

GLUT_CURSOR_DESTROY呈叉状,

GLUT_CURSOR_HELP呈现问号的形状。

 

glutTimerFunc(unsigned int millis, void (*func)(int value), int value);

参数对应关系为:glutTimerFunc(毫秒数, 回调函数指针, 区别值);

写自己的回调函数 void OnTimer(int value);//  用value区分是哪个定时器

在函数里改变和位置有关的变量,然后调用glutPostRedisplay();用来重绘

最后再次调用glutTimerFunc,因为glut的定时器是调用一次才产生一次定时,所以如果要持续产生定时的话, 在定时函数末尾再次调用glutTimerFunc。

 

让程序进入一个永不结束的循环。一直等待处理下一个事件:voidglutMainLoop(void)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opengl