2014-04-08  16:25:50
 
void glutDisplayFunc(void (*func)(void));
注册当前窗口的显示回调函数
参数:
func:形为void func()的函数,完成具体的绘制操作
这个函数告诉GLUT当窗口内容必须被绘制时,那个函数将被调用.当窗口改变大小或者从被覆盖的状态
//*******************************************************************************************
void glutReshapeFunc(void (*func)(int width, int
height));
指定当窗口的大小改变时调用的函数
参数:
func:形如void func(int width, int height)
处理窗口大小改变的函数.
width,height:为窗口改变后
这个函数确定一个回调函数,每当窗口的大小或形状改变时(包括窗口第一次创建),GLUT将会调用这个
//*******************************************************************************************
void glutKeyboardFunc(void (*func)(unsigned char key,
int x, int y));
注册当前窗口的键盘回调函数
参数:
func:形如void func(unsigned char key, int x, int y)
key:按键的ASCII码
x,y:当按下键时鼠标的坐标,相对于窗口左上角,以像素为单位
当敲击键盘按键(除了特殊按键,即glutSpecialFunc()中处理的按键,详见glutSpecialFunc())时调用.
//******************************************************************************************
void glutMouseFunc(void (*func)(int button, int state,
int x, int y));
注册当前窗口的鼠标回调函数
参数:
func:形如void func(int button, int state, int x, int y);
button:鼠标的按键,为以下定义的常量
GLUT_LEFT_BUTTON:鼠标左键
GLUT_MIDDLE_BUTTON:鼠标中键
GLUT_RIGHT_BUTTON:鼠标右键
state:鼠标按键的动作,为以下定义的常量
GLUT_UP:鼠标释放
GLUT_DOWN:鼠标按下
x,y:鼠标按下式,光标相对于窗口左上角的位置
当点击鼠标时调用.
//******************************************************************************************
void glutMotionFunc(void (*func)(int x, int
y));
当鼠标在窗口中按下并移动时调用glutMotionFunc注册的回调函数
void glutPassiveMotionFunc(void (*func)(int x, int
y));
当鼠标在窗口中移动时调用glutPassiveMotionFunc注册的回调函数
参数:
func:形如void func(int x, int y);
x,y:鼠标按下式,光标相对于窗口左上角的位置,以像素为单位
//*******************************************************************************************
void glutEntryFunc(void (*func)(int
state));
设置鼠标的进出窗口的回调函数
参数:
func:形如void func(int state);注册的鼠标进出回调函数
state:鼠标的进出状态,为以下常量之一
GLUT_LEFT 鼠标离开窗口
GLUT_RIGHT 鼠标进入窗口
当窗口取得焦点或失去焦点时调用这个函数,当鼠标进入窗口区域并点击时,state为GLUT_RIGHT,当鼠标离开窗口区域点击其他窗口时,state为GLUT_LEFT.
//******************************************************************************************
void glutVisibilityFunc(void (*func)(int
state));
设置当前窗口的可视回调函数
参数:
func:形如void func(int state);指定的可视回调函数
state:窗口的可视性,为以下常量
GLUT_NOT_VISIBLE 窗口完全不可见
GLUT_VISIBLE 窗口可见或部分可见
这个函数设置当前窗口的可视回调函数,当窗口的可视性改变时,该窗口的可视回调函数被调用.只要窗口中的任何一个像素是可见的,或者他的任意一个子窗口中任意一个像素是可见的,GLUT则认为窗口是可见的.
//*******************************************************************************************
void glutIdleFunc(void (*func)(void));
设置空闲回调函数
参数:
func:形如void func(void);
当系统空闲时调用.
//*******************************************************************************************
void glutTimerFunc(unsigned int millis, void
(*func)(int value), int value);
注册一个回调函数,当指定时间值到达后,由GLUT调用注册的函数一次
参数:
millis:等待的时间,以毫秒为单位
unc:形如void func(int value)
value:指定的一个数值,用来传递到回调函数func中
这个函数注册了一个回调函数,当指定的毫秒数到达后,这个函数就调用注册的函数,value参数用来向这个注册的函数中传递参数.
但只能触发一次,若要连续触发,则需在func中重新设置计时函数glutTimerFunc();
//*******************************************************************************************
void glutMenuStateFunc(void (*func)(int
state));
注册菜单状态回调函数
参数:
func:形如void func(int state);
state:
GLUT_MENU_IN_USE:菜单被使用.
GLUT_MENU_NOT_IN_USE:菜单不再被使用,即菜单被关闭.
如果state代入GLUT_MENU_IN_USE,则当菜单被使用时调用该函数;
如果state代入GLUT_MENU_NOT_IN_USE,则当菜单被关闭时调用该函数.
//*******************************************************************************************
void glutMenuStatusFunc(void (*func)(int status, int x,
int y));
设置菜单状态回调函数
参数:
func:形如void func(int status, int x, int y);
status:当前是否使用菜单,为以下定义的常量
GLUT_MENU_IN_USE:菜单正在使用
GLUT_MENU_NOT_IN_USE:菜单未被使用
x,y:鼠标按下时,光标相对于窗口左上角的位置
这个函数调用时glut程序判定是否正在使用菜单,当弹出菜单时,调用注册的菜单状态回调函数,同时status设置为常量GLUT_MENU_IN_USE,当菜单使用完毕时,也调用菜单状态回调函数,此时status变量变为GLUT_MENU_NOT_IN_USE.从已弹出的菜单中再弹出的菜单不产生菜单状态回调过程.每个glut程序只有一个菜单状态回调函数.
此函数与上面一个函数相比,只是多传了一个光标位置,其他相同.
//*******************************************************************************************
void glutSpecialFunc(void (*func)(int key, int x, int
y));
设置当前窗口的特定键的回调函数
参数:
Func:形如void func(int key, int x, int y);
key:按下的特定键,为以下定义的常量
GLUT_KEY_F1:F1功能键
GLUT_KEY_F2:F2功能键
GLUT_KEY_F3:F3功能键
GLUT_KEY_F4:F4功能键
GLUT_KEY_F5:F5功能键
GLUT_KEY_F6:F6功能键
GLUT_KEY_F7:F7功能键
GLUT_KEY_F8:F8功能键
GLUT_KEY_F9:F9功能键
GLUT_KEY_F10:F10功能键
GLUT_KEY_F11:F11功能键
GLUT_KEY_F12:F12功能键
GLUT_KEY_LEFT:左方向键
GLUT_KEY_UP:上方向键
GLUT_KEY_RIGHT:右方向键
GLUT_KEY_DOWN:下方向键
GLUT_KEY_PAGE_UP:PageUp键
GLUT_KEY_PAGE_DOWN:PageDown键
GLUT_KEY_HOME:Home键
GLUT_KEY_END:End键
GLUT_KEY_INSERT:Insert键
x,y:当按下键时鼠标的坐标,相对于窗口左上角,以像素为单位
注意:ESC,回车和delete键由ASCII码产生,即可以用glutKeyboardFunc()处理.
当在键盘上敲击上述按键时调用该函数.注意与glutKeyboardFunc()的区别.
//*******************************************************************************************
void glutSpaceballMotionFunc(void (*func)(int x, int y,
int z));
注册一个当前窗口的spaceball平移的回调函数
参数:
func:形如void func(int x, int y, int z);
x,y,z:spaceball的三维空间坐标.
paceball即一种特殊的带3D滚轮的鼠标,不仅可以前后转动,更可以在三维空间里滚动,具体图片,可以在百度里搜索.
当spaceball在当前注册的窗口内平移时,调用该函数.
//*******************************************************************************************
void glutSpaceballRotateFunc(void (*func)(int x, int y,
int z));
注册一个当前窗口的spaceball转动的回调函数
参数:
func:形如void func(int x, int y, int z);
当spaceball在当前注册的窗口内滚动时调用.
//*******************************************************************************************
void glutSpaceballButtonFunc(void (*func)(int button,
int state));
注册当前窗口的spaceball的按键回调函数.
参数:
func:形如void func(int button, int state);
button:按键编号,从1开始,可用的按键编号可以通过glutDeviceGet(GLUT_NUM_SPACEBALL_BUTTONS)查询.

