OpenGL ES 의 GLSurface View 학습 2:비 상호작용 인 스 턴 스


분류:안 드 로 이 드 학습 노트
2011-04-09 09:14 402 명 댓 글 읽 기(1)소장 신고
GLSurfaceView 를 사용 해 3D 애플 리 케 이 션 을 개발 할 때 비 상호작용 애플 리 케 이 션 이 라면 GLSurfaceView 를 직접 사용 할 수 있다.상호작용 이 필요 하 다 면,계승 이 필요 하 다.
GLSurface View 와 함께 방법 을 다시 쓰 세 요.상호작용 식 응용 예 시 는 다음 편 을 볼 수 있다.
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.opengl.GLSurfaceView.Renderer;
import android.os.Bundle;
import android.provider.OpenableColumns;
/**
 *      OpenGL ES  3D  
 *  Activity     GLSurfaceView
 *     GLSurfaceView      ,          ,     ,       GLSurfaceView   
 *            OpenGL  ,      GLSurfaceView。     
 * @author Administrator
 *
 */
public class NonInteractiveDemo extends Activity {
    
	private GLSurfaceView mGLView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        mGLView = new GLSurfaceView(this);
        //               
        mGLView.setRenderer(new DemoRenderer());
        setContentView(mGLView);
        
    }
    
    
    public void onPause(){
    	super.onPause();
    	mGLView.onPause(); // Activity   ,  GLSurfaceView     ,     。
    }
    
    public void onResume(){
    	super.onResume();
    	mGLView.onResume(); // Activity   ,  GLSurfaceView    ,    。
    }
    
    
    
    
}
class DemoRenderer implements Renderer{
	@Override
	public void onDrawFrame(GL10 gl) {
		//              。        glClear   framebuffer。
		//    OpenGL ES        
		gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);
		
	}
	@Override
	public void onSurfaceChanged(GL10 gl, int w, int h) {
		// surface        ,      ,。       ViewPort。  Camara 。 
		gl.glViewport(0, 0, w, h);
	}
	@Override
	public void onSurfaceCreated(GL10 gl, EGLConfig config) {
		//            ,OpenGL ES              。
		// Activity   ,        , Activity   ,        。
		
		//do nothing special
	}
	
}

좋은 웹페이지 즐겨찾기