【问题标题】:GLUT pop-up menus过剩弹出菜单
【发布时间】:2008-08-18 09:22:49
【问题描述】:

为我的 OpenGL 应用程序创建 GLUT 弹出菜单是否容易?如果是,怎么做?

【问题讨论】:

    标签: opengl glut menu


    【解决方案1】:

    使用 GLUT 创建和使用弹出菜单非常简单。下面是一个创建带有 4 个选项的弹出菜单的代码示例:

    // Menu items
    enum MENU_TYPE
    {
            MENU_FRONT,
            MENU_SPOT,
            MENU_BACK,
            MENU_BACK_FRONT,
    };
    
    // Assign a default value
    MENU_TYPE show = MENU_BACK_FRONT;
    
    // Menu handling function declaration
    void menu(int);
    
    int main()
    {
            // ...
    
            // Create a menu
            glutCreateMenu(menu);
    
            // Add menu items
            glutAddMenuEntry("Show Front", MENU_FRONT);
            glutAddMenuEntry("Show Back", MENU_BACK);
            glutAddMenuEntry("Spotlight", MENU_SPOT);
            glutAddMenuEntry("Blend 'em all", MENU_BACK_FRONT);
    
            // Associate a mouse button with menu
            glutAttachMenu(GLUT_RIGHT_BUTTON);
    
            // ...
    
            return;
    }
    
    // Menu handling function definition
    void menu(int item)
    {
            switch (item)
            {
            case MENU_FRONT:
            case MENU_SPOT:
            case MENU_DEPTH:
            case MENU_BACK:
            case MENU_BACK_FRONT:
                    {
                            show = (MENU_TYPE) item;
                    }
                    break;
            default:
                    {       /* Nothing */       }
                    break;
            }
    
            glutPostRedisplay();
    
            return;
    }
    

    【讨论】:

    • 这个菜单是在第一次点击时出现,第二次点击时消失,还是在按下时出现,在释放时消失?
    猜你喜欢
    • 2021-11-20
    • 2011-06-13
    • 2021-04-03
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多