state:按键状态
GLUT_UP:按键释放
GLUT_DOWN:按键按下

当spaceball在当前窗口中敲击相应的按键时调用.
//*******************************************************************************************
void glutButtonBoxFunc(void (*func)(int button, int
state));

注册当前窗口的拨号按键盒按键回调函数

参数:
func:形如void func(int button, int state);
button:按键编号,从1开始,可用的按键号可通过glutDeviceGet(GLUT_NUM_BUTTON_BOX_BUTTONS)查询

state:按键状态
GLUT_UP:按键释放
GLUT_DOWN:按键按下

当拨号按键盒按键被按下时调用.
//*******************************************************************************************
void glutDialsFunc(void
(*func)(int dial, int value));
注册当前窗口的拨号按键盒拨号回调函数.
参数:
func:形如void func(int dial, value);
dial:dial的编号,从1开始,可通过glutDeviceGet(GLUT_NUM_DIALS)查询可用编号.
value:dial所拨的值,value是每次所拨的值的累加,直到溢出.
当拨号按键盒拨号时被调用.
//*******************************************************************************************
void glutTabletMotionFunc(void (*func)(int x, int
y));
注册图形板移动回调函数
参数:
func:形如void func(int x, int y);
x,y:图形板移动的坐标.
当图形板移动时调用.

