OpenGL(1) GLUT窗口图层初始化函数API


/*GLUT初始化函数*/
/* GLUT initialization sub-API. */

GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
//初始化GLUT//
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
#ifndef GLUT_BUILDING_LIB
static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
#define glutInit glutInit_ATEXIT_HACK
#endif
#endif
GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
/*
Mode――可以指定下列显示模式 

Mode参数是一个GLUT库里预定义的可能的布尔组合。你使用mode去指定颜色模式,数量和缓冲区类型。 

指定颜色模式的预定义常量有: 

1:GLUT_RGBA或者GLUT_RGB。指定一个RGBA窗口,这是一个默认的颜色模式。 

2:GLUT_INDEX。指定颜色索引模式。 

这个显示模式还允许你选择单缓冲区或双缓冲区窗口。 

1:GLUT_SINGLE.单缓冲区窗口。 

2:GLUT_BUFFER.双缓冲区窗口,这是产生流畅动画必须选的。 

还可以指定更多,如果你想指定一组特殊的缓冲的话,用下面的变量: 

1:GLUT_ACCUM.累积缓冲区。 

2:GLUT_STENCIL.模板缓冲区。 

3:GLUT_DEPTH.深度缓冲区。 
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE|GLUT|DEPTH); 
*/
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
GLUTAPI void APIENTRY glutInitDisplayString(const char *string);
#endif
//
GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
/*
X: 距离屏幕左边的像素数。-1是默认值,意思就是由窗口管理程序决定窗口出现在哪里。如果不使用默认值,那你就自己设置一个值。 

Y:距离屏幕上边的像素数。和X一样。
*/

GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
/*
Width:窗口的宽度。 

Height:窗口的高度。 

同样width,height也只是一个参考数字。避免使用负数。 

*/
GLUTAPI void APIENTRY glutMainLoop(void);
/*
glutMainLoop进入GLUT事件处理循环,让所有的与“事件”有关的函数调用无限循环。
glutMainLoop进入GLUT事件处理循环。在一个GLUT程序中,这个例程被调用一次 。
一旦被调用,这个程序将永远不会返回 。它将调用必要的任何已注册的回调。
*/



/* GLUT window sub-API. 窗口管理*/
GLUTAPI int APIENTRY glutCreateWindow(const char *title);
/*
调用函数glutCreateWindow()来创建窗口了。 

Int glutCreateWindow(char* title); 

参数: 

Title:设置窗口的标题。 
glutCreateWindow(“GLUT Tutorial”); 

*/
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
#ifndef GLUT_BUILDING_LIB
static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK
#endif
#endif
GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
/*创建子窗口
win:
Identifier of the subwindow's parent window.(子窗口的父窗口的标识符)
x:
Window X location in pixels relative to parent window's origin.(以像素为单位相对于父窗口的起点的X窗口的位置)
y:     
Window Y location in pixels relative to parent window's origin.
width:
Width in pixels.(宽度(以像素为单位))
height:
Height in pixels.
*/
GLUTAPI void APIENTRY glutDestroyWindow(int win);
/*
销毁以win标记的窗口。
*/
GLUTAPI void APIENTRY glutPostRedisplay(void);
/*
将当前窗口打上标记,标记其需要再次显示。
*/
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
GLUTAPI void APIENTRY glutPostWindowRedisplay(int win);
#endif
GLUTAPI void APIENTRY glutSwapBuffers(void);
/*
 当窗口模式为双缓存时,此函数的功能就是把后台缓存的内容交换到前台
 显示。当然,只有单缓存时,使用它的功能跟用glFlush()一样。 
*/
GLUTAPI int APIENTRY glutGetWindow(void);
GLUTAPI void APIENTRY glutSetWindow(int win);
GLUTAPI void APIENTRY glutSetWindowTitle(const char *title);
GLUTAPI void APIENTRY glutSetIconTitle(const char *title);
/*
设置当前窗口(必须是顶层窗口)的标题和图标化时的标题
*/
GLUTAPI void APIENTRY glutPositionWindow(int x, int y);
/*
 改变当前窗口的位置:当前窗口是顶层窗口时,x,y是相对于屏幕的的位移;
 当前窗口若是子窗口时,x,y是相对其父窗口原点的位移。 
*/
GLUTAPI void APIENTRY glutReshapeWindow(int width, int height);
/*
 改变当前窗口的大小
*/
GLUTAPI void APIENTRY glutPopWindow(void);
GLUTAPI void APIENTRY glutPushWindow(void);
/*
 对顶层窗口和子窗口均有效。改变当前窗口在栈中相对于其它窗口的次序。
*/
GLUTAPI void APIENTRY glutIconifyWindow(void);
/*
让当前窗口成为一个图标,也即是最小化
*/
GLUTAPI void APIENTRY glutShowWindow(void);
/*
让当前窗口可视(这时它还是可能被其它窗口挡住)
*/
GLUTAPI void APIENTRY glutHideWindow(void);
/*
让当前窗口成为不可视状态
*/
#if (GLUT_API_VERSION >= 3)
GLUTAPI void APIENTRY glutFullScreen(void);
/*
让当前窗口全屏显示。当前窗口是顶层窗口时才有效。
*/
GLUTAPI void APIENTRY glutSetCursor(int cursor);
/*
设置当前窗口的光标样式。 

cursor可选值有许多:如GLUT_CURSOR_RIGHT_ARROW指向右边的光标,GLUT_CURSOR_LEFT_ARROW指向左边的光标,GLUT_CURSOR_INFO成为手状。 

GLUT_CURSOR_DESTROY呈叉状,GLUT_CURSOR_HELP呈现问号的形状。
*/
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
GLUTAPI void APIENTRY glutWarpPointer(int x, int y);
#endif

/* GLUT overlay sub-API. 窗口的覆盖管理*/
GLUTAPI void APIENTRY glutEstablishOverlay(void);
/*
对当前窗口创建覆盖图层。该覆盖图的模式由初始化显示模式函数glutDisplayMode()决定。
glutLayerGet(GLUT_OVERLAY_POSSIBLE)可用以设置对于当前窗口,是否允许产生由初始化显
示模式函数规定其模式的覆盖图层
*/
GLUTAPI void APIENTRY glutRemoveOverlay(void);
/*
除去覆盖图。当没有覆盖图层时,调用这条语句也是安全的,这时系统不做任何事。
*/
GLUTAPI void APIENTRY glutUseLayer(GLenum layer);
/*
枚举量layer可选值为:GLUT_NORMAL,GLUT_OVERLAY.分别选取正常位平面或覆盖平面。 
*/
GLUTAPI void APIENTRY glutPostOverlayRedisplay(void);
/*
标记该覆盖图层为需要重新显示的状态。 
*/
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win);
/*
标记该覆盖图层为需要重新显示的状态。 
*/
#endif
GLUTAPI void APIENTRY glutShowOverlay(void);
GLUTAPI void APIENTRY glutHideOverlay(void);
/*
显示当前窗口的覆盖图层;隐藏覆盖图层。这两条语句即时执行。注意一下,只有窗口可视时,
使用glutShowOverlay才能使其覆盖图层可视。当窗口被其他窗口遮挡时,其覆盖图层也被遮挡
从而不可视
*/
#endif


你可能感兴趣的:(OpenGL)