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;
}
Exemple #2
0
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;
}