zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python之字典
    Python之模块
    Python之字符串格式化
    结束循环
    循环
    C语言static和局部变量
    C static extern和全局变量
    extern static和函数
    C语言typedef
    C语言之文件包含
  • 原文地址:https://www.cnblogs.com/1024Planet/p/5644575.html
Copyright © 2011-2022 走看看