Gambar saya 1280x800, dan ukuran layar saya 1280x800. Itu harus menggambar dengan sempurna. Saya membuat quad ukuran layar, dan mengatur tekstur agar sesuai dengan quad. Tapi sekarang ini menggambar tekstur persegi di sudut kiri atas layar saya yang keluar dari skala dan tidak cukup besar.
Saya tidak tahu mengapa itu tidak berhasil, saya sudah mencoba menulis ukuran tekstur yang lebih besar ketika menggambar dan sepertinya berhasil, tetapi saya tidak tahu mengapa itu tidak berhasil ketika menggambar pada sebuah 1280x800 quad.
Bagaimana cara membuat quad layar penuh?
Begini cara saya saat ini melakukannya:
Ini adalah OPENGL saya dan kode pengaturan tampilan:
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);
Ini adalah kode saya untuk menggambar quad bertekstur:
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();