GLSurfaceView

GLSurfaceView是Android中用于3D游戏开发的视图组件,它在独立线程中由渲染器进行内容渲染,提供更快的界面更新速度。相比View,GLSurfaceView更适用于高性能需求的场景,如2D游戏。事件处理和实例应用方面,GLSurfaceView能够与MediaPlayer结合显示视频图像,并且与View和SurfaceView主要区别在于更新画面的方式和线程管理。
摘要由CSDN通过智能技术生成

GLSurfaceView

内嵌surface专门负责OpenGL渲染
    1、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上
    2、能让opengl把内容渲染到上述的surface上
    3、用户自定义渲染器(render)
    4、让渲染器在独立的线程里运作,和UI线程分离
    5、支持按需渲染和连续渲染

GLSurfaceView 就是通过独立的线程,让渲染器把内容渲染到内嵌的surface上

GLSurfaceView的渲染被委托给渲染器在独立的渲染线程里进行

1、初始化GLSurfaceView
     初始化过程其实仅需要使用setRenderer(Renderer)设置一个渲染器。当然,也可以修改GLSurfaceView一些默认配置。
        setDebugFlags(int)
        setEGLConfigChooser(boolean)
        setEGLConfigChooser(EGLConfigChooser)
        setEGLConfigChooser(int, int, int, int, int, int)
        setGLWrapper(GLWrapper) 

2、定制android.view.Surface
    GLSurfaceView默认会创建像素格式为PixelFormat.RGB_565的surface。如果需要透明效果,调用getHolder().setFormat(PixelFormat.TRANSLUCENT)。透明的surface的像素格式都是32位,每个色彩单元都是8位深度,像素格式是设备相关的,这意味着它可能是ARGB、RGBA或其他。

3、选择EGL配置
    在渲染器工作之前就应该指定EGL的配置。GLSurfaceView默认EGL配置的像素格式为RGB_656,16位的深度缓存,默认不开启遮罩缓存。也可以自己定制    使用不同的通道(channel),也可以指定每个通道具有不同数目的位(bits)深度。

4、渲染模式
    渲染器设定之后,你可以使用setRendererMode(int) 指定渲染模式是按需还是连续,默认是连续渲染。
        注意:
            Activity窗口暂停(pause)或恢复(resume)时,GLSurfaceView都会收到通知,此时它的onPause()方法和onResume()方法应该被调用。这样做事为了让GLSurfaceView暂停或恢复它的渲染线程,以便它及时释放或重建OpenGL的资源。

事件处理:

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值