OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]

Posted 1024 Planet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]相关的知识,希望对你有一定的参考价值。

GLUT事件处理(Event Processing)窗口管理(Window Management)函数

 

void glutMainLoop(void)

     让glut程序进入事件循环。在一个glut程序中最多只能调用一次。一旦调用,会直到程序结束才返回。

int glutCreateWindow(char* name);

    产生一个顶层的窗口。name 作为窗口的名字,也就是窗口标题栏显示的内容。

    返回值是生成窗口的标记符,可用函数glutGetWindow()加以引用。

int glutCreateSubWindow(int win,int x,int y,int width,int height);

     创建一个子窗口。win是其父窗口的标记符。x,y是相对父窗口的位移,以像素表示。

width,height是子窗口的宽和高。

void glutSetWindow(int win);
int glutGetWindow(void);

     功能分别是:设置标记符为win的窗口为当前窗口;返回当前窗口的标记符。

void glutDestroyWindow(int win);

     销毁以win标记的窗口。

void glutPostRedisplay(void);

     将当前窗口打上标记,标记其需要再次显示。

void glutSwapBuffers(void);

 当窗口模式为双缓存时,此函数的功能就是把后台缓存的内容交换到前台显示。当然,只有单缓        存时,使用它的功能跟用glFlush()一样。

   而使用双缓存是为了把完整图画一次性显示在窗口上,或者是为了实现动画。

void glutPositionWindow(int x,int y);

改变当前窗口的位置:当前窗口是顶层窗口时,x,y是相对于屏幕的的位移;当前窗口若是子窗口时,x,y是相对其父窗口原点的位移。

void glutReshapeWindow(int width,int height);

改变当前窗口的大小。

width,height是当前窗口新的宽度和高度值,当然只能是正值。

void glutFullscreen(void);

让当前窗口全屏显示。当前窗口是顶层窗口时才有效。

void glutPopWindow(void);
void glutPushWindow(void);

对顶层窗口和子窗口均有效。改变当前窗口在栈中相对于其它窗口的次序。

void glutShowWindow(void);
void glutHideWindow(void);
void glutIconifyWindow(void);

这三个函数作用是改变当前窗口的显示状态。

  • glutShowWindow让当前窗口可视(这时它还是可能被其它窗口挡住)。
  • glutHideWindow让当前窗口成为不可视状态。
  • glutIconifyWindow让当前窗口成为一个图标,也即是最小化。

void glutSetWindowTitle(char* name);
void glutSetIconTitle(char* name);

设置当前窗口(必须是顶层窗口)的标题和图标化时的标题。

void glutSetCursor(int cursor);

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

cursor可选值有许多:如GLUT_CURSOR_RIGHT_ARROW指向右边的光标,GLUT_CURSOR_LEFT_ARROW指向左边的光标,GLUT_CURSOR_INFO成为手状。 
GLUT_CURSOR_DESTROY呈叉状,GLUT_CURSOR_HELP呈现问号的形状。等等。

转至:http://blog.csdn.net/augusdi/article/details/7076771

以上是关于OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]的主要内容,如果未能解决你的问题,请参考以下文章

QT一个最简单的openGL例子

OpenGL / GLUT中的鼠标拖动对象[关闭]

opengl 的窗口处理程序

OpenGL 和 GLUT/C++ 奇怪的纹理循环问题

GLUT OpenGL Cube 拉伸错误

openGL实现二维图形和三维图形