Está en la página 1de 2

#include <windows.

h>
#include <GL/glut.h>
void dibuja_cuadro() // ponemos funcion por que son los mismos cuadros
{
glColor3f(1.0,0.0,0.0);
glBegin(GL_QUADS);
glVertex2f(-20.0,20.0);
glVertex2f(20.0,20.0);
glVertex2f(20.0,-20.0);
glVertex2f(-20.0,-20.0);
glEnd();
}
void display_cb (void) {
glClear (GL_COLOR_BUFFER_BIT);
//ejemplo de viewport cuadro a la izq
glViewport(0,300,300,300);
glMatrixMode(GL_PROJECTION);// se pone para que no se modifique no se pi
erda el dibujo
glLoadIdentity();// se pone para que no se modifique no se pierda el dib
ujo
gluOrtho2D(-100,100,-100,100);// se pone para que no se modifique no se
pierda el dibujo
glMatrixMode(GL_MODELVIEW);
dibuja_cuadro();
//ejemplo de viewport cuadro a la izq
glViewport(300,300,300,300);
glMatrixMode(GL_PROJECTION);// se pone para que no se modifique no se pi
erda el dibujo
glLoadIdentity();// se pone para que no se modifique no se pierda el dib
ujo
gluOrtho2D(-100,100,-100,100);// se pone para que no se modifique no se
pierda el dibujo
glMatrixMode(GL_MODELVIEW);
dibuja_cuadro();
//ejemplo de viewport cuadro a la derecha
glViewport(300,0,300,300);
glMatrixMode(GL_PROJECTION);// se pone para que no se modifique no se pi
erda el dibujo
glLoadIdentity();// se pone para que no se modifique no se pierda el dib
ujo
gluOrtho2D(-100,100,-100,100);// se pone para que no se modifique no se
pierda el dibujo
glMatrixMode(GL_MODELVIEW);
dibuja_cuadro();
//ejemplo de viewport cuadro a la izq
glViewport(0,0,300,300);
glMatrixMode(GL_PROJECTION);// se pone para que no se modifique no se pi
erda el dibujo
glLoadIdentity();// se pone para que no se modifique no se pierda el dib
ujo
gluOrtho2D(-100,100,-100,100);// se pone para que no se modifique no se

pierda el dibujo
glMatrixMode(GL_MODELVIEW);
dibuja_cuadro();
glFlush();
}
void inicializacion (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
//ejemplo 1: para visualizar el cuadrado en el centro
//gluOrtho2D(-100,100,-100,100);
//ejemplo 2: para visualizar el cuadrado en la esquina inferior derecha
//gluOrtho2D(-180,20,-20,180);
//ejemplo 3: para visualizar el cuadrado en la esquina superior izquierd
a
//gluOrtho2D(-20,180,-180,20);
//ejemplo 4: para visualizar el cuadrado llenando toda la ventana
//gluOrtho2D(-20,20,-20,20);
//ejemplo 5: ortho ajustado a la proporcin de una ventana de 800x300
//gluOrtho2D(-100,100,-37.59,37.59);
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
//Ortho para ejemplos 1,2,3 y 4.
glutInitWindowSize(600,600);
//Cambio de tamao de la ventana para el ejemplo 5
//glutInitWindowSize (800, 300);
glutCreateWindow ("Uso de gluOrtho2D - glViewport");
glutDisplayFunc (display_cb);
inicializacion();
glutMainLoop();
return 0;
}

También podría gustarte