在做3D的时候需要引用Renderer接口。而实现了这个接口后需要实现下面3个抽象方法,而这里就说明下这3个方法。
- public void onDrawFrame(GL10 gl){}
- public void onSurfaceChanged(GL10 gl, int width, int height){}
- public void onSurfaceCreated(GL10 gl, EGLConfig config){}
程序开始 :onSurfaceCreated --> onSurfaceChanged --> onDrawFrame --> onDrawFrame --> onDrawFrame -->
程序后台唤醒:onSurfaceChanged --> onDrawFrame --> onSurfaceChanged --> onDrawFrame --> onDrawFrame -->
(1) onDrawFrame() 方法会在每帧中被调用,用于描述一个时时绘制的场景,你还可以通过调用 glclear 方法去清空帧缓冲,接着通过其他OpenGl ES 调用去绘制目前的场景。
(2) onSurfaceChanged() 方法在surface 大小尺寸改变的时候被调用,它主要设置你的openGL的观察点,你也可以在这里设置一个不会被移动到固定Camera
(3) onSurfaceCreated() 方法被调用在开始渲染的时候,OpenGL ES 绘图上下文时都会被重建(当activity暂停和恢复的时候,绘图的上下文也通常会随之丢失和重建)。
onSurfaceCreated() 方法主要用于从创建持久的OpenGL资源,类似于textures 一样。