EGL:简介

来源:互联网 发布:linux 安装内核源码 编辑:程序博客网 时间:2024/05/22 09:42
参考官方文档: https://www.khronos.org/egl

EGL定义
EGL 是图形渲染API(如opengl es) 和 本地平台(如android)窗口系统之间的接口,即桥梁。它为继承有OpenGL ES的客户端提供了创建渲染Surface的机制,并且为OpenGL ES创建了图形上下文, 并且提供了本地平台渲染(如窗口渲染)与 OpenGL ES渲染的同步功能。

EGL主要职责
   1  管理 图形的上下文
   2  绑定和解绑 Surface 和 相应的buffer
   3  渲染同步, 加速,高性能渲染,以及 混合 2D/3D 渲染
   4  在不同API接口之前 进行转换数据,如在OpenMAX AL下运行的视频系统 和 OpenGL ES 之间转换数据

图形资源管理的接口层
  其它本地渲染API如 Xlib GDI 也能提供Surface,那么EGL可以选择在这些特定的Surface上进行渲染,同时EGL也是跨平台的(如Android, Linux)
  EGL主要提供三种功能
   1  创建能够共享和 渲染的Suface(窗口,pbuffers, pximaps)
   2   创建管理 图形上下文
   3  与本地平台渲染API 同步

EGL 作为中间桥梁进行渲染
 

即它可以将 OpenMAX 这种API渲染出来多媒体流,转换为 OpenGL ES能识别的 数据,从而利用OpenGL ES将 数据渲染在EGL 管理的窗口上。 
一个很重要的应用就是增强现实,从摄像头出来的数据,转换为OpenGL ES外部扩展纹理,GL_TEXTURE_EXTERNAL。如上图所示。
0 0