int main(int argc, char **argv) { // init GLUT and create window glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(320,320); glutCreateWindow("Lighthouse3D - GLUT Tutorial"); // register callbacks glutDisplayFunc(renderScene); glutReshapeFunc(changeSize); glutIdleFunc(renderScene); glutIgnoreKeyRepeat(1); glutKeyboardFunc(processNormalKeys); glutSpecialFunc(pressKey); glutSpecialUpFunc(releaseKey); // here are the two new functions glutMouseFunc(mouseButton); glutMotionFunc(mouseMove); // OpenGL init glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); // init Menus createPopupMenus(); // enter GLUT event processing cycle glutMainLoop(); return 1; }
void init() { glutKeyboardFunc(normalKeyboard); glutSpecialFunc(specialKeyboard); glutIgnoreKeyRepeat(0); glutSpecialUpFunc(releaseKey); glutMouseFunc(mouseClick); glutMotionFunc(mouseActive); //glutPassiveMotionFunc(mousePassive); // init Menus createPopupMenus(); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); }
void main(int argc, char **argv) { glutInit( &argc, argv ); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH) ; glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); int windowHandle = glutCreateWindow("Comp390 TME 2 pt 1"); glutSetWindow(windowHandle); glutDisplayFunc( display ); glutReshapeFunc( reshape ); initialize(); // init Menus createPopupMenus(); glutMainLoop(); }
// entry point int main(int argc, char* argv[]) { // // create the glut window // glutInit (&argc, argv); glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH); glutInitWindowSize(1000, 600); glutInitWindowPosition(100,100); main_window = glutCreateWindow("Glut user Interface"); initGL(); // // set callbacks // glutDisplayFunc(myGlutDisplay); glutIgnoreKeyRepeat(1); GLUI_Master.set_glutKeyboardFunc(processNormalKeys); glutSpecialFunc(pressKey); glutSpecialUpFunc(releaseKey); // init Menus createPopupMenus(); glutAttachMenu (GLUT_RIGHT_BUTTON); GLUI_Master.set_glutReshapeFunc(myGlutReshape); GLUI_Master.set_glutIdleFunc(myGlutIdle); GLUI_Master.set_glutMouseFunc(myGlutMouse); glutMotionFunc(myGlutMotion); // // create the interface subwindow and add widgets // glui = GLUI_Master.create_glui_subwindow(main_window, GLUI_SUBWINDOW_RIGHT); // initialize live variables live_object_type = 0; live_object_xz_trans[0] = 0; live_object_xz_trans[1] = 0; live_object_y_trans = 0; live_draw_polygon = 1; live_draw_rectangle = 1; live_draw_square = 1; live_use_depth_buffer = 1; // quit button glui->add_button("Quit", 0, (GLUI_Update_CB)exit); // empty space glui->add_statictext(""); // the object rollout object_rollout = glui->add_rollout("Object"); // the radio buttons object_type_radio = glui->add_radiogroup_to_panel(object_rollout, &live_object_type); glui->add_radiobutton_to_group(object_type_radio, "polygon"); glui->add_radiobutton_to_group(object_type_radio, "Rectangle"); glui->add_radiobutton_to_group(object_type_radio, "Square"); glui->add_checkbox("x ", &live_draw_polygon); glui->add_checkbox("y", &live_draw_polygon); glui->add_checkbox("z", &live_draw_polygon); GLUI_Panel *transform_panel = glui->add_panel_to_panel(object_rollout, "", GLUI_PANEL_NONE); object_rotation = glui->add_rotation_to_panel(transform_panel, "Rotation", live_object_rotation); object_rotation->reset(); glui->add_column_to_panel(transform_panel, false); object_xz_trans = glui->add_translation_to_panel(transform_panel, "Translate XZ", GLUI_TRANSLATION_XY,live_object_xz_trans); glui->add_column_to_panel(transform_panel, false); object_y_trans = glui->add_translation_to_panel(transform_panel, "Translate Y", GLUI_TRANSLATION_Y,&live_object_y_trans); object_xz_trans->scale_factor = 0.1f; object_y_trans->scale_factor = 0.1f; glui->add_button_to_panel(object_rollout, "Reset Object Transform", CB_RESET, glui_cb); // empty space glui->add_statictext(""); // the walk control anim_rollout = glui->add_rollout("Animation"); action_button = glui->add_button_to_panel(anim_rollout, "Stop", CB_ACTION_BUTTON, glui_cb); GLUI_Spinner *spin_s = glui->add_spinner_to_panel(anim_rollout, "Speed", GLUI_SPINNER_FLOAT, &live_anim_speed); spin_s->set_float_limits(0.1, 10.0); // our checkbox options for deciding what to draw glui->add_checkbox("Draw Polygon", &live_draw_polygon); glui->add_checkbox("Draw Rectangle", &live_draw_rectangle); glui->add_checkbox("Draw Square", &live_draw_square); // empty space glui->add_statictext(""); glui->add_checkbox("Use Depth Buffer", &live_use_depth_buffer, CB_DEPTH_BUFFER, glui_cb); glui->add_statictext(""); glui->add_spinner_to_panel(anim_rollout, "Color", GLUI_SPINNER_FLOAT, &live_anim_color); glui->add_spinner_to_panel(anim_rollout, "Text", GLUI_SPINNER_FLOAT, &live_anim_color); glui->add_spinner_to_panel(anim_rollout, "Font", GLUI_SPINNER_FLOAT, &live_anim_color); glui->add_spinner_to_panel(anim_rollout, "Text-size", GLUI_SPINNER_FLOAT, &live_anim_speed); glui->set_main_gfx_window(main_window); // initialize the camera eye[0] = 0; eye[1] = 4; eye[2] = 10; lookat[0] = 0; lookat[1] = 0; lookat[2] = 0; // initialize gl glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); // give control over to glut glutMainLoop(); return 0; }