Hello Imnotanerd,
I modified your code to make it work, so i added some lines wit // ADDED at the end, and some other comments. Hope it will help you.
package utils;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.util.glu.GLU;
import org.lwjgl.input.Keyboard;
public class game {
private boolean done = false;
private boolean fullscreen = false;
private final String windowTitle = "Lesson 1";
private boolean f1 = false;
private DisplayMode displayMode;
/**
* Everything starts and ends here. Takes 1 optional command line argument.
* If fullscreen is specified on the command line then fullscreen is used,
* otherwise windowed mode will be used.
*
* @param args
* command line arguments
*/
public static void main(String args[]) {
boolean fullscreen = false;
if (args.length > 0) {
if (args[0].equalsIgnoreCase("fullscreen")) {
fullscreen = true;
}
}
game gamez = new game();
gamez.run(fullscreen);
}
/**
* Launch point
*
* @param fullscreen
* boolean value, set to true to run in fullscreen mode
*/
public void run(boolean fullscreen) {
this.fullscreen = fullscreen;
try {
init();
while (!done) {
//mainloop();
render();
Display.update();
}
cleanup();
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
}
/**
* All updating is done here. Key and mouse polling as well as window
* closing and custom updates, such as AI.
*/
private void mainloop() {
if (Keyboard.isKeyDown(Keyboard.KEY_ESCAPE))
done = true;
if (Display.isCloseRequested())
done = true;
if (Keyboard.isKeyDown(Keyboard.KEY_F1)) {
f1 = true;
switchmode();
}
if (!Keyboard.isKeyDown(Keyboard.KEY_F1))
f1 = false;
}
private void switchmode() {
fullscreen = !fullscreen;
try {
Display.setFullscreen(fullscreen);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* For rendering all objects to the screen
*
* @return boolean for success or not
*/
private void render() {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity();
GLU.gluLookAt(0, 0, 50, 0, 0, 0, 0, 1, 0); // ADDED
GL11.glTranslatef(-1.5f, 0.0f, -6.0f);
GL11.glBegin(GL11.GL_TRIANGLES);
GL11.glVertex3f(0.0f, 1.0f, 0.0f);
GL11.glVertex3f(-1.0f, -1.0f, 0.0f);
GL11.glVertex3f(1.0f, -1.0f, 0.0f);
GL11.glEnd();
GL11.glTranslatef(3.0f, 0.0f, 0.0f);
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex3f(-1.0f, 1.0f, 0.0f);
GL11.glVertex3f(1.0f, 1.0f, 0.0f);
GL11.glVertex3f(1.0f, -1.0f, 0.0f);
GL11.glVertex3f(-1.0f, -1.0f, 0.0f);
GL11.glEnd();
// IMPORTANT for further (animation)
GL11.glFlush(); // ADDED
}
/**
* Create a window depending on whether fullscreen is selected
*
* @throws Exception
* Throws the Window.create() exception up the stack.
*/
private void createWindow() throws Exception {
Display.setFullscreen(fullscreen);
DisplayMode d[] = Display.getAvailableDisplayModes();
for (int i = 0; i < d.length; i++) {
if (d[i].getWidth() == 640 && d[i].getHeight() == 480 && d[i].getBitsPerPixel() == 32) {
displayMode = d[i];
break;
}
}
Display.setDisplayMode(displayMode);
Display.setTitle(windowTitle);
Display.create();
}
/**
* Do all initilization code here. Including Keyboard and OpenGL
*
* @throws Exception
* Passes any exceptions up to the main loop to be handled
*/
private void init() throws Exception {
createWindow();
initGL();
}
/**
* Initialize OpenGL
*
*/
private void initGL() {
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
//GL11.glClearDepth(1.0); // COMMENTED
GL11.glEnable(GL11.GL_DEPTH_TEST);
//GL11.glDepthFunc(GL11.GL_EQUAL); // COMMENTED
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
// NOT NECESSARY, but useful, in case you resize your window
GL11.glViewport(0, 0, 640, 480); // ADDED
// calculate the apsect ratio of the window
GLU.gluPerspective(45.0f, (float) displayMode.getWidth() / (float) displayMode.getHeight(), 0.1f, 100.0f);
GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);
// IMPORTANT to come back to model view
GL11.glMatrixMode(GL11.GL_MODELVIEW); // ADDED
GL11.glLoadIdentity(); // ADDED
}
/**
* Cleanup all the resources
*
*/
private void cleanup() {
Display.destroy();
}
}