(转)glut函数详解(2)--窗口API


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是在这个坐标系中的点,可以为负值.如果坐标值超出屏幕可见范围,则将该值强行控制在屏幕可见范围以内.一般情况下这个函数最好不要使用, 因为鼠标动作还是留给用户控制比较人性化.

posted on 2009-03-03 15:26 小虫虫 阅读(1119) 评论(0)  编辑 收藏 引用 所属分类: OpenGL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