OpenGL的GLUT注册回调函数[转]
OpenGL的注册回调函数
void glutDisplayFunc(void (*func)(void) );
为当前窗口设置显示回调函数
void glutOverlayDisplayFunc(void (*func)(void) );
注册当前窗口的重叠层的显示回调函数
void glutReshapeFunc(void (*Func)(int width, int height) );
指定当窗口的大小改变时调用的函数
void glutKeyboardFunc(void (*func) (unsigned char key, int x, int y) );
注册当前窗口的键盘回调函数
void glutMouseFunc(void (*func) (int button, int state, int x, int y));
注册当前窗口的鼠标回调函数
func为注册的鼠标回调函数,这个函数完成鼠标事件的处理
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));
void glutPassiveMotionFunc(void (*func)(int x, int y));
设置移动回调函数;设置当前鼠标移动函数
Func为注册的鼠标移动函数
x,y为鼠标按下式,光标相对于窗口左上角的位置
当鼠标在窗口中按下并移动时调用glutMotionFunc注册的回调函数
当鼠标在窗口中移动时调用glutPassiveMotionFunc注册的回调函数
void glutVisibilityFunc(void (*func) (int state) );
设置当前窗口的可视回调函数
Func为指定的可视回调函数
state表示窗口的可视性,为以下常量:
|
GLUT_NOT_VISIBLE |
窗口完全不可见 |
|
GLUT_VISIBLE |
窗口可见或部分可见 |
这个函数设置当前窗口的可视回调函数,当窗口的可视性改变时,该窗口的可视回调函数被调用.只要窗口中的任何一个像素是可见的,或者他的任意一个子窗口中任意一个像素是可见的,GLUT则认为窗口是可见的.
void glutEntryFunc(void (*func) (int state));
设置鼠标的进出窗口的回调函数
Func为注册的鼠标进出回调函数
state为鼠标的进出状态,为以下常量之一:
|
GLUT_LEFT |
鼠标离开窗口 |
|
GLUT_RIGHT |
鼠标进入窗口 |
当窗口取得焦点或失去焦点时调用这个函数,当鼠标进入窗口区域并点击时,state为GLUT_RIGHT,当鼠标离开窗口区域点击其他窗口时,state为GLUT_LEFT.
void glutSpecialFunc(void (*func) (int key, int x, int y))
设置当前窗口的特定键的回调函数
Func为注册的特定键的回调函数
key为按下的特定键,为以下定义的常量:
|
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码产生.
void glutMenuStatusFunc(void (*func) (int status, int x, int y));
设置菜单状态回调函数
func是注册的菜单状态回调函数
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程序只有一个菜单状态回调函数.
glutSpaceballRotateFunc
glutSpaceballButtonFunc
glutButtonBoxFunc
glutDialsFunc
glutTabletMotionFunc
glutTabletButtonFunc
void glutMenuStatusFunc(void (*func) (int status, int x, int y));
设置菜单状态回调函数
func为注册的菜单状态回调函数
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 glutIdleFunc(void (*func) (void));
设置空闲回调函数
func表示当系统空闲时调用的函数,它的形式为void func(void)
void glutTimerFunc(unsigned int msecs, void (*Func)(int value), int value);
注册一个回调函数,当指定时间值到达后,由GLUT调用注册的函数一次
msecs是等待的时间
Func是注册的函数
value是指定的一个数值,用来传递到回调函数Func中
这个函数注册了一个回调函数,当指定的毫秒数到达后,这个函数就调用注册的函数,value参数用来向这个注册的函数中传递参数.
转至:http://blog.csdn.net/augusdi/article/details/7076760
OpenGL的GLUT注册回调函数[转]的更多相关文章
- 计算机基础,Python - 回调函数,使用装饰器注册回调函数
1. 参考: https://en.wikipedia.org/wiki/Callback_(computer_programming) https://developer.mozilla.org/e ...
- cocos2d-x 2.2.0 如何在lua中注册回调函数给C++
cocos2d-x内部使用tolua进行lua绑定,但是引擎并没有提供一个通用的接口让我们可以把一个lua函数注册给C++层面的回调事件.翻看引擎的lua绑定代码,我们可以仿照引擎中的方法来做.值得吐 ...
- Java回调函数
维基百科上的定义:在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 所谓回调,就是客户程序C调用服务程 ...
- android 回调函数一:基本概念
1.概念 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数. 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C ...
- 转Java 回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C ...
- C++之------回调函数
一:What?(什么是回调函数) 回调函数图文讲解 谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数. 例如Win32 ...
- C语言中的回调函数
C语言中通过函数指针实现回调函数(Callback Function) ====== 首先使用typedef定义回调函数类型 ====== typedef void (*event_cb_t)(co ...
- Java回调函数的理解
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C ...
- java中回调函数的理解
一,案例一 "通常大家说的回调函数一般就是按照别人(李四)的定好的接口规范写,等待别人(张三)调用的函数,在C语言中,回调函数通常通过函数指针来传递:在Java中,通常就是编写另外一个类或类 ...
随机推荐
- 解决浏览器使用<pre></pre>时不换行
<!-- 解决火狐浏览器中pre标签不换行 --> <style type="text/css"> pre { white-space: pre-wrap; ...
- C++析构函数定义为虚函数(转载)
转载:http://blog.csdn.net/alane1986/article/details/6902233 析构函数执行时先调用派生类的析构函数,其次才调用基类的析构函数.如果析构函数不是虚函 ...
- Python3基础 三元表达式实例
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- C#之winform基础 button1_Click(object sender, EventArgs e)中sender是啥及其用法
镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.---------------------------- ...
- JS常用的腳本庫--包括在線編輯器
原文链接 一.基本库 1.jQuery a.简介 JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, F ...
- C++实现链式栈,运用模板,界面友好,操作方便,运行流畅
//.h文件 #ifndef STACK_H #define STACK_H #include<iostream> #include<iomanip> using namesp ...
- 【转载】Linux的进程间通信-信号量
原文:Linux的进程间通信-信号量 Linux的进程间通信-信号量 版权声明: 本文章内容在非商业使用前提下可无需授权任意转载.发布. 转载.发布请务必注明作者和其微博.微信公众号地址,以便读者询问 ...
- which、whereis、locate、find 命令用法
which.whereis.locate.find 命令用法 大部分转自http://312788172.iteye.com/blog/730280,有修改 我们经常在linux要查找某个文件,但 ...
- Servlet技术
Java Applet和Java Servlet都有一个共同特点: 它们都不是独立的应用程序,都没有main( )方法: 它们都不是由用户或者程序员直接调用,而是生存在容器中,由容器管理,Applet ...
- 将文件读取到内存、打印pe结构
#include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <string.h&g ...