opengl: Ändere den Ursprung in die obere linke Ecke

Ich habe Probleme, den openGL-Ursprung in der oberen linken Ecke der Ansicht festzulegen. Also mache ich in meinem Fenster-Resize-Handler etwas wie:

// ox and oy are some offsets and width and height are the 
// required viewport width and height
glViewport(ox, oy, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, width, 0, height, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Dies behält den Ursprung unten links und ich kann meine Textur rendern als:

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(0, 0); 
glTexCoord2f(1, 0); glVertex2f(width, 0);                            
glTexCoord2f(1, 1); glVertex2f(width, height);                      
glTexCoord2f(0, 1); glVertex2f(0, height);                 
glEnd();

Soweit ich die Seiten hier lesen kann, muss ich zum Umdrehen des Ursprungs einfach den glOrtho-Aufruf durch @ ersetze

glOrtho(0, width, height, 0, -1, 1);

Wenn Sie dies jedoch tun und den obigen Rendercode verwenden, wird meine Textur nicht mehr gerendert, und es wird nur ein leerer Bildschirm angezeigt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage