الأحد، 13 ديسمبر 2015

Menu - Open Gl

#include <glut.h>

float r=1.0, g=0.0, b=0.0;
void init(void)
{
  glClearColor(1.0, 1.0, 1.0, 0.0);

  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluOrtho2D(0.0,500.0,0.0,400.0);
}
void myLine(void)
{
 
 glClear( GL_COLOR_BUFFER_BIT );
  glColor3f(r, g, b);    
  glBegin(GL_LINES);
    glVertex2i(0, 0);
    glVertex2i( 200, 200);

  glEnd();

  glFlush();
}
void myTriangle(void)
{
 
glClear( GL_COLOR_BUFFER_BIT );
 glColor3f(r, g, b);    
  glBegin(GL_TRIANGLES);
    glVertex2i( 200, 200);
glVertex2i( 200, 300);
glVertex2i( 100, 250);
   
  glEnd();

  glFlush();
}
void mySquare(void)
{
 
glClear( GL_COLOR_BUFFER_BIT );
  glColor3f(r, g, b);    
  glBegin(GL_POLYGON);
    glVertex2i( 200, 200);
glVertex2i( 200, 400);
glVertex2i( 400, 400);
    glVertex2i( 400, 200);
  glEnd();

  glFlush();
}
void myDisplay(void)
{
  glClear( GL_COLOR_BUFFER_BIT );

}
//-------------------------------------------------------------------
void menu(int ms)
{
if (ms==1)
myLine();
if(ms==2)
myTriangle();
if(ms==3)
mySquare();
if(ms==4)
{
r=1.0;
g=0.0;
b=0.0;
}
if(ms==5)
{
r=0.0;
g=1.0;
b=0.0;
}
if(ms==6)
{
r=0.0;
g=0.0;
b=1.0;
}
if(ms==7)
exit(0);
}
void set_up_menu(void)
{
glutCreateMenu(menu);
    glutAddMenuEntry("Line",1);
glutAddMenuEntry("Triangle",2);
 glutAddMenuEntry("Square",3);
 glutAddMenuEntry("Red",4);
glutAddMenuEntry("Green",5);
 glutAddMenuEntry("Blue",6);
 glutAddMenuEntry("Exit",7);
 glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void main( int argc, char **argv)
{
  glutInit(&argc, argv); // Initialize GLUT
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB ); // Set display mode
  glutInitWindowPosition(100,200); // Set top-left display window position
  glutInitWindowSize(320,320); // Set display window width and height
  glutCreateWindow("An Example");// Create display window

  init();   // Execute initialization procedure
  glutDisplayFunc(myDisplay);
  set_up_menu();// Send graphics to display window
  glutMainLoop(); // Display everything and wait
}


ليست هناك تعليقات:

إرسال تعليق