// To Do List: // Add Shading #include "stdafx.h" #include #include void display(); void init(); const int Width = 720; const int Height = 480; // prototype void DisplayGrid(float MaxOrthoView, float MinOrthoView); void main(int argc, char** argv) { float MaxOrthoView = 720; float MinOrthoView = 480; DisplayGrid(MaxOrthoView, MinOrthoView); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(Width,Height); glutInitWindowPosition(0,0); glutCreateWindow("NES"); glutDisplayFunc(display); init(); glutMainLoop(); return; } void display() { float linePos; int i; glClear(GL_COLOR_BUFFER_BIT); /****************************/ //Light Grey Box /****************************/ glBegin(GL_POLYGON); glColor3f(.0,.0,.0); //4 glVertex2f(-4.0,5.0); glColor3f(.0,.0,.0); //3 glVertex2f(10.0,5.0); glColor3f(.68,.68,.68); //2 glVertex2f(10.0,-6.0); glColor3f(.68,.68,.68); //1 glVertex2f(-4.0,-6.0); glEnd(); /****************************/ //Dark Grey Parrellgram thing /****************************/ glBegin(GL_POLYGON); glColor3f(.39,.39,.39);//4 glVertex2f(-4.0,-6.0); glColor3f(.39,.39,.39); //3 glVertex2f(10.0,-6.0); glColor3f(.39,.39,.39); //2 glVertex2f(9.0,-8.0); glColor3f(.39,.39,.39); //1 glVertex2f(-3.0,-8.0); glEnd(); /****************************/ //Black Square #1 /****************************/ glBegin(GL_POLYGON); glColor3f(0,0,0); //1 glVertex2f(5.,3.0); glColor3f(0,0,0); //2 glVertex2f(7.,3.0); glColor3f(0,0,0); //3 glVertex2f(7.0,5.0); glColor3f(0,0,0); //4 glVertex2f(5.0,5.0); glEnd(); /****************************/ //Black Square #2 /****************************/ glBegin(GL_POLYGON); glColor3f(0,0,0); //1 glVertex2f(5.0,-8.0); glColor3f(0,0,0); //2 glVertex2f(7.0,-8.0); glColor3f(0,0,0); //3 glVertex2f(7.0,-2.0); glColor3f(0,0,0); //4 glVertex2f(5.0,-2.0); glEnd(); /****************************/ //Button #1 /****************************/ glBegin(GL_POLYGON); glColor3f(.35,.35,.35); glVertex2f(-2.0,-6.9); glColor3f(.35,.35,.35); glVertex2f(-1.0,-6.9); glColor3f(.35,.35,.35); glVertex2f(-1.0,-7.5); glColor3f(.35,.35,.35); glVertex2f(-2.0,-7.5); glEnd(); /****************************/ //Button #2 /****************************/ glBegin(GL_POLYGON); glColor3f(.35,.35,.35); glVertex2f(-.7,-6.9); glColor3f(.35,.35,.35); glVertex2f(.3,-6.9); glColor3f(.35,.35,.35); glVertex2f(.3,-7.5); glColor3f(.35,.35,.35); glVertex2f(-.7,-7.5); glEnd(); /****************************/ //Controller Slot #1 /****************************/ glBegin(GL_POLYGON); glColor3f(.14,.14,.14); glVertex2f(5.3,-6.6); glColor3f(.14,.14,.14); glVertex2f(5.8,-6.6); glColor3f(.14,.14,.14); glVertex2f(5.8,-7.4); glColor3f(.14,.14,.14); glVertex2f(5.3,-7.4); glEnd(); /****************************/ //Controller Slot #2 /****************************/ glBegin(GL_POLYGON); glColor3f(.14,.14,.14); glVertex2f(6.2,-6.6); glColor3f(.14,.14,.14); glVertex2f(6.7,-6.6); glColor3f(.14,.14,.14); glVertex2f(6.7,-7.4); glColor3f(.14,.14,.14); glVertex2f(6.2,-7.4); glEnd(); /****************************/ //Power LED Box /****************************/ glBegin(GL_POLYGON); glColor3f(0,0,0); glVertex2f(-2.4,-7.1); glColor3f(0,0,0); glVertex2f(-2.2,-7.1); glColor3f(0,0,0); glVertex2f(-2.2,-7.35); glColor3f(0,0,0); glVertex2f(-2.4,-7.35); glEnd(); /****************************/ //Lines /****************************/ for(linePos = .25; linePos < 5; linePos += .3) { glBegin(GL_LINES); glVertex3f(5, linePos-2, 0); glVertex3f(7, linePos-2, 0); glEnd(); } glBegin(GL_LINES); glVertex2f(5, 4); glVertex2f(5, -2); glEnd(); glBegin(GL_LINES); glVertex2f(7, 4); glVertex2f(7, -2); glEnd(); /****************************/ //Cartridge Lines /****************************/ glBegin(GL_LINES); glVertex2f(-3, -2.01); glVertex2f(5, -2.01); glEnd(); glBegin(GL_LINES); glVertex2f(-3, -2); glVertex2f(-3, -4); glEnd(); glBegin(GL_LINES); glColor3f(255,255,255); glVertex2f(-4, -4); glColor3f(255,255,255); glVertex2f(5, -4); glEnd(); glBegin(GL_LINES); glColor3f(255,255,255); glVertex2f(7, -4); glColor3f(255,255,255); glVertex2f(10, -4); glEnd(); glBegin(GL_LINES); glColor3f(0,0,0); glVertex2f(-3, -4); glVertex2f(-3, -5.3); glEnd(); glBegin(GL_LINES); glVertex2f(-3, -5.3); glVertex2f(0, -5.3); glEnd(); glBegin(GL_LINES); glVertex2f(0, -5.3); glVertex2f(5, -5.3); glEnd(); /****************************/ //Stiple Lines 1 - Left Side Below /****************************/ glLineWidth(2); glEnable (GL_LINE_STIPPLE); glLineStipple (1, -3644); glBegin (GL_LINE_STRIP); for(i= 0; i < 2; i++) { glColor3f(255,0, 0); glVertex2f (-2.5 + (i * 5.0), -5.0); } glEnd(); /****************************/ //Stiple Lines 2 - Left Side Above /****************************/ glLineWidth(4); glEnable (GL_LINE_STIPPLE); glLineStipple (1, -3644); glBegin (GL_LINE_STRIP); for(i= 0; i < 2; i++) { glColor3f(255,0, 0); glVertex2f (-2.5 + (i * 3.0), -4.6); } glEnd(); /****************************/ //Stiple Lines 3 - Left Button /****************************/ glLineWidth(1); glEnable (GL_LINE_STIPPLE); glLineStipple (1, -3644); glBegin (GL_LINE_STRIP); for(i= 0; i < 2; i++) { glColor3f(255,0, 0); glVertex2f (-1.9 + (i * 0.8), -7.25); } glEnd(); /****************************/ //Stiple Lines 4 - Right Button /****************************/ glLineWidth(1); glEnable (GL_LINE_STIPPLE); glLineStipple (1, -3644); glBegin (GL_LINE_STRIP); for(i= 0; i < 2; i++) { glColor3f(255,0, 0); glVertex2f (-0.6 + (i * 0.8), -7.25); } glEnd(); /****************************/ glFlush(); return; } void init() { glClearColor(.7,0.7,0.7,0.0); //sets clear color to black, alpha opacity to see through glColor3f(1.0,1.0,1.0); //sets the fill color to white glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-10.0,15.0,-10.0,10.0); return; } // function void DisplayGrid(float MaxOrthoView, float MinOrthoView) { // start points for verticle lines float PointAX = MinOrthoView; float PointAY = MinOrthoView; float PointBX = MinOrthoView; float PointBY = MaxOrthoView; // start points for horizontal lines float PointCX = MinOrthoView; float PointCY = MinOrthoView; float PointDX = MaxOrthoView; float PointDY = MinOrthoView; // incrament for for loop equal to the size of the grid int INC = MaxOrthoView + MaxOrthoView; glClear(GL_COLOR_BUFFER_BIT); // creates the verticle lines glBegin(GL_LINES); for( int i = 0; i < INC; i++) { glColor3f(1.0,1.0,1.0); glVertex2f(PointCX,PointCY); glColor3f(1.0,1.0,1.0); glVertex2f(PointDX,PointDY); PointCY++; PointDY++; } // creates the horizontal lines for( int i = 0; i < INC; i++) { glColor3f(1.0,1.0,1.0); glVertex2f(PointAX,PointAY); glColor3f(1.0,1.0,1.0); glVertex2f(PointBX,PointBY); PointAX++; PointBX++; } glEnd(); return; }