Пример#1 Создание меню и подменю
#include <glut.h>
static int window;
static int menu_id;
static int submenu_id;
static int value = 2;
void menu(int num){
if(num == 0){
glutDestroyWindow(window);
exit(0);
}
else
value = num;
glutPostRedisplay();
}
void createMenu(void){ submenu_id = glutCreateMenu(menu);
glutAddMenuEntry("Sphere", 2);
glutAddMenuEntry("Torus", 3);
glutAddMenuEntry("Teapot", 4); menu_id = glutCreateMenu(menu);
glutAddMenuEntry("Clear", 1);
glutAddSubMenu("Draw", submenu_id);
glutAddMenuEntry("Quit", 0);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void display(void){
glClear(GL_COLOR_BUFFER_BIT);
glColor3d(1.0, 0.0, 0.0);
if(value == 2)
glutWireSphere(0.5, 50, 50);
else if(value == 3)
glutWireTorus(0.3,0.6,100,100);
else if(value == 4)
glutSolidTeapot(0.5);
glFlush();
}
void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
window = glutCreateWindow("Example#1 - Menus and Submenus");
createMenu();
glClearColor(0.0,0.0,0.0,0.0);
glutDisplayFunc(display);
glutMainLoop();
}
Для самостоятельной работы:
1. Создайте меню с выбором цвета окна.
2. Создайте подменю с выбором угла поворота квадрата.