//******************************************************************************************

void glutTabletButtonFunc(void (*func)(int button, int
state, int x, int y));
注册当前窗口的图形板按键回调函数
参数:
func:形如void func(int button, int state, int x, int y);
button:按键号,通过glutDeviceGet(GLUT_NUM_TABLET_BUTTONS)查询可用键号.
state:按键状态.
GLUT_UP:按键被按下
GLUT_DOWN:按键被释放
x,y:当按键状态改变时,相对于窗口的坐标.

//******************************************************************************************

void glutOverlayDisplayFunc(void
(*func)(void));
注册当前窗口的重叠层的显示回调函数
参数:
func:形如void func(void);指向重叠层的显示回调函数.
这个函数告诉GLUT当窗口内容必须被绘制时,那个函数将被调用.当窗口改变大小或者从被覆盖的状态中恢复,或者由于调用glutPostOverlayRedisplay()函数要求GLUT更新时,执行func参数指定的函数.
//*******************************************************************************************
void glutWindowStatusFunc(void (*func)(int
state));
注册当前窗口状态的回调函数.
参数:
func:形如void func(int state);
state:窗口状态.
GLUT_HIDDEN:窗口不可见
GLUT_FULLY_RETAINED:窗口完全未被遮挡
GLUT_PARTIALLY_RETAINED:窗口部分遮挡
GLUT_FULLY_COVERED:窗口被全部遮挡
当窗口状态发生相应改变时调用.
//*******************************************************************************************
void glutKeyboardUpFunc(void (*func)(unsigned char key,
int x, int y));
注册释放普通按键的回调函数
参数:
func:形如void func(unsigned char key, int x, int y);
key:按键的ASCII码.
x,y:释放按键时鼠标相对于窗口的位置,以像素为单位.
当普通按键被释放时调用.
//*******************************************************************************************
void glutSpecialUpFunc(void (*func)(int key, int x, int
y));
注册释放特殊按键的回调函数
参数:
func:形如void func(int key, int x, int y);
key:特殊按键的标识
GLUT_KEY_F1:F1功能键
GLUT_KEY_F2:F2功能键
GLUT_KEY_F3:F3功能键
GLUT_KEY_F4:F4功能键
GLUT_KEY_F5:F5功能键
GLUT_KEY_F6:F6功能键
GLUT_KEY_F7:F7功能键
GLUT_KEY_F8:F8功能键
GLUT_KEY_F9:F9功能键
GLUT_KEY_F10:F10功能键
GLUT_KEY_F11:F11功能键
GLUT_KEY_F12:F12功能键
GLUT_KEY_LEFT:左方向键
GLUT_KEY_UP:上方向键
GLUT_KEY_RIGHT:右方向键
GLUT_KEY_DOWN:下方向键
GLUT_KEY_PAGE_UP:PageUp键
GLUT_KEY_PAGE_DOWN:PageDown键
GLUT_KEY_HOME:Home键
GLUT_KEY_END:End键
GLUT_KEY_INSERT:Insert键
x,y:释放特殊按键时鼠标相对于窗口的位置,以像素为单位.
当特殊按键被释放时调用.

//******************************************************************************************

void glutJoystickFunc(void (*func)(unsigned int
buttonMask, int x, int y, int z), int pollInterval);
注册操纵杆的回调函数
参数:
buttonMask:操纵杆按键
GLUT_JOYSTICK_BUTTON_A
GLUT_JOYSTICK_BUTTON_B
GLUT_JOYSTICK_BUTTON_C
GLUT_JOYSTICK_BUTTON_D
x,y,z:操纵杆在三维空间内移动的位移量
pollInterval:确定检测操纵杆的间隔时间,其单位为毫秒.
该函数在两种情况下被调用:
1.在pollInterval所规定的时间间隔内调用.
2.在调用glutForceJoystickFunc()函数时调用一次glutJoystickFunc();
//*******************************************************************************************

Glut 回调函数小结的更多相关文章

  1. OpenGL的GLUT注册回调函数[转]

    OpenGL的注册回调函数 void glutDisplayFunc(void (*func)(void) ); 为当前窗口设置显示回调函数 void glutOverlayDisplayFunc(v ...

  2. Opengl中的GLUT下的回调函数

    void glutDisplayFunc(void (*func)(void)); 注册当前窗口的显示回调函数 参数: func:形为void func()的函数,完成具体的绘制操作 这个函数告诉GL ...

  3. $.ajax({})方法中的回调函数beforeSend,success,complete,error使用示例

    在与后台交互的时候,经常使用到jquery的$.ajax()方法来请求数据.回调函数用的比较多的是success,但是beforeSend.complete.error函数也是很有用的.下面是使用例子 ...

  4. jQuery的deferred对象详解 jquery回调函数

    http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html jQuery的 ...

  5. java基础-回调函数(callback)

    java基础-回调函数(callback) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数 ...

  6. js 回调函数 精析

      UpdateTime--2018年9月13日16点51分 1.什么是回调函数? 在JavaScript中,回调函数具体的定义为: 函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行 ...

  7. js中回调函数,promise 以及 async/await 的对比用法 对比!!!

    在编程项目中,我们常需要用到回调的做法来实现部分功能,那么在js中我们有哪些方法来实现回调的? 方法1:回调函数 首先要定义这个函数,然后才能利用回调函数来调用! login: function (f ...

  8. Objective-C学习笔记 利用协议实现回调函数

    来源:http://mobile.51cto.com/iphone-278354.htm Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然 ...

  9. C++-函数与指针的关系(回调函数)

    1.函数类型 C语言中的函数有自己特定的类型 函数的类型由返回值,参数类型和参数个数共同决定 ★ int add(int i, int j)的类型为int(int, int) C语言中通过typede ...

随机推荐

  1. 【转】【MMX】 基于MMX指令集的程序设计简介

    (一) MMX技术简介 Intel 公司的MMX™(多媒体增强指令集)技术可以大大提高应用程序对二维三维图形和图象的处理能力.Intel MMX技术可用于对大量数据和复杂数组进行的复杂处理,使用MMX ...

  2. [py]chr ord

    http://www.xuebuyuan.com/2067536.html 也可以help(ord)

  3. [转]C# WinForm treeview checkbox----递归算法利用

    在平常开发中,treeview的节点显示checkbox,若节点存在几级时,往往希望,选中父节点后,其子节点都要选中,如何实现勒,请看 using System; using System.Colle ...

  4. 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法

    今天遇到了这个问题, 电脑系统:vs2010 win7系统 iis7 我运行在iis中配置的那个网站后,报错:错误代码 0x800700b7 配置错误定义了重复的“system.web.extensi ...

  5. pandas groupby

    pandas.DataFrame.groupby DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, gr ...

  6. 字符串匹配(KMP算法)

    KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法. 举个例子来说,如果 ...

  7. TCP的三次握手和四次挥手

    置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<两个简单的Loading> 作者主页:myvin 博主QQ:851399101(点击QQ和博主发起临时 ...

  8. SQL脚本循环修改数据库字段类型

    数据库在设计的时候也许考虑不全面,导致某些字段类型不太准确.比如设计的时候是varchar(1024),但是实际使用的时候却发现太小了,装不下,于是需要修改字段类型为ntext什么的. 我最近就遇到了 ...

  9. 【JVM】模板解释器--如何根据字节码生成汇编码?

    1.背景 仅针对JVM的模板解释器: 如何根据opcode和寻址模式,将bytecode生成汇编码. 本文的示例中所使用的字节码和汇编码,请参见上篇博文:按值传递还是按引用? 2.寻址模式 本文不打算 ...

  10. grootJs 属性过滤器

    index10.html <html><head> <title>属性过滤器</title> <script src="jquery-1 ...