class GLEvent implements GLEventListener{
@Override
public void init(GLAutoDrawable drawable) {
}
@Override
public void dispose(GLAutoDrawable drawable) {
}
@Override
public void display(GLAutoDrawable drawable) {
}
@Override
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
}
}
display 가 렌더링될 때의 콜백 함수인 것으로 보인다. display 는 항상 콜백되는 것은 아니고 그래픽 뷰포트의 변화가 있을때만 다시 렌더링되는 것으로 보인다.
이렇게 만들어진 GLEvent 는 GLCanvas 를 만들고 이 Canvas 에 이벤트로 등록해야 한다.
GLCapabilities capabilities = new GLCapabilities(null);
GLCanvas canvas = new GLCanvas(capabilities);
canvas.addGLEventListener(new GLEvent());
이렇게 만들어진 canvas 는 JFrame 등에 구성요소로 추가해야한다.
JFrame frame = new JFrame("Example Project");
frame.setSize(500,500);
frame.add(canvas);
... 생략
다음 display 렌더 영역에서 GL2 클래스를 가져와 그림을 그리면 된다.
@Override
public void display(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
gl.glClearColor(0, 0, 255, 1);
gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glColor3f(1.0f, 1.0f, 1.0f);
gl.glBegin(GL2.GL_TRIANGLES);
gl.glVertex2f(-0.6f, -0.4f);
gl.glVertex2f(0.6f, -0.4f);
gl.glVertex2f(0.0f, 0.6f);
gl.glEnd();
}