// OPEN_GL_test.cpp : Defines the entry point for the console application. // #include "stdafx.h" static float rotAngle = 0.; /* Initialize antialiasing for RGBA mode, including alpha * blending, hint, and line width. Print out implementation * specific info on line width granularity and width. */ void init(void) { GLfloat values[2]; glGetFloatv (GL_LINE_WIDTH_GRANULARITY, values); printf ("GL_LINE_WIDTH_GRANULARITY value is %3.1f\n", values[0]); glGetFloatv (GL_LINE_WIDTH_RANGE, values); printf ("GL_LINE_WIDTH_RANGE values are %3.1f %3.1f\n", values[0], values[1]); glEnable (GL_LINE_SMOOTH); glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE); glLineWidth (1.5); glClearColor(0.0, 0.0, 0.0, 0.0); } /* Draw 2 diagonal lines to form an X */ void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f (0.0, 1.0, 0.0); glPushMatrix(); glRotatef(-rotAngle, 0.0, 0.0, 0.1); glBegin (GL_LINES); glVertex2f (-0.5, 0.5); glVertex2f (0.5, -0.5); glEnd (); glPopMatrix(); glColor3f (0.0, 0.0, 1.0); glPushMatrix(); glRotatef(rotAngle, 0.0, 0.0, 0.1); glBegin (GL_LINES); glVertex2f (0.5, 0.5); glVertex2f (-0.5, -0.5); glEnd (); glPopMatrix(); glFlush(); } void reshape(int w, int h) { glViewport(0, 0, (GLint) w, (GLint) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h) gluOrtho2D (-1.0, 1.0, -1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w); else gluOrtho2D (-1.0*(GLfloat)w/(GLfloat)h, 1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 'r': case 'R': rotAngle += 20.; if (rotAngle >= 360.) rotAngle = 0.; glutPostRedisplay(); break; case 27: /* Escape Key */ exit(0); break; default: break; } } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (200, 200); glutCreateWindow (argv[0]); init(); glutReshapeFunc (reshape); glutKeyboardFunc (keyboard); glutDisplayFunc (display); glutMainLoop(); return 0; } // //#include //#include //#include //#include //#define RAMPSIZE 16 //#define RAMP1START 32 //#define RAMP2START 48 //static float rotAngle = 0.; ///* Initialize antialiasing for color-index mode, //* including loading a green color ramp starting //* at RAMP1START, and a blue color ramp starting //* at RAMP2START. The ramps must be a multiple of 16. //*/ //void init(void) //{ //int i; //for (i = 0; i < RAMPSIZE; i++) { //GLfloat shade; //shade = (GLfloat) i/(GLfloat) RAMPSIZE; //glutSetColor(RAMP1START+(GLint)i, 0., shade, 0.); //glutSetColor(RAMP2START+(GLint)i, 0., 0., shade); //} //glEnable (GL_LINE_SMOOTH); //glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE); //glLineWidth (1.5); //glClearIndex ((GLfloat) RAMP1START); //} ///* Draw 2 diagonal lines to form an X */ //void display(void) //{ //glClear(GL_COLOR_BUFFER_BIT); //glIndexi(RAMP1START); //glPushMatrix(); //glRotatef(-rotAngle, 0.0, 0.0, 0.1); //glBegin (GL_LINES); //glVertex2f (-0.5, 0.5); //glVertex2f (0.5, -0.5); //glEnd (); //glPopMatrix(); //glIndexi(RAMP2START); //glPushMatrix(); //glRotatef(rotAngle, 0.0, 0.0, 0.1); //glBegin (GL_LINES); //glVertex2f (0.5, 0.5); //glVertex2f (-0.5, -0.5); //glEnd (); //glPopMatrix(); //glFlush(); //} //void reshape(int w, int h) //{ //glViewport(0, 0, (GLsizei) w, (GLsizei) h); //glMatrixMode(GL_PROJECTION); //glLoadIdentity(); //if (w <= h) //gluOrtho2D (-1.0, 1.0, //-1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w); //else //gluOrtho2D (-1.0*(GLfloat)w/(GLfloat)h, //1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0); //glMatrixMode(GL_MODELVIEW); //glLoadIdentity(); //} //void keyboard(unsigned char key, int x, int y) //{ //switch (key) { //case `r': //case `R': //rotAngle += 20.; //if (rotAngle >= 360.) rotAngle = 0.; //glutPostRedisplay(); //break; //case 27: /* Escape Key */ //exit(0); //break; //default: //break; //} //} //int main(int argc, char** argv) //{ //glutInit(&argc, argv); //glutInitDisplayMode (GLUT_SINGLE | GLUT_INDEX); //glutInitWindowSize (200, 200); //glutCreateWindow (argv[0]); //init(); //glutReshapeFunc (reshape); //glutKeyboardFunc (keyboard); //glutDisplayFunc (display); //glutMainLoop(); //return 0; //}