Код
#include <iostream>
#include <GL/glut.h>
bool a;
bool b;
bool c;
void init(void)
{
glClearColor(0.5,0.5,0.5,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,1.0);
if(a)
{
glBegin(GL_POLYGON);
glVertex3f(0.0,0.0,0.0);
glVertex3f(1.0,0.0,0.0);
glVertex3f(0.5,1.0,0.0);
glEnd();
}
glColor3f(0.0,1.0,1.0);
if(b)
{
glBegin(GL_POLYGON);
glVertex3f(0.0,0.0,0.0);
glVertex3f(1.0,0.0,0.0);
glVertex3f(0.8,1.0,0.0);
glEnd();
}
glColor3f(0.0,1.0,0.0);
if(c)
{
glBegin(GL_POLYGON);
glVertex3f(0.0,0.0,0.0);
glVertex3f(1.0,0.0,0.0);
glVertex3f(0.2,1.0,0.0);
glEnd();
}
glFlush();
}
void mouse(int button,int state,int x,int y)
{
switch(button)
{
case GLUT_LEFT_BUTTON:
a = !a; break;
case GLUT_MIDDLE_BUTTON:
b = !b; break;
case GLUT_RIGHT_BUTTON:
c = !c; break;
}
}
void key(unsigned char k, int x, int y)
{
switch(k)
{
case 'F':
case 'f':std::cout << "вы нажали f"; break;
}
}
int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(800,600);
glutInitWindowPosition(100, 200);
glutCreateWindow("X-Ray engine v0.1");
init();
glutDisplayFunc(display);
glutIdleFunc(display);
glutMouseFunc(mouse);
// glutKeyboardFunc(key);
glutMainLoop();
return 0;
}