Sometime I need a minimalist program to start with for doing some experiment in OpenGL using c++. I always loose time searching or writing such minimalist program. So I post one here.
#include <GL/glut.h>
int win_w = 800;
int win_h = 600;
void resize(int w, int h)
{
win_w = w; win_h = h;
glViewport(0,0, win_w, win_h);
}
void draw(void)
{
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(80, win_w / (float)win_h, 1.0, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0,0,-2);
glutSolidTeapot(1.0f);
glutSwapBuffers();
}
void keyboard(unsigned char key, int x, int y)
{
glutPostRedisplay ();
}
int main(int argc, char **argv)
{
/* Set window size and location */
glutInit(&argc, argv);
glutInitWindowSize(640, 480);
glutInitWindowPosition(0, 0);
/* Select type of Display mode:
double buffer & RGBA color */
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
/*Initialize GLUT state */
glutCreateWindow("OpenGL Tea Pot");
glutDisplayFunc( draw );
glutReshapeFunc( resize );
glutKeyboardFunc ( keyboard );
glutMainLoop();
return 0;
}
And to compile it:
g++ main.cc -lGL -lGLU -lglut -o main
