반응형
안녕하세요 돼지왕왕돼지입니다.
오늘은 안드로이드에서 OpenGL 3D Graphics 를 활용하기 위해 사용되는 GLSurfaceView 의 생성 기본골격에 대해 알아보고자 합니다.
오늘은 안드로이드에서 OpenGL 3D Graphics 를 활용하기 위해 사용되는 GLSurfaceView 의 생성 기본골격에 대해 알아보고자 합니다.
준비물
1. Activity class
2. GLSurfaceView 를 extend 한 class
3. GLSurfaceView.Renderer 를 implemente 한 class
public class OpenGLTestActivity extends Activity { ... }
public class OpenGLTestView extends GLSurfaceView { ... }
public class OpenGLTestRenderer implements GLSurfaceView.Renderer { ... }
준비물들 연결하기.
1. Activity 에서 GLSurfaceView 만들고, setContentView로 해당 view 지정.
public class OpenGLTest extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
OpenGLTestView glTestView = new OpenGLTestView( this );
setContentView(
glTestView );
}
}
2. GLSurfaceView 의 Constructor 에서 Renderer 를 만들고, setRenderer 로 해당 renderer 지정.
public class OpenGLTestView extends GLSurfaceView{
public OpenGLTestView(Context context){
super(context);
OpenGLTestRenderer glTestRenderer = new OpenGLTestRenderer();
setRenderer( glTestRenderer );
}
}
3. Renderer 에서 3가지 함수를 implement 함.
public void onSurfaceCreated( GL10 gl, EGLConfig config );
public void onSurfaceChanged( GL10 gl, int w, int h );
public onDrawFrame( GL10 gl );
onSurfaceCreated, onSurfaceChanged 는 기본 SurfaceView 와 같습니다.
onDrawFrame 은 매번 rendering 될 때마다 불리는데, 이 곳에서 gl 을 이용해서 실제로 draw 하는 역할을 해주죠.
public class OpenGLTestRenderer implements GLSurfaceView.Renderer{
public void onSurfaceCreated(GL10 gl, EGLConfig config){
// config setting.
}
public void onSurfaceChanged(GL10 gl, int w, int h){
gl.glViewport(0, 0, w, h);
}
public onDrawFrame(GL10 gl){
// Drawing
}
}
[참고사항]
이로서 안드로이드 Activity 에서 OpenGL 그릴 준비가 끝났습니다. 그럼 모두 즐거운 3D 프로그래밍 하시길~
로그인 없이 추천 가능합니다. 손가락 꾸욱~
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] Activity 의 Title ( 제목 ) 제거하기. (0) | 2012.02.10 |
---|---|
[Android/안드로이드] Activity 배경 (반) 투명하게 만드는 방법 (0) | 2012.02.10 |
[Android/안드로이드] 위치 정보 (GPS) 가져오는 세 가지 방법 및 고려 사항. (2) | 2012.02.10 |
[Android/안드로이드] 자주 쓰는 Android Broadcast Action 이름 모음. (0) | 2012.02.09 |
[Android/안드로이드] URL Encoding / Decoding 방법. (2) | 2012.02.09 |
댓글