// A simple program for generating a raster of pixels

// C includes
#include <math.h>

// C++ includes
#include <iostream>

#ifdef WIN32                     
using namespace std;
#include <process.h>
#include <string.h>
#endif

// The local includes
#include <GL/gl.h>
#include <GL/glut.h>
#include "Image.h"

Image myImage(500, 500);	// create an raster buffer
// function prototypes
void makeImage(void);
void init(void);
void display(void);

// all this initialization can be used as is
int main(int argc, char *argv[]) {

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
  glutInitWindowSize(500, 500);
  glutInitWindowPosition(100, 100);
  glutCreateWindow(argv[0]);
  init(); 	// create image for display
  glutDisplayFunc(display);
  glutMainLoop();
  return(0);

}

// set up and create image
void init(void)	{
  glClearColor(0.0, 0.0, 0.0, 0.0);
  glShadeModel(GL_FLAT);
  makeImage();
  }

// just need to display image for now
void display(void)	{
  myImage.draw();
  }

// fill the raster buffer with values
void makeImage(void)	{
  int i;
  myImage.clear(128, 128, 128);
  for(i = 0; i < 400; i++)	{
      myImage.writePixel(i, i, 0, 0, 0);
      myImage.writePixel(i, 200, 255, 0, 0);
      myImage.writePixel(300, i, 0, 255, 0);
      }
   }

