Developer(s) | |
---|---|
Written in | C++ |
Platform | Cross-platform |
Type | Graphics engine |
License | BSD 3-Clause License |
Website | angleproject |
ANGLE (Almost Native Graphics Layer Engine) is an open source, cross-platform graphics engine abstraction layer developed by Google.[1] ANGLE translates OpenGL ES 2/3 calls to DirectX 9, 11, OpenGL or Vulkan API calls.[2][3][4][5] It's a portable version of OpenGL but with limitations of OpenGL ES standard.[6][7]
The API is mainly designed to bring up a high-performance OpenGL compatibility to MS Windows and to web browsers such as Chromium by translating OpenGL calls to Direct3D, which has much better driver support on Windows systems.[3][4][5] On Windows, there are two backend renderers for ANGLE: the oldest one uses Direct3D 9.0c, while the newer one uses Direct3D 11.[8]
ANGLE is currently used by Google Chrome (it's embedded into the Blink browser engine), Firefox,[9] Edge, WebKit, and the Qt Framework.[10] The engine is also used by Windows 10 for compatibility with apps ported from Android.[11] Throughout 2019, the Apple team contributed a Metal API backend for the ANGLE so Apple devices could run on their native graphics APIs.[12]
ANGLE is distributed under a BSD-license.
The project started as a way for Google to bring full hardware acceleration for WebGL to Windows without relying on OpenGL graphics drivers. Google initially released the program under the BSD license.[13]
The current production version (2.1.x) implements OpenGL ES 2.0, 3.0, 3.1 and EGL 1.5, claiming to pass the conformance tests for both. Work was started on then future OpenGL ES 3.0 version,[8] for the newer Direct3D 11 backend.[14]
The capability to use ANGLE in a Windows Store app was added in 2014.[11] Microsoft contributed support for lower feature levels to the project. Supporting CoreWindow and SwapChainPanel in ANGLE's EGL allows applications to run on Windows 8.1, Windows Phone 8.1, and later.[15]
Direct3D 9 | Direct3D 11 | Desktop GL | GL ES | Vulkan | Metal | |
---|---|---|---|---|---|---|
OpenGL ES 2.0 | complete | complete | complete | complete | complete | complete |
OpenGL ES 3.0 | complete | complete | complete | complete | complete | |
OpenGL ES 3.1 | incomplete | complete | complete | complete | ||
OpenGL ES 3.2 | in progress | in progress | complete |
Direct3D 9 | Direct3D 11 | Desktop GL | GL ES | Vulkan | Metal | |
---|---|---|---|---|---|---|
Windows | complete | complete | complete | complete | complete | |
Linux | complete | complete | ||||
macOS | complete | complete | ||||
iOS | complete | |||||
ChromeOS | complete | Planned | ||||
Android | complete | complete | ||||
GGP (Stadia) | complete | |||||
Fuchsia | complete |
ANGLE is currently used in a number of programs and software.