반응형
출처 : http://android15.tistory.com/m/post/view/id/144

GLSurfaceView는 OpenGL ES 애플리케이션을 더 쉽게 작성할 수 있도록 합니다.
GLSurfaceView는 OpenGL ES를 렌더링의 일부 또는 전체에 사용하는 애플리케이션을 구축하는 훌륭한 기반입니다. 2D 또는 3D 액션 게임이나 구글 맵스 스트리트뷰아 같은 2D 또는 3D 데이터 비주얼라이제이션 애플리케이션이 후보가 될 수 있습니다.


가장 간단한 GLSurfaceView 애플리케이션




이 프로그램은 프레임을 검정색으로 화면을 지워버리는 간단한 일을 합니다.
간단하기는 하지만, 완벽한 OpenGL 애플리케이션입니다.
안드로이드 액티비티의 생애주기를 완벽하게 구현합니다. 액티비티가 멈췄을 때 렌더링을 멈추고, 액티비티가 다시 시작할 때 렌더링도 다시 시작됩니다.
이 resumed됩니다.

여러분은 이 애플리케이션을 상호작용 없는 데모 프로그램의 기본으로 사용할 수 있습니다. ClearRenderer.onDrawFrame에 더 많은 OpenGL 호출들을 추가하기만 하면 됩니다.

GLSurfaceView.Renderer 인터페이스는 세 개의 메소드를 가집니다.
onSurfaceCreated, onSurfaceChanged, onDrawFrame


사용자와 상호작용하는 애플리케이션을 원한다면, GLSurfaceView 클래스를 파생한 클래스를 사용합니다. GLSurfaceView는 쉽게 사용자 입력 이벤트를 얻는 방법을 갖고 있습니다.



이 애플리케이션이 시작할 때 화면을 검정색으로 지워버립니다. 사용자가 화면위를 가볍게 두드릴 때, 여러 분이 터치하는 좌표에 기반해서 화면을 지우는 색깔이 설정합니다.
queueEvent는 UI 쓰레드와 렌더링 쓰레드 사이에 안정된 커뮤니케이션을 위해 사용됩니다.

setEGLSurfaceChooser 메소드는 개발자에게 어떤 surface 타입을 선택할 것인지를 결정하도록 합니다.


대부분의 3D 애플리케이션들은 계속해서 움직입니다.
사용자가 어떤 것을 할 때만 사용자의 액션에 대응하고, 그렇지 않은 경우에는 수동적으로 기다리는 애플리케이션들에 있어 계속해서 움직이는 것은 낭비입니다. 이런 경우에 GLSurfaeView.setRenderMode(RENDERMODE_WHEN_DIRTY)를 호출합니다. 그리고 나서 다시 렌더링해야 할 때마다GLSurfaceView.requestRender를 호출합니다.


GLSurfaceView.setDebugFlags 메소드는 로깅과 에러 확인을 위해 사용할 수 있습니다.

public ClearGLSurfaceView(Context context) {
super(context);
setDebugFlags(DEBUG_CHECK_GL_ERROR | DEBUG_LOG_GL_CALLS);
mRenderer = new ClearRenderer();
setRenderer(mRenderer);
}

http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html


반응형

'Android' 카테고리의 다른 글

EGL  (0) 2010.02.06
Android LCD Calibration application JAVA source  (0) 2010.02.03
Android.mk 설명서  (1) 2010.01.27
Posted by Real_G