Main
public class Main {
private static final int FPS_CAP = 120;
private static final int WIDTH = 1280;
private static final int HEIGHT = 720;
public static void main(String[] args) {
DisplayManager.createDisplay("Test", WIDTH, HEIGHT,false);
Camera camera = new Camera();
StaticShader shader = new StaticShader();
shader.start();
shader.loadProjectionMatrix(Utils.createProjectionMatrix((float)(Display.getWidth())/(float)(Display.getHeight()), 70f, 0.1f, 300));
shader.stop();
Texture grassTexture = Utils.loadTexture("stallTexture");
Model model = new Model(OBJLoader.loadObjModel("stall"));
model.setPosition(0, -2, -10);
Timer.start();
while (!Display.isCloseRequested()) {
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glClearColor(1,1,1,1);
//GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
//-----------------------
if(Keyboard.isKeyDown(Keyboard.KEY_W)){
camera.translate(0, 0, -0.1f);
}
if(Keyboard.isKeyDown(Keyboard.KEY_S)){
camera.translate(0, 0, 0.1f);
}
if(Keyboard.isKeyDown(Keyboard.KEY_A)){
camera.translate(-0.1f, 0, 0);
}
if(Keyboard.isKeyDown(Keyboard.KEY_D)){
camera.translate(0.1f, 0, 0);
}
shader.start();
{
model.increaseRotation(0, 0.01f, 0);
Matrix4f transformation = Utils.createTransformationMatrix3D(model.getPosition(), model.getRotation(), model.getScale());
shader.loadTransformationMatrix(transformation);
shader.loadViewMatrix(camera);
GL30.glBindVertexArray(model.getVertexArray().getVaoID());
{
GL20.glEnableVertexAttribArray(0);
GL20.glEnableVertexAttribArray(1);
GL20.glEnableVertexAttribArray(2);
{
GL13.glActiveTexture(GL13.GL_TEXTURE0);
GL11.glBindTexture(GL11.GL_TEXTURE_2D, grassTexture.getTextureID());
GL11.glDrawElements(GL11.GL_TRIANGLES, model.getVertexArray().getCount(), GL11.GL_UNSIGNED_INT, 0);
}
GL20.glDisableVertexAttribArray(2);
GL20.glDisableVertexAttribArray(1);
GL20.glDisableVertexAttribArray(0);
}
GL30.glBindVertexArray(0);
}
shader.stop();
//-----------------------
Timer.updateFPS(); // Updates FPS
DisplayManager.update(FPS_CAP);
}
DisposeManager.dispose();
DisplayManager.destroyDisplay();
}
}