int glutCreateWindow(const char *title);
产生一个顶层的窗口.title作为窗口的名字,也就是窗口标题栏显示的内容.
返回值是生成窗口的标记符,可用函数glutGetWindow()加以引用.
//******************************************************************************************
int glutCreateSubWindow(int win, int x, int y, int width, int height);
创建一个子窗口.win是其父窗口的标记符.x,y是子窗口左上角相对父窗口的位移,以像素表示.width,height是子窗口的宽和高.
//*****************************************************************************************
void glutDestroyWindow(int win);
销毁窗口,win是所要销毁的窗口的标识符.这个函数销毁指定的窗口以及与窗口关联的OpenGL上下文,重叠层,子窗口等一切与此窗口相关的内容.
//*****************************************************************************************
void glutPostRedisplay(void);
标记当前窗口的图像层需要重新绘制,在glutMainLoop函数的事件处理循环的下一个循环中,将调用该窗口的显示回调函数重绘该窗口的图像层.
//******************************************************************************************
void glutPostWindowRedisplay(int win);
标记指定的窗口需重绘,在glutMainLoop函数的事件处理循环的下一个循环中,将调用该窗口的显示回调函数重绘该窗口的图像层.
参数:win:需刷新的窗口标识符
//******************************************************************************************
void glutSwapBuffers(void);
当窗口模式为双缓存时,此函数的功能就是把后台缓存的内容交换到前台显示.当然,只有单缓存时,使用它的功能跟用glFlush()一样.而使用双缓存是为了把完整图画一次性显示在窗口上,或者是为了实现动画.
//******************************************************************************************
int glutGetWindow(void);
返回当前窗口的标识符
//*****************************************************************************************
void glutSetWindow(int win);
设置标记符为win的窗口为当前窗口
//****************************************************************************************
void glutSetWindowTitle(const char *title);
设置当前窗口(必须是顶层窗口)的标题,窗口一旦建立后,窗口标题就可以由这个函数来改变
//****************************************************************************************
void glutSetIconTitle(const char *title);
设置当前窗口(必须是顶层窗口)图标化时的标题.
//***************************************************************************************
void glutPositionWindow(int x, int y);
改变当前窗口的位置:当前窗口是顶层窗口时,x,y是相对于屏幕的的位移;当前窗口若是子窗口时,x,y是相对其父窗口原点的位移.
//***************************************************************************************
void glutReshapeWindow(int width, int height);
改变当前窗口的大小.width,height是当前窗口新的宽度和高度值,当然只能是正值.
//***************************************************************************************
void glutPopWindow(void);
在同一个父窗口的子窗口中,使当前的子窗口与排列在它前一个位置的子窗***换位置
void glutPushWindow(void);
在同一个父窗口的子窗口中,使当前的子窗口与排列在它后一个位置的子窗***换位置
这两个函数对顶层窗口和子窗口都起作用,但函数的结果并不立即发生,直到下一个事件循环.
//****************************************************************************************
void glutIconifyWindow(void);
让当前窗口成为一个图标,也即是最小化,使当前窗口图标化显示.
//****************************************************************************************
void glutShowWindow(void);
显示当前窗口(这时它还是可能被其它窗口挡住).
//*****************************************************************************************
void glutHideWindow(void);
隐藏当前窗口
//****************************************************************************************
void glutFullScreen(void);
把当前窗口用全屏显示,当前窗口是顶层窗口时才有效.
//****************************************************************************************
void glutSetCursor(int cursor);
设置当前窗口的光标样式.
参数:
cursor:指定鼠标的形状,为下面的一种值光标的形状
/* Basic arrows. */
GLUT_CURSOR_RIGHT_ARROW
GLUT_CURSOR_LEFT_ARROW
/* Symbolic cursor shapes. */
GLUT_CURSOR_INFO
GLUT_CURSOR_DESTROY
GLUT_CURSOR_HELP
GLUT_CURSOR_CYCLE
GLUT_CURSOR_SPRAY
GLUT_CURSOR_WAIT
GLUT_CURSOR_TEXT
GLUT_CURSOR_CROSSHAIR
/* Directional cursors. */
GLUT_CURSOR_UP_DOWN
GLUT_CURSOR_LEFT_RIGHT
/* Sizing cursors. */
GLUT_CURSOR_TOP_SIDE
GLUT_CURSOR_BOTTOM_SIDE
GLUT_CURSOR_LEFT_SIDE
GLUT_CURSOR_RIGHT_SIDE
GLUT_CURSOR_TOP_LEFT_CORNER
GLUT_CURSOR_TOP_RIGHT_CORNER
GLUT_CURSOR_BOTTOM_RIGHT_CORNER
GLUT_CURSOR_BOTTOM_LEFT_CORNER
/* Fullscreen crosshair (if available). */
GLUT_CURSOR_FULL_CROSSHAIR:
(在全屏模式下使用,等同于GLUT_CURSOR_CROSSHAIR)
/* Blank cursor. */
GLUT_CURSOR_NONE:不显示鼠标
/* Inherit from parent window. */
GLUT_CURSOR_INHERIT:使用父窗口的鼠标
//****************************************************************************************
void glutWarpPointer(int x, int y);
这个函数将鼠标指针移动到一个相对于当前窗口左上角的新的位置,以窗口左上角为原点,右为X轴正方向,下为Y轴正方向,参数x,y是在这个坐标系中的点,可以为负值.如果坐标值超出屏幕可见范围,则将该值强行控制在屏幕可见范围以内.一般情况下这个函数最好不要使用, 因为鼠标动作还是留给用户控制比较人性化.