Android GLSurfaceView.Renderer

本文详细介绍了GLSurfaceView.Renderer接口,这是Android系统中用于OpenGL ES渲染的主要接口。渲染器通常在一个独立线程中运行,与UI线程解耦。文章解释了如何通过实现此接口来创建自定义渲染器,并提供了onSurfaceCreated(), onDrawFrame() 和onSurfaceChanged()等关键方法的作用及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 容器的改变.

文章连接:http://blog.youkuaiyun.com/murongshusheng/article/details/7565788

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值