OpenGL ES 框架详细解析(一) —— 基本概览

版本记录

版本号 时间
V1.0 2017.09.28

前言

OpenGL ES是一个强大的图形库,是跨平台的图形API,属于OpenGL的一个简化版本。iOS系统可以利用OpenGL ES将图像数据直接送入到GPU进行渲染,这样避免了从CPU进行计算再送到显卡渲染带来的性能的高消耗,能带来来更好的视频效果和用户体验。接下来几篇就介绍下iOS 系统的 OpenGL ES框架。

框架基本结构

下面首先看一下该框架的基本信息。

使用OpenGL的紧凑,高效的子集创建3D和2D图形效果。

OpenGL ES为硬件加速的2D和3D图形渲染提供了一个基于C的接口。 iOS中的OpenGL ES框架(OpenGLES.framework)提供OpenGL ES规范版本1.1,2.0和3.0的实现。

该文档集合描述了iOS设备上的OpenGL ES平台特定的API,也称为EAGL。 EAGL提供封装所有OpenGL ES状态的图形上下文,以及将Core Animation层配置为OpenGL ES绘图命令的目标位置的能力。 EAGL还允许OpenGL ES对象(如纹理,渲染缓冲区和帧缓冲区)在两个或多个图形上下文之间共享。

Khronos集团维护OpenGL ES规范和跨平台OpenGL ES API的参考资料:

下面我们就看一下OpenGL ES框架的基本结构。


框架详细结构模块

1. Classes

  • EAGLContext

    • EAGLContext对象管理OpenGL ES呈现上下文 - 使用OpenGL ES绘制所需的状态信息,命令和资源。 要执行OpenGL ES命令,您需要一个当前的渲染上下文。
  • EAGLSharegroup

    • EAGLSharegroup对象管理与一个或多个EAGLContext对象相关联的OpenGL ES资源。 当EAGLContext对象被初始化并在引用它的最后一个EAGLContext对象被释放时,EAGLSharegroup对象被创建。 作为一个不透明的对象,没有开发人员可访问的API。

2. Protocols

  • EAGLDrawable
    • 实现EAGLDrawable协议的iOS对象可以用作渲染表面,并由EAGLContext对象显示给屏幕。 在iOS 2.0中,此协议仅由CAEAGLLayer类实现,但在将来其他类可能选择实现该协议。 EAGLDrawable协议不是由iOS以外的对象实现的。

3. Reference

4. Related Documentation

后记

未完,待续~~~

推荐阅读更多精彩内容