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

摘要:
GLUT事件处理窗口管理函数voidglutMainLoop允许GLUT程序进入事件循环。intglutCreateWindow;生成顶级窗口。返回值是生成的窗口的标志,可以由函数glutGetWindow()引用。intglutCreateSubWindow;创建子窗口。宽度和高度是子窗口的宽度和高度。voidglutDestroyWindow;摧毁标有获胜的窗口。voidglutPostRedisplay;标记当前窗口以再次显示。voidglutSwapBuffers;当窗口模式为双缓冲时,功能是将后台缓存的内容交换到前台显示。空隙率重塑窗口;更改当前窗口的大小。voidglutPopWindow;voidglutPushWindow;对顶级和子窗口都有效。GlutHideWindow使当前窗口不可见。

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)函数[转]》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MongoDB无法启动的解决方法ansible自动化运维详细教程及playbook详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ubuntu下OpenGL开发环境的搭建

由于上了计算机图形学的课,老师叫我们安装OpenGL开发环境,晚上安装了一两个小时,终于搞定了。 1.      建立基本编译环境 sudo apt-get install build-essential  2.      安装OpenGL Library sudo apt-get install libgl1-mesa-dev  3.      安装Op...

[osg][opengl]透视投影的参数Perspective

gluPerspective这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具体大小,一般而言,其中的参数aspect应该与窗口的宽高比大小相同。比如说,aspect=2.0表示在观察者的角度中物体的宽度是高度的两倍,在视口中宽度也是高度的两倍,这样显示出的物体才不会被扭曲。 gluPerspective NAME...

Android 的窗口管理系统 (View, Canvas, WindowManager)

http://blog.csdn.net/ritterliu/article/details/39295271 From漫天尘沙 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道Android 应用程序是怎么创建出来的,大概的流程是 ActivityManagerService -> Zygote...

ThinkPad T41/43 安装Windows XP及其驱动程序

http://njdg.net/bbs/?a=gzhnanThinkPad T43 -- 安装Windows XP及其驱动程序ThinkPad T41 -- 安装Windows XP及其驱动程序适用机型: 所有ThinkPad T41; 所有ThinkPad T41p 文档内容: 一. 安装前的准备工作1. 准备好Windows XP Profession...

OpenGL学习笔记——C++(待续)

一、环境搭建 1、新建macOS项目; 2、添加OpenGl.framework和GLUT.framework两个系统库; 3、拖入include和libGLTool.a文件,libGLTools.a直接拖到工程的Frameworks文件里面; 4、删除AppDelegate.h,AppDelegate.m,main.m,ViewController.h,...

基于OpenGL编写一个简易的2D渲染框架-08 重构渲染器-整体架构

  事实上,前面编写的渲染器 Renderer 非常简陋,虽然能够进行一些简单的渲染,但是它并不能满足我们的要求。 当渲染粒子系统时,需要开启混合模式,但渲染其他顶点时却不需要开启混合模式。所以同时渲染粒子系统和其他纹理时会得不到想要的结果,渲染器还存在许多的不足: 1、当渲染许多透明图形时,没有对其进行排序,使得本应透明的图形没有透明。 2、不能对不同的...