Minha imagem é 1280x800 e o tamanho da tela é 1280x800. Deve desenhar perfeitamente. Estou criando um quad do tamanho da tela e definindo a textura para caber no quad. Mas agora ele desenha uma textura quadrada no canto superior esquerdo da tela que está fora de escala e não é grande o suficiente.
Não sei por que não funciona, tentei escrever o tamanho da textura maior ao desenhar e parece funcionar mais ou menos, mas não sei por que não funcionou ao desenhar em um Quad de 1280x800.
Como crio um quad em tela cheia?
Aqui está como eu estou fazendo isso atualmente:
Este é o meu OPENGL e o código de configuração da tela:
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 é o meu código para desenhar o quad texturizado:
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();