본문 바로가기
Computer/JOGL

2. Draw Triangle

by DogBull 2007. 7. 29.

사용자 삽입 이미지

< 3개의 Vertex를 이용한 삼각형 >

import
javax.media.opengl.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends JFrame{ public Test(){ this.setSize(400, 300); this.setTitle("Test1"); GLCapabilities glCaps= new GLCapabilities(); glCaps.setRedBits(8); glCaps.setBlueBits(8); glCaps.setGreenBits(8); glCaps.setAlphaBits(8); GLCanvas canvas= new GLCanvas(glCaps); canvas.addGLEventListener(new TestRenderer()); this.add(canvas); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); } public static void main(String args[]){ Test test= new Test(); test.setVisible(true); } }; class TestRenderer implements GLEventListener{ private GL gl; private GLDrawable glDrawable; //######################################################################################## //# GLEventListener 클래스의 추상 메소드 //######################################################################################## public void display(GLAutoDrawable drawable){ gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); gl.glColor3f(1.0f, 0.0f, 0.0f); gl.glBegin(GL.GL_TRIANGLES); gl.glVertex3f(0.0f, 0.0f, 0.0f); gl.glVertex3f(1.0f, 0.0f, 0.0f); gl.glVertex3f(1.0f, 1.0f, 0.0f); gl.glEnd(); } //######################################################################################## //# GLEventListener 클래스의 추상 메소드 //######################################################################################## public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged){ } //######################################################################################## //# GLEventListener 클래스의 추상 메소드 //######################################################################################## public void init(GLAutoDrawable drawable){ gl= drawable.getGL(); glDrawable= drawable; drawable.setGL(new DebugGL(gl)); } //######################################################################################## //# GLEventListener 클래스의 추상 메소드 //######################################################################################## public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h){ } };




//########################################################################################
//# GLEventListener 를 상속 받은 TestRenderer 클래스는
//# display(...), displayChanged(...), init(...), reshape(...) 메소드를 정의 해야한다.
//# 이 중에서 display(...) 메소드는 화면의 렌더링을 담당하는 함수로서,
//# 지금의 예제에서는 화면을 다시 그려야될 필요가 있을 때,
//# (크기변경, 다른창에 가려진후 드러났을 때, 최대화 될 때, 등)
//# 호출된다.
//########################################################################################

'Computer > JOGL' 카테고리의 다른 글

6. GLSL -- HelloWorld  (0) 2007.08.03
5. Text  (0) 2007.07.31
4. Color Cube  (0) 2007.07.30
3. Draw Triangle & Animation  (0) 2007.07.29
1. 셋팅  (0) 2007.07.29