android egl使用方法,android-opengles3.0开发【4】使用EGL绘制图形

简介

前面几篇文章通过 GLSurfaceView 进行 opengles 的渲染,使用简单。但是不够灵活,一个 opengl 只能渲染一个 GLSurfaceView,一旦 GLSurfaceView 销毁,对应的 opengl 也会销毁。

使用 EGL 可以避免上述缺点。

EGL 时渲染 API 和平台原生窗口系统之间的接口,主要任务是:

查询并初始化设备的可用显示器。

创建渲染表面。

创建渲染上下文。

EGL 使用流程

EGL 使用主要步骤很清晰,每个步骤都有相应的方法进行操作。

与窗口系统通信,获取显示器:eglGetDisplay

初始化EGL:eglInitialize

根据需要,让EGL 选择合适的配置:eglChooseConfig

创建上下文:eglCreateContext

创建渲染区域:EGL窗口:eglCreateWindowSurface

指定当前上下文:eglMakeCurrent

加载着色器、连接程序、绑定数据到属性进行渲染(使用的数据、着色器之类的和前几篇文章一样)

private void createEGL(){

//获取显示设备

eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);

if (eglDisplay == EGL_NO_DISPLAY){

throw new RuntimeException("egl error:" + eglGetError());

}

//初始化EGL

int[] version = new int[2];

if (!eglInitialize(eglDisplay, version,0,version,1)){

throw new RuntimeException("egl error:" + eglGetError());

}

//EGL选择配置

int[] configAttribList = {

EGL_BUFFER_SIZE, 32,

EGL_ALPHA_SIZE, 8,

EGL_BLUE_SIZE, 8,

EGL_GREEN_SIZE, 8,

EGL_RED_SIZE, 8,

EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值