Mi imagen es 1280x800 y el tamaño de mi pantalla es 1280x800. Debería dibujar perfectamente. Estoy creando un quad del tamaño de la pantalla y estableciendo la textura para que se ajuste al quad. Pero ahora dibuja una textura cuadrada en la esquina superior izquierda de mi pantalla que está fuera de escala y no es lo suficientemente grande.
No sé por qué no funciona, he intentado escribir el tamaño de la textura más grande al dibujar y parece funcionar más o menos, pero no sé por qué no funcionó al dibujar en un 1280x800 quad.
¿Cómo creo un quad de pantalla completa?
Así es como lo estoy haciendo actualmente:
Este es mi OPENGL y el código de configuración de pantalla:
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);
Este es mi código para dibujar el quad con textura:
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();