Glut 回调函数小结
注册当前窗口的显示回调函数
func:形为void func()的函数,完成具体的绘制操作
这个函数告诉GLUT当窗口内容必须被绘制时,那个函数将被调用.当窗口改变大小或者从被覆盖的状态
指定当窗口的大小改变时调用的函数
func:形如void func(int width, int height)
这个函数确定一个回调函数,每当窗口的大小或形状改变时(包括窗口第一次创建),GLUT将会调用这个
注册当前窗口的键盘回调函数
func:形如void func(unsigned char key, int x, int y)
key:按键的ASCII码
x,y:当按下键时鼠标的坐标,相对于窗口左上角,以像素为单位
当敲击键盘按键(除了特殊按键,即glutSpecialFunc()中处理的按键,详见glutSpecialFunc())时调用.
注册当前窗口的鼠标回调函数
参数:
func:形如void func(int button, int state, int x, int y);
GLUT_LEFT_BUTTON:鼠标左键
GLUT_MIDDLE_BUTTON:鼠标中键
GLUT_RIGHT_BUTTON:鼠标右键
state:鼠标按键的动作,为以下定义的常量
GLUT_UP:鼠标释放
GLUT_DOWN:鼠标按下
x,y:鼠标按下式,光标相对于窗口左上角的位置
当点击鼠标时调用.
当鼠标在窗口中按下并移动时调用glutMotionFunc注册的回调函数
void glutPassiveMotionFunc(void (*func)(int x, int y));
当鼠标在窗口中移动时调用glutPassiveMotionFunc注册的回调函数
参数:
func:形如void func(int x, int y);
设置鼠标的进出窗口的回调函数
参数:
func:形如void func(int state);注册的鼠标进出回调函数
state:鼠标的进出状态,为以下常量之一
GLUT_LEFT 鼠标离开窗口
GLUT_RIGHT 鼠标进入窗口
当窗口取得焦点或失去焦点时调用这个函数,当鼠标进入窗口区域并点击时,state为GLUT_RIGHT,当鼠标离开窗口区域点击其他窗口时,state为GLUT_LEFT.
设置当前窗口的可视回调函数
参数:
func:形如void func(int state);指定的可视回调函数
state:窗口的可视性,为以下常量
GLUT_NOT_VISIBLE 窗口完全不可见
GLUT_VISIBLE 窗口可见或部分可见
这个函数设置当前窗口的可视回调函数,当窗口的可视性改变时,该窗口的可视回调函数被调用.只要窗口中的任何一个像素是可见的,或者他的任意一个子窗口中任意一个像素是可见的,GLUT则认为窗口是可见的.
设置空闲回调函数
参数:
func:形如void func(void);
当系统空闲时调用.
注册一个回调函数,当指定时间值到达后,由GLUT调用注册的函数一次
参数:
millis:等待的时间,以毫秒为单位
unc:形如void func(int value)
value:指定的一个数值,用来传递到回调函数func中
这个函数注册了一个回调函数,当指定的毫秒数到达后,这个函数就调用注册的函数,value参数用来向这个注册的函数中传递参数. 但只能触发一次,若要连续触发,则需在func中重新设置计时函数glutTimerFunc();
注册菜单状态回调函数
参数:
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程序只有一个菜单状态回调函数. 此函数与上面一个函数相比,只是多传了一个光标位置,其他相同.
设置当前窗口的特定键的回调函数
参数:
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在当前注册的窗口内平移时,调用该函数.
注册一个当前窗口的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在当前窗口中敲击相应的按键时调用.
注册当前窗口的拨号按键盒按键回调函数
参数:
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是每次所拨的值的累加,直到溢出.
当拨号按键盒拨号时被调用.
注册图形板移动回调函数
参数:
func:形如void func(int x, int y);
x,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:当按键状态改变时,相对于窗口的坐标.
//******************************************************************************************
注册当前窗口的重叠层的显示回调函数
参数:
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:窗口被全部遮挡
当窗口状态发生相应改变时调用.
注册释放普通按键的回调函数
参数:
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:释放特殊按键时鼠标相对于窗口的位置,以像素为单位.
当特殊按键被释放时调用.
//******************************************************************************************
注册操纵杆的回调函数
参数:
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();
转载于:https://www.cnblogs.com/z-sm/p/3652266.html
Glut 回调函数小结相关推荐
- linux操作系统信号捕捉函数之回调函数小结
(1)signal 信号捕捉函数:注册一个信号捕捉函数(不参与捕捉,那是内核的事情) 函数实现: typedef void(*sighandler_t)(int); //声明了一个函数指针(代 ...
- GLUT及其函数的用法整理
GLUT - The OpenGL Utility Toolkit glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这 ...
- c语言回调函数_C语言学习第26篇---函数与指针分析 回调函数
函数类型的概念 1.C语言函数也是有类型的 2.函数类型由函数返回值,参数类型,参数个数共同决定 int add(int i,int j) 的类型是 int(int , int) 3.C语言中通过ty ...
- c语言调用go函数,C中调用go中的回调函数
在用go包装某些c库时(如glut),需要将go函数当作回调函数传递给c库(如glutDisplayFunc(&draw)中的draw函数,我想将go写的函数传过去),应该怎么做?我写了一个示 ...
- 【C/C 】浅谈C/C 中函数指针与回调函数
01.函数指针 1.1.函数指针定义 一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似.我们可以把函数的这个首地址(或称入口地址)赋予 ...
- pythonlambda回调函数_Python中如何借助lambda来给回调函数传参
开门见山,直接从一个例子开始,假设我们在写一个GUI界面,界面上有个按钮,其功能是点击它就能得到物品A的详细描述,对应的代码如下 detailButton.clicked.connect(self.s ...
- js 回调函数 精析
UpdateTime--2018年9月13日16点51分 1.什么是回调函数? 在JavaScript中,回调函数具体的定义为: 函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数 ...
- c++ error函数_回调函数地狱
学习异步JS的时候最头大的就是看到一层一层嵌套的函数回调.每次看到就一万个wtf/wth在心中飘过.当然,不仅我一个人这样.外国的同行称之为:Callback Hell---回调函数地狱.如果谷歌一下 ...
- Promise 对象 异步 then 回调函数
Promise 对象 概述 Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口.它起到代理作用(proxy),充当异步操作与回调函数之间的中介,使得异步操作具备同 ...
最新文章
- asp.net跳转并接收参数
- 修改mysql数据库服务器时间格式,修改本地mysql数据库时间格式
- 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.1.Linux是什么)
- python学习内容大全_python学习内容大全
- Resin 优化配置
- Unmarshaller解析xml文件
- mysql通过函数完成10的阶乘_请使用函数的递归调用编写求阶乘的函数,并计算1!+2!+3!+4!+5!...
- Linux网络编程——I/O复用函数之epoll
- 新技术刚测试就被全行业禁用,谷歌“杀死”Cookies真能重写规则吗?
- 存储过程 触发器 约束
- 《OKR工作法》读书笔记(转)
- 用c 语言创建web项目,使用Maven创建Web应用程序项目
- Unity MRTK(一)
- unity 录制游戏内视频(1)
- springboot+shiro+jwt
- Chapter 05 绘图基础
- 神经网络处理器异构加速,神经网络处理器的特点
- 极速office(Word)如何插入分数
- 跑分软件测试原理,只会比高低?教你三分钟看懂安兔兔跑分
- 最新数据库设计实战应用案例--合同管理系统 非常经典的数据库设计案例教学 数据库设计
热门文章
- 鸿蒙系统适配的电脑,鸿蒙来了!华为正式发布操作系统 适配手机电脑多类型设备...
- c mysql导入数据_MySQL 数据导入
- 机器学习、数据挖掘、计算机视觉等领域经典书籍推荐
- VS2008中的一些命令窗口
- 机器学习技术在植物病害识别中的对比分析(迁移学习做了基础实验)
- 模型保存的方法-----保存整个模型
- python requests网页爬取初探
- java asm methodvisitor 定义局部变量_Java ASM3学习(3)
- 计算机视觉(一)——深度学习
- 数据挖掘实践(金融风控)——task3:特征工程