00001 #include <GL/glut.h>
00002 #include <cstdlib>
00003
00004
00005 int main_window;
00006
00007 void init(void)
00008 {
00009 glClearColor (0.0, 0.0, 0.0, 0.0);
00010 glShadeModel(GL_SMOOTH);
00011 glEnable(GL_DEPTH_TEST);
00012 }
00013
00014
00015 void display(void)
00016 {
00017 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00018
00019 glMatrixMode(GL_MODELVIEW);
00020 glLoadIdentity();
00021
00022 glBegin(GL_TRIANGLES);
00023 {
00024 glVertex3f( -2, 0, -2 );
00025 glVertex3f( 2, 0, -2 );
00026 glVertex3f( 0, 2, -2 );
00027 }
00028 glEnd();
00029
00030 glutSwapBuffers();
00031 }
00032
00033
00034 void reshape(int w, int h)
00035 {
00036 glViewport(0, 0, (GLsizei) w, (GLsizei) h);
00037
00038 glMatrixMode(GL_PROJECTION);
00039 glLoadIdentity();
00040 gluPerspective(90, (GLfloat) w/(GLfloat) h, .5, 30.0);
00041 }
00042
00043
00044 void myGlutIdle( void )
00045 {
00046
00047
00048
00049 if ( glutGetWindow() != main_window )
00050 glutSetWindow(main_window);
00051
00052 glutPostRedisplay();
00053 }
00054
00055 void keyboard(unsigned char key, int x, int y)
00056 {
00057 if(key == 'q' || key == 'Q')
00058 exit(0);
00059 }
00060
00061
00062
00063 void mouse(int button, int state, int x, int y)
00064 {
00065
00066 if (button == GLUT_LEFT_BUTTON) {
00067 if (state == GLUT_DOWN) {
00068
00069 }
00070 }
00071
00072 }
00073
00074
00075 int main(int argc, char** argv)
00076 {
00077 glutInit(&argc, argv);
00078 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
00079 glutInitWindowSize(512, 512);
00080 glutInitWindowPosition(100, 100);
00081 main_window = glutCreateWindow(argv[0]);
00082
00083 init();
00084
00085 glutDisplayFunc(display);
00086 glutReshapeFunc(reshape);
00087 glutIdleFunc( myGlutIdle );
00088
00089 glutMouseFunc(mouse);
00090
00091 glutKeyboardFunc(keyboard);
00092
00093 glutMainLoop();
00094 return 0;
00095 }