您的位置:首页 > 移动开发 > Android开发

Android GLSurfaceView.Renderer

2012-05-14 17:35 357 查看
GLSurfaceView.Renderer
一个普通的渲染器接口

GLSurfaceView 客户端通常创建他们自己实现了这个接口的类,然后调用 setRenderer(GLSurfaceView.Renderer) 去注册这个GLSurfaceView 的渲染器.

Threading

这个渲染器将在一个分离的线程中被调用,因此,渲染性能是和UI线程解耦的.用户通常需要从UI线程中和这个渲染器进行通讯,因为在那里会收到输入事件.客户端可以使用java标准的线程间通信来完成这个操作,或者也可以直接调用queueEvent(Runnable) 这个便利的方法.

EGL Context Lost

在有些情况下,EGL渲染的context将会被丢失.这通常发生在当设备处于苏醒状态转变为待机状态的情况下.当EGL渲染的context丢失,所有和Context进行关联的OpenGL资源(例如,纹理)将被自动删除.为了保持渲染的正确,一个渲染器必须重新创建任何它任然需要的丢失的资源. onSurfaceCreated(GL10, EGLConfig) 方法是一个做这些事情的好地方.

onSurfaceCreated(): 当创建 GLSurfaceView时,系统调用这个方法.使用这个方法去执行只需要发生一次的动作,例如设置OpenGL环境参数或者初始化OpenGL graphic 对象.

onDrawFrame(): 当系统每一次重画 GLSurfaceView 时调用.使用这个方法去作为主要的绘制和重新绘制graphic 对象的执行点.

onSurfaceChanged(): 当 GLSurfaceView 几何学发生改变时系统调用这个方法.包括 GLSurfaceView 的大小发生改变或者横竖屏发生改变.使用这个方法去响应GLSurfaceView 容器的改变.

文章连接:/article/11771751.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: