OpenGL ES 和 GLSurfaceView 概述

最近在拜看林学森先生的《深入理解 Android 内核设计思想》,特作此笔记。

OpenGL ES,ES 是 Embedded System 的缩写。其包括如下几个方面:

  • OpenGL ES,协议规范,而非软件库;
  • EGL,Embedded-System Graphics Library,an interface between rendering APIs(OpenGL ES) and the underlying native platform windowing system.
  • Mesa 3d,兼容 OpenGL 协议的 3D 图像处理软件库;

OpenGL ES 和 GLSurfaceView 概述_第1张图片

EGL 的作用:

EGL handles graphics context management, surface/buffer binding, rendering synchronization, and enables “high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs.

上层应用通过两种方法使用 OpenGL Es:

  • SDK 提供的 EGL,GLES java 类;
  • GLSurfaceView

OpenGL ES 和 GLSurfaceView 概述_第2张图片

GLSurfaceView 既具备 View 类的能力(特别是接收事件的能力),又拥有 OpenGL ES 提供的强大的 3D 图像处理能力,为编写高质量 UI 界面和游戏特效奠定了基础。

GLSurfaceView 的特性:

  • 管理 EGLDisplay,它表示一个显示屏;
  • 管理 Surface,本质上是一个内存块;
  • GLSurfaceView 会创建新的线程,以使整个渲染过程不阻塞 UI 主线程;
  • 用户可以自定义渲染方式,如通过 setRenderer() 设置;

当前很多安卓游戏都是直接或间接通过 GLSurfaceView 完成的。

你可能感兴趣的:(Android,UI,开发)