ANGLE是一个google发起的开源项目, 用在chromium项目里面,作为底层的图形渲染引擎的一部分。ANGLE的目标是通过将OpenGL ES API调用转换为该平台可用的硬件支持的API之一,从而允许多个操作系统的用户无缝运行WebGL和其他OpenGL ES内容。换句话说,就是把opengl es 翻译成其他的语言,譬如说D3D9。
google chromium为什么做这件事情呢?因为chromium里面渲染部分用的是webgl,webgl就是opengl es2.0。同时chromium需要在多个平台运行,就需要调用多个平台的底层渲染驱动。然而在PC上很少有成熟的OpenGL ES驱动,现有的GL驱动有些不符合标准,所以就考虑把opengl es翻译成d3d的语言,再调用local的驱动。
使用ANGLE后,就可以用一套opengl es的代码,同时运行在移动端和PC上,同时也可以使用ANGLE来验证下shader的兼容性。之前其实也有类似的SDK可实现这些功能,譬如ARM和Imagenation开发的一些仿真器,在PC上编译链接这些库,就可以在PC上运行opengl es2的代码了。之所以考虑使用ANGLE,主要有几个考量:
- 开源代码,google出品,质量有保证。
- 持续更新中,很活跃。
- 除了有open GL ES的仿真外,还实现了EGL 1.4的标准。
- google的开源代码测试都很完善,可以参考下google如何来测试渲染方面的代码和产品。
ANGLE的代码是放在googlesource上面,有兴趣可以尝试下。
网友评论