package net.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
import org.lwjgl.BufferUtils;
import org.lwjgl.LWJGLException;
import org.lwjgl.LWJGLUtil;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.ContextAttribs;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GL20;
import org.lwjgl.opengl.GL30;
import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.util.glu.GLU;
public class Main {
// Entry point for the application
public static void main(String[] args) {
System.setProperty("org.lwjgl.librarypath",
new File(new File(System.getProperty("user.dir"), "native"),
LWJGLUtil.getPlatformName()).getAbsolutePath());
new Main();
}
private final String WINDOW_TITLE = "CubeTest";
private final int WIDTH = 640;
private final int HEIGHT = 360;
private Container cont;
public Main() {
this.setupOpenGL();
cont = new Container(
new Vertex[] { new Vertex(0.0f, 0.5f, 0.0f),
new Vertex(-0.5f, -0.5f, 0.0f),
new Vertex(0.5f, -0.5f, 0.0f) }, new byte[] { 0, 1, 2 });
while (!Display.isCloseRequested()) {
this.loopCycle();
Display.sync(60);
Display.update();
}
cont.destroyResources();
Display.destroy();
}
public void setupOpenGL() {
try {
PixelFormat pixelFormat = new PixelFormat();
ContextAttribs contextAtrributes = new ContextAttribs(3, 0)
.withForwardCompatible(true);
Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
Display.setTitle(WINDOW_TITLE);
Display.create(pixelFormat, contextAtrributes);
GL11.glViewport(0, 0, WIDTH, HEIGHT);
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(-1);
}
GL11.glClearColor(0.4f, 0.6f, 0.9f, 0f);
GL11.glViewport(0, 0, WIDTH, HEIGHT);
}
public void loopCycle() {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
while (Keyboard.next()) {
if (Keyboard.getEventKeyState()) {
if (Keyboard.getEventKey() == Keyboard.KEY_A) {
cont.destroyResources();
cont = new Container(new Vertex[] {
new Vertex(0.0f, 0.5f, 0.0f),
new Vertex(-0.5f, -0.5f, 0.0f),
new Vertex(0.5f, -0.5f, 0.0f) }, new byte[] { 0, 1,
2 });
} else if (Keyboard.getEventKey() == Keyboard.KEY_S) {
cont.destroyResources();
cont = new Container(
new Vertex[] {
new Vertex(0.0f, 0.5f, 0.0f).setRGB(1,
0.5f, 0.2f),
new Vertex(-0.5f, -0.5f, 0.0f).setRGB(1,
0.5f, 0.2f),
new Vertex(0.5f, -0.5f, 0.0f).setRGB(1,
0.5f, 0.2f) },
new byte[] { 0, 1, 2 });
} else if (Keyboard.getEventKey() == Keyboard.KEY_D) {
cont.setVertices(new Vertex[] {
new Vertex(0.0f, 0.5f, 0.0f).setRGB(1, 0.5f, 0.2f),
new Vertex(-0.5f, -0.5f, 0.0f)
.setRGB(0.5f, 1, 0.2f),
new Vertex(0.5f, -0.5f, 0.0f).setRGB(0.2f, 0.5f, 1) });
cont.setIndices(new byte[] { 0, 1, 2 });
cont.updateResources();
} else if (Keyboard.getEventKey() == Keyboard.KEY_C) {
System.gc();
}
}
}
cont.render();
}
}