| Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/ |
| Current File : /var/www/html/venkat/check3/file/cg2013/pawan/RIT2013012.c |
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glut.h>
#define KEY_ESCAPE 27
typedef struct {
int width;
int height;
char* title;
float field_of_view_angle;
float z_near;
float z_far;
} glutWindow;
glutWindow win;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,-3.0f);
/*
* Triangle code starts here
* 3 verteces, 3 colors.
*/
glBegin(GL_TRIANGLES);
// glColor3f(0.0f,0.0f,1.0f);
glVertex3f( -1.0f, 1.0f, 0.0f);
// glColor3f(0.0f,1.0f,0.0f);
glVertex3f(1.0f,1.0f, 0.0f);
// glColor3f(1.0f,0.0f,0.0f);
glVertex3f( 0.0f,-1.0f, 0.0f);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(1.0f,1.0f,1.0f); ///////////
glVertex3f( -0.7f, 0.7f, 0.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(-0.1f,0.7f, 0.0f);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f( -0.1f,-0.5f, 0.0f);
glEnd();
glBegin(GL_TRIANGLES);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f( 0.1f, 0.7f, 0.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f(0.7f,0.7f, 0.0f);
glColor3f(1.0f,1.0f,0.0f); ///////////////////
glVertex3f( 0.1f,-0.5f, 0.0f);
glEnd();
glutSwapBuffers();
}
void initialize ()
{
glMatrixMode(GL_PROJECTION); // select projection matrix
glViewport(0, 0, win.width, win.height); // set the viewport
glMatrixMode(GL_PROJECTION); // set matrix mode
glLoadIdentity(); // reset projection matrix
GLfloat aspect = (GLfloat) win.width / win.height;
gluPerspective(win.field_of_view_angle, aspect, win.z_near, win.z_far); // set up a perspective projection matrix
glMatrixMode(GL_MODELVIEW); // specify which matrix is the current matrix
glShadeModel( GL_SMOOTH );
glClearDepth( 1.0f ); // specify the clear value for the depth buffer
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); // specify implementation-specific hints
glClearColor(0.0, 0.0, 0.0, 1.0); // specify clear values for the color buffers
}
void keyboard ( unsigned char key, int mousePositionX, int mousePositionY )
{
switch ( key )
{
case KEY_ESCAPE:
exit ( 0 );
break;
default:
break;
}
}
int main(int argc, char **argv)
{
// set window values
win.width = 640;
win.height = 600;
win.field_of_view_angle = 45;
win.z_near = 1.0f;
win.z_far = 300.0f;
// initialize and run program
glutInit(&argc, argv); // GLUT initialization
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH ); // Display Mode
glutInitWindowSize(win.width,win.height); // set window size
glutCreateWindow(win.title); // create Window
glutDisplayFunc(display); // register Display Function
glutIdleFunc( display ); // register Idle Function
glutKeyboardFunc( keyboard ); // register Keyboard Handler
initialize();
glutMainLoop(); // run GLUT mainloop
return 0;
}