import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.DisplayMode; import org.lwjgl.LWJGLException; /** No documentation for teh win! */ class Quads { float angle = 0.0f; private void initGL() { // Initialisering GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); GL11.glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glLoadIdentity(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); } private void display() { // Tegne trekant GL11.glClear(GL11.GL_COLOR_BUFFER_BIT); GL11.glPushMatrix(); GL11.glTranslatef(0.5f, 0.5f, 0.0f); float red = 0.5f; float green = 0.25f; float blue = 0.1f; for(int i = 0; i < 25; i++) { GL11.glRotatef(angle, 0.0f, 0.0f, 1.0f); GL11.glBegin(GL11.GL_QUADS); GL11.glColor3f(red, green, blue); GL11.glVertex2f(0.1f, 0.3f); red = switchColor(red); green = switchColor(green); blue = switchColor(blue); GL11.glColor3f(red, green, blue); GL11.glVertex2f(0.1f, -0.3f); red = switchColor(red); green = switchColor(green); blue = switchColor(blue); GL11.glColor3f(red, green, blue); GL11.glVertex2f(-0.1f, -0.3f); red = switchColor(red); green = switchColor(green); blue = switchColor(blue); GL11.glColor3f(red, green, blue); GL11.glVertex2f(-0.1f, 0.3f); GL11.glEnd(); } GL11.glPopMatrix(); GL11.glFlush(); angle += 0.005f; } private float switchColor(float color) { if (color == 0.5f) return 0.25f; if (color == 0.25f) return 0.1f; return 0.5f; } private void run() { init(); while (!Display.isCloseRequested()) { display(); Display.update(); } Display.destroy(); } private void init() { try { Display.setTitle("Spinning Quads!"); Display.setDisplayMode(new DisplayMode(512, 512)); Display.create(); } catch (LWJGLException e) { System.err.println("Could't create display. Exiting"); System.exit(0); } initGL(); } public static void main(String[] args) { new Quads().run(); } }