Mein Bild ist 1280x800 und meine Bildschirmgröße ist 1280x800. Es sollte perfekt zeichnen. Ich erstelle ein Quad von der Größe des Bildschirms und stelle die Textur so ein, dass sie zum Quad passt. Aber im Moment zeichnet es eine quadratische Textur in meiner oberen linken Ecke meines Bildschirms, die nicht maßstabsgetreu und nicht groß genug ist.
Ich weiß nicht, warum es nicht funktioniert. Ich habe versucht, die Textur beim Zeichnen größer zu schreiben, und es scheint irgendwie zu funktionieren, aber ich weiß nicht, warum es beim Zeichnen auf einer nicht funktioniert hat 1280x800 Quad.
Wie erstelle ich ein Vollbild-Quad?
So mache ich es derzeit:
Dies ist mein OPENGL- und Display-Setup-Code:
DisplayMode displayMode = null;
DisplayMode[] modes = Display.getAvailableDisplayModes();
for (int i = 0; i < modes.length; i++) {
if (modes[i].getWidth() == World.SCREEN_WIDTH && modes[i].getHeight() == World.SCREEN_HEIGHT && modes[i].isFullscreenCapable()) {
displayMode = modes[i];
}
}
Display.setDisplayMode(displayMode);
Display.setFullscreen(false);
Display.create();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, World.SCREEN_WIDTH, World.SCREEN_HEIGHT, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
Dies ist mein Code zum Zeichnen des strukturierten Quad:
background = TextureLoader.getTexture("PNG", new FileInputStream(new File("res/menu/background.png")));
glBindTexture(GL_TEXTURE_2D, background.getTextureID());
glPushMatrix();
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f(0, 0); // Upper left
glTexCoord2f(1, 0);
glVertex2f(World.SCREEN_WIDTH, 0); // Upper right
glTexCoord2f(1, 1);
glVertex2f(World.SCREEN_WIDTH, World.SCREEN_HEIGHT); // Lower right
glTexCoord2f(0, 1);
glVertex2f(0, World.SCREEN_HEIGHT); // Lower left
glEnd();
glPopMatrix();