@Override public void display(GLAutoDrawable drawable) { final GL3bc gl = drawable.getGL().getGL3bc(); float color = ((float) currentMode.ordinal() + 1) / (Mode.values().length + 2); gl.glClearColor(color, color, color, 0); gl.glClear(GL3.GL_COLOR_BUFFER_BIT | GL3.GL_DEPTH_BUFFER_BIT); gl.glUseProgram(progID); final Mode newMode; { currentModeIdx = (currentModeIdx + 1) % allModes.length; newMode = allModes[currentModeIdx]; } if (newMode != currentMode) { currentMode = newMode; System.out.println("Display mode: " + currentMode); } currentMode.display(this, gl); gl.glUseProgram(0); }