`
huozheleisi
  • 浏览: 1291356 次
文章分类
社区版块
存档分类
最新评论

GLUT-注册回调函数

 
阅读更多

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参数用来向这个注册的函数中传递参数.

分享到:
评论

相关推荐

    glut-3.7.6-bin

    3. 注册回调函数:GLUT提供了多种回调函数,如`glutDisplayFunc()`(显示回调)、`glutReshapeFunc()`(窗口大小改变回调)和`glutKeyboardFunc()`(键盘输入回调)等,需要根据需求注册这些函数。 4. 主循环:GLUT...

    开发openggl用到窗口管理库glut-windows系统

    `glutDisplayFunc(display)`用于注册一个回调函数,当需要更新窗口内容时会被调用。`display`函数内部会包含你的OpenGL绘图代码。 GLUT还支持各种输入处理。例如,通过`glutKeyboardFunc()`可以注册键盘事件处理...

    glut3.7.6库

    例如,`glutKeyboardFunc`可以注册一个回调函数来处理键盘事件,`glutMotionFunc`则用于处理鼠标拖动事件。 3. **几何体绘制**:GLUT库还包含了绘制基本几何体的函数,如球体、立方体、锥体和圆柱体。这些函数简化...

    GLUT 函数详解PDF

    3. glutDisplayFunc():注册一个回调函数,当需要更新窗口时,GLUT将调用这个函数进行绘制。这是实现OpenGL图形的主要入口点。 4. glutReshapeFunc():设置窗口大小改变时的回调函数,允许开发者根据新的窗口尺寸...

    GLUT Callback

    - 在注册回调函数之前,请确保已经正确地初始化了GLUT环境。 - 对于某些回调函数(如`glutKeyboardFunc`),需要注意鼠标位置坐标的原点可能与OpenGL视口的坐标原点不一致。 - 当使用GLUT时,需要遵循其事件驱动模型...

    opengl_glut 函数

    3. **glutDisplayFunc()**:注册一个回调函数,当需要重绘窗口时,GLUT会调用此函数。程序员在这个函数中实现绘制图形的代码。 4. **glutReshapeFunc()**:当窗口大小改变时,GLUT会调用此回调函数,让程序能够调整...

    GLUT的VC++实现

    - `glutKeyboardFunc(void (*func)(unsigned char key, int x, int y))`:注册键盘事件回调函数。 - `glutMainLoop()`:进入主循环,处理用户事件和窗口系统消息。 **4. 绘制基本图形** 在GLUT的显示回调函数中,...

    OpenGl- glut64位

    这里,`glutInit`初始化GLUT环境,`glutCreateWindow`创建一个窗口,`glClearColor`设置背景颜色,`glutDisplayFunc`注册显示回调函数,最后`glutMainLoop`启动主事件循环。 在64位环境下,需要注意的是,由于内存...

    opengl glut函数说明

    GLUT 库提供了一组函数来注册回调。例如,`glutIdleFunc` 函数用来注册空闲回调,`glutDisplayFunc` 函数用来注册显示回调。 GLUT 库提供了一组实用函数,用于简化 OpenGL 应用程序的开发。这些函数可以帮助开发者...

    glut鼠标交互例子

    总结来说,"glut鼠标交互例子"是一个基于GLUT库的简单教程,展示了如何通过鼠标回调函数实现用户交互,特别是用鼠标点击和拖动来画矩形。通过理解并扩展这个示例,你可以更好地掌握GLUT库的使用,以及在OpenGL环境下...

    图形函数库glut

    3. **注册回调函数**:如`glutDisplayFunc()`注册显示回调函数,`glutKeyboardFunc()`注册键盘事件处理函数。 4. **设置主循环**:调用`glutMainLoop()`启动GLUT的主循环,等待并处理事件。 5. **在回调函数中绘制...

    glut鼠标键盘简单例子

    2. 注册回调函数:为鼠标点击和键盘输入分配处理函数。 3. 主循环:`glutMainLoop()`开始无限循环,等待用户的输入和绘制命令。 4. 回调函数:定义处理鼠标点击和键盘输入的函数,根据事件更新场景或执行其他动作。 ...

    glut最新版本支持鼠标滚轴

    在GLUT中处理鼠标滚轴事件,你需要注册一个回调函数来响应特定的鼠标事件。GLUT提供了`glutMouseWheelFunc`函数来设置这个回调。当你调用这个函数并传递一个你定义的处理函数作为参数时,每当鼠标滚轮滚动,GLUT就会...

    glut的动画控制方法

    GLUT库提供了`glutTimerFunc`函数,可以设置一个延时后执行的回调函数。在动画中,我们可以利用这个功能定期更新画面,如每秒更新30次,使茶壶以一定的速度旋转。在定时器回调函数中,我们需要更新茶壶的旋转角度,...

    glut_data-3.7.tar.gz_beta_glut.tar.gz

    2. **事件处理**:GLUT库支持各种用户输入事件,如键盘事件(按下、释放键)、鼠标事件(点击、移动、滚轮滚动)以及窗口状态事件(窗口大小改变、暴露事件等),开发者可以通过注册回调函数来处理这些事件。...

    glut详细教程 + api

    3. `glutDisplayFunc()`:注册一个回调函数,该函数将在OpenGL窗口需要重绘时被调用。 4. `glutReshapeFunc()`:定义窗口大小改变时的回调函数,用于重新设置视口和投影矩阵。 5. `glutKeyboardFunc()` 和 `...

    openGL和glut两个库文件的API函数说明文档

    例如,`glutInit()` 初始化GLUT库,`glutCreateWindow()` 创建一个窗口,`glutDisplayFunc()` 注册显示回调函数,`glutKeyboardFunc()` 处理键盘输入事件,`glutTimerFunc()` 设置定时器。 在"opengl-API.CHM"中,...

    OpenGL 的glut 编程架构

    例如,我们可以使用`glutKeyboardFunc()`和`glutMouseFunc()`来注册键盘和鼠标回调函数,以便在用户按下特定键或点击鼠标时执行相应操作: ```c++ void keyboardCB(unsigned char key, int x, int y) { // 处理...

    GLUT37

    例如,你可以注册回调函数来响应特定的按键按下或释放,或者在窗口大小改变时更新图形的视口。 3. **几何对象绘制**:GLUT提供了多种预定义的几何形状,如立方体、球体、锥体和圆柱体等。这些函数可以帮助开发者...

    GLUT C++开发框架

    2. **设置回调函数**:为处理用户输入和渲染图形,需要定义并注册相应的GLUT回调函数,如`glutDisplayFunc()`、`glutReshapeFunc()`、`glutKeyboardFunc()`等。 3. **渲染图形**:在`glutDisplayFunc()`的回调函数中...

Global site tag (gtag.js) - Google Analytics