
//Create a black window in OpenGL (C/C++)


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <GL/glut.h> 

#define WIDTH 400
#define HEIGHT 400

#define RED 0
#define GREEN 0
#define BLUE 0
#define ALPHA 1

#define KEY_ESC 27


void initOpenGL();   
void init_scene();
void window_reshape(GLsizei width, GLsizei height);
void render_scene();
void window_display();
void window_key(unsigned char key, int x, int y); 


int main (int argc, char **argv)

{
	glutInit(&argc, argv);
             
	glutInitDisplayMode (GLUT_RGBA);

    	glutInitWindowSize(WIDTH, HEIGHT);

    	glutInitWindowPosition(0,0);

    	glutCreateWindow("BlackWindow");


	initOpenGL();  

	init_scene();

	glutDisplayFunc(&window_display);

	glutReshapeFunc(&window_reshape);
 
	glutKeyboardFunc(&window_key);

	glutMainLoop();  

	return 0;
}



//Functions implementations


void initOpenGL()   
{
	glClearColor(RED, GREEN, BLUE, ALPHA);   
}

void init_scene()
{
}

void window_reshape(GLsizei width, GLsizei height)
{
	glViewport(0, 0, width, height);

	glMatrixMode(GL_PROJECTION);

	glLoadIdentity();

	gluPerspective(45, (GLdouble)width/(GLdouble)height, 1, 10); 

	glMatrixMode(GL_MODELVIEW);
}

void render_scene()
{
}

void window_display()
{
  	glClear(GL_COLOR_BUFFER_BIT);

  	glLoadIdentity();

  	gluLookAt(0, 0, 5, 0, 0, 0, 0, 1, 0); 

  	render_scene();

  	glFlush();
}

void window_key(unsigned char key, int x, int y) 
{  
	switch (key) {    
	case KEY_ESC:  
		exit(1);                      
		break; 
    
	default:
		printf ("Pressing %d doesn't do anything.\n", key);
		break;
  }    
}









