关于EGL与示例代码[转]

OpenGL ES的javax.microedition.khronos.opengles 包定义了平台无关的GL绘图指令,EGL(javax.microedition.khronos.egl )则定义了控制displays ,contexts 以及surfaces 的统一的平台接口。

Display(EGLDisplay) 是对实际显示设备的抽象。 Surface(EGLSurface) 是对用来存储图像的内存区域FrameBuffer的抽象,包括Color Buffer, Stencil Buffer ,Depth Buffer. Context (EGLContext) 存储OpenGL ES绘图的一些状态信息。

使用EGL的绘图的一般步骤:

  • 获取EGLDisplay对象
  • 初始化与EGLDisplay 之间的连接。
  • 获取EGLConfig对象
  • 创建EGLContext 实例
  • 创建EGLSurface实例
  • 连接EGLContext和EGLSurface.
  • 使用GL指令绘制图形
  • 断开并释放与EGLSurface关联的EGLContext对象
  • 删除EGLSurface对象
  • 删除EGLContext对象
  • 终止与EGLDisplay之间的连接

一般来说在平台上开发OpenGL ES应用,无需直接使用javax.microedition.khronos.egl 包中的类按照上述步骤来使用OpenGL ES绘制图形,在Android平台中提供了一个android.opengl 包,类GLSurfaceView提供了对Display,Surface,Context 的管理,大大简化了OpenGL ES的程序框架,对应大部分OpenGL ES开发,只需调用一个方法来设置OpenGLView用到的GLSurfaceView.Renderer。可以参见: Android OpenGL ES 简明开发教程二

比较好的demo参见:https://github.com/izacus/AndroidOpenGLVideoDemo

参考:https://www.virag.si/2014/03/rendering-video-with-opengl-on-android/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEE

thumbnails图像处理库的使用前言:thumbnails的使用:

51730
来自专栏编程

如何用Vim提高开发效率

背景 虽然笔者是Android开发工程师,但也接触过各种IDE(不限于Android开发)。不同的IDE往往都有不同的快捷键,我们总不能对每种IDE都进行配置吧...

25580
来自专栏尾尾部落

[剑指offer] 矩形覆盖

我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?

10420
来自专栏互联网杂技

jQuery插件开发全解析

jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。jQuery的全局函数就是属于j...

41070
来自专栏游戏杂谈

IE中的内存泄露

Memory Leakage in Internet Explorer – revisited

18440
来自专栏散尽浮华

使用grep精确匹配一个单词

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出...

32150
来自专栏高性能服务器开发

libevent源码深度剖析九 集成定时器事件

(1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基本使...

15710
来自专栏大内老A

三种属性操作性能比较:PropertyInfo + Expression Tree + Delegate.CreateDelegate

《上篇》主要介绍如何通过DataBinder实现批量的数据绑定,以及如何解决常见的数据绑定问题,比如数据的格式化。接下来,我们主要来谈谈DataBinder的设...

243100
来自专栏GreenLeaves

JS框架设计之加载器所在路径的探知一模块加载系统

1、要加载一个模块,我们需要一个URL作为加载地址,一个script作为加载媒介,但用户在require是都用ID,我们需要一个将ID转换为URL的方法,思路很...

21950
来自专栏大内老A

一句代码实现批量数据绑定[下篇]

《上篇》主要介绍如何通过DataBinder实现批量的数据绑定,以及如何解决常见的数据绑定问题,比如数据的格式化。接下来,我们主要来谈谈DataBinder的设...

24050

扫码关注云+社区

领取腾讯云代金券