Code:
void Begin2DMode(vec2i size)
{
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0.0, size.x, size.y, 0.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
}
void End2DMode()
{
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
}
Pozovi Begin2DMode(dimenzija_ekrana) i posle toga je koordinata (0,0) gornji levi ugao ekrana/prozora. Vodi racuna da je Z postavljeno izmedju -1 i 1, tako da u glVertex3f pozivima vodi racuna da je Z izmedju -1 i 1. U suprotnom nista se nece videti na ekranu.
Kada zavrsis sa "2D modom", pozovi End2DMode() da bi se vratio u prethodno stanje.
Ja koristim ove func u situaciji kada zavrsim 3D rendering, a zatim zelim da prikazem neke dubug informacije (FPS, pozicija kamera, broj trouglova, ...)