2011-03-07 52 views
0

正常情况下应该是这样的:如何分离器添加到右键菜单中的OpenGL/GLUT

glutAddMenuEntry("-", <opid>); 

但它不工作。在Google上查询后,我无法找到关于此的很多信息,也许使用GLUT是不可能的?我发现一对夫妇的例子一样:

glutAddMenuEntry("-", 0); 

glutAddMenuEntry("-", -1); 

但既不工作...

#include <math.h> 

#include <GL/glut.h> 

#define WINDOW_WIDTH 640 
#define WINDOW_HEIGHT 480 

void changeSize(int w, int h) { 
    if(h == 0) h = 1; 

    float ratio = 1.0 * w/h; 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 

    glViewport(0, 0, w, h); 

    gluPerspective(45.0f, ratio, 1.0f, 1000.0f); 

    glMatrixMode(GL_MODELVIEW); 
} 

void renderScene(void) { 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glLoadIdentity(); 

    gluLookAt(
     0.0, 0.0, 5.0, 
     0.0, 0.0, 0.0, 
     0.0f, 1.0f, 0.0f 
    ); 

    glutWireTeapot(1.0); 

    glutSwapBuffers(); 
} 

void processMenuEvents(int option) { 
} 

void main(int argc, char **argv) { 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); 
    glutInitWindowPosition(
     (glutGet(GLUT_SCREEN_WIDTH) - WINDOW_WIDTH)/2, 
     (glutGet(GLUT_SCREEN_HEIGHT) - WINDOW_HEIGHT)/2 
    ); 
    glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT); 
    glutCreateWindow("Camera Demo"); 

    glutDisplayFunc(renderScene); 
    glutReshapeFunc(changeSize); 

    glutCreateMenu(processMenuEvents); 

    glutAddMenuEntry("OPTION 1", 1); 
    glutAddMenuEntry("-", -1); 
    glutAddMenuEntry("OPTION 2", 2); 

    glutAttachMenu(GLUT_RIGHT_BUTTON); 

    glEnable(GL_DEPTH_TEST); 
    glEnable(GL_CULL_FACE); 

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 

    glutMainLoop(); 
} 

我没有看到像Windows分离器做其他项目,而不是我看到菜单项标签为短划线。

+0

'glutAddMenuEntry(“ - ”,-1);'对我很好。你能发布一个完整的,最简单的程序来证明问题吗? – genpfault 2011-03-07 20:13:00

+0

添加示例... – 2011-03-07 21:27:16

+0

不要忘记奖励赏金! :) – Goz 2011-03-13 11:52:54

回答

2

我只是三重检查了我所有关于GLUT的文档:GLUT不支持菜单分隔符!你可以做的最好的是使用一些字符串“----”或类似的分隔符,并忽略此菜单项的选择。

相关问题