专栏
天翼云开发者社区

什么是EGL

2023-03-17 16:28:15 65阅读

一、简介

EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。
通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,且它最好是与平台无关的。
因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁。

二、功能

EGL API 是独立于 OpenGL ES 各版本标准的独立的一套 API,其主要作用是为 OpenGL 指令 创建 Context 、绘制目标 Surface 、配置 FrameBuffer 属性、Swap 提交绘制结果 等。
EGL 提供如下机制:
与设备原生窗口通信
查询绘制 surface 的可用类型和配置
创建绘制 surface
在 OpenGL ES 3.0 或其他渲染 API 之间同步渲染
管理纹理贴图等渲染资源
 
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的绘图的一般步骤:
  1. 获取 EGLDisplay 对象
  2. 初始化与 EGLDisplay 之间的连接
  3. 获取 EGLConfig 对象
  4. 创建 EGLContext 实例
  5. 创建 EGLSurface 实例
  6. 连接 EGLContext 和 EGLSurface
  7. 使用 GL 指令绘制图形
  8. 断开并释放与 EGLSurface 关联的 EGLContext 对象
  9. 删除 EGLSurface 对象
  10. 删除 EGLContext 对象
  11. 终止与 EGLDisplay 之间的连接
 
  • 1
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
wbq

wbq

15 篇文章 0 粉丝
关注

什么是EGL

2023-03-17 16:28:15 65阅读

一、简介

EGL 是渲染 API(如 OpenGL ES)和原生窗口系统之间的接口。
通常来说,OpenGL 是一个操作 GPU 的 API,它通过驱动向 GPU 发送相关指令,控制图形渲染管线状态机的运行状态,但是当涉及到与本地窗口系统进行交互时,就需要这么一个中间层,且它最好是与平台无关的。
因此 EGL 被设计出来,作为 OpenGL 和原生窗口系统之间的桥梁。

二、功能

EGL API 是独立于 OpenGL ES 各版本标准的独立的一套 API,其主要作用是为 OpenGL 指令 创建 Context 、绘制目标 Surface 、配置 FrameBuffer 属性、Swap 提交绘制结果 等。
EGL 提供如下机制:
与设备原生窗口通信
查询绘制 surface 的可用类型和配置
创建绘制 surface
在 OpenGL ES 3.0 或其他渲染 API 之间同步渲染
管理纹理贴图等渲染资源
 
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的绘图的一般步骤:
  1. 获取 EGLDisplay 对象
  2. 初始化与 EGLDisplay 之间的连接
  3. 获取 EGLConfig 对象
  4. 创建 EGLContext 实例
  5. 创建 EGLSurface 实例
  6. 连接 EGLContext 和 EGLSurface
  7. 使用 GL 指令绘制图形
  8. 断开并释放与 EGLSurface 关联的 EGLContext 对象
  9. 删除 EGLSurface 对象
  10. 删除 EGLContext 对象
  11. 终止与 EGLDisplay 之间的连接
 
文章来自专栏

移动开发

10 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 1
    点赞
  • 0
    收藏
  • 0
    评论