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

本文介绍了如何在Android中使用EGL进行OpenGL ES 3.0开发,以实现更灵活的图形渲染。EGL作为渲染API和平台窗口系统间的接口,负责初始化显示器、配置、上下文和渲染表面。通过EGL可以创建独立于GLSurfaceView的渲染流程,包括创建EGL显示、初始化、选择配置、创建上下文和渲染表面。示例代码展示了如何创建EGL环境并使用SurfaceView进行显示。

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

简介

前面几篇文章通过 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_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值