#include <GL/glut.h>

// Función de dibujo
void display() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // Matriz de modelo-vista
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    // Cámara simple
    gluLookAt(0.0, 0.0, 5.0,   // posición del ojo
              0.0, 0.0, 0.0,   // punto al que mira
              0.0, 1.0, 0.0);  // vector "arriba"

    // Dibujar triángulo rojo
    glBegin(GL_TRIANGLES);
        glColor3f(1.0f, 0.0f, 0.0f); // rojo
        glVertex3f(-1.0f, -1.0f, 0.0f);
        glVertex3f( 1.0f, -1.0f, 0.0f);
        glVertex3f( 0.0f,  1.0f, 0.0f);
    glEnd();

    glutSwapBuffers();
}

// Configuración inicial
void init() {
    glEnable(GL_DEPTH_TEST);
    glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
}

// Redimensionar ventana
void reshape(int w, int h) {
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(60.0, (float)w / h, 0.1, 100.0);
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("Triangulo Rojo 3D");

    init();

    glutDisplayFunc(display);
    glutReshapeFunc(reshape);

    glutMainLoop();
    return 0;
}

