ANGLE (Almost Native Graphics Layer Engine) is an open source, BSD-licensed graphics engine abstraction layer developed by Google. The API is mainly designed to bring high-performance OpenGL compatibility to Windows computers and to web browsers such as Chromium by translating OpenGL calls to Direct3D, which has much better driver support. There are two backend renderers for ANGLE: the oldest one uses Direct3D 9.0c, while the newer one uses Direct3D 11.
ANGLE is currently used by Google Chrome, Firefox, and the Qt Framework. The engine is also used by Windows 10 for compatibility with apps ported from Android.
Video ANGLE (software)
History
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.
The current production version (1.0.x) implements OpenGL ES 2.0 and EGL 1.4, claiming to pass the conformance tests for both. Work has started on the future OpenGL ES 3.0 version, for the newer Direct3D 11 backend.
The capability to use ANGLE in a Windows Store app was added in 2014. Supporting CoreWindow and SwapChainPanel in ANGLE's EGL allows applications to run on Windows 8.1, Windows Phone 8.1, and later.
Maps ANGLE (software)
Issues
ANGLE is based on transpiling technology, translating GLSL into HLSL. This causes some differences in the way expressions are evaluated, in addition to differences in preconditions for equivalent built-in functions in GLSL vs HLSL, plus specific transpiling bugs added to GLSL/HLSL optimizer and compiler bugs. This, with the fact that different browsers rely on different version of Direct3D having different bugs induces many differences of code behavior that can cause WebGL shaders to produce different results depending on the OS and the browser (and the drivers). Many are documented in .
Beside transpilation to other shading languages, ANGLE also applies various GLSL code modifications (even in OpenGL systems like Linux or MacOS) to avoid known issues on some drivers and compilers. A series of turnarounds is available, each being activated or not depending on the browser, browser version, and on the result of sanity checks at browser launch (for chrome and chromium, see ). But these turnarounds have impacts on performances, and also have bugs.
Software utilizing ANGLE
ANGLE is currently used in a number of programs and software.
- Chromium and Google Chrome. Chrome uses ANGLE not only for WebGL, but also for its implementation of the 2D HTML5 canvas and for the graphics layer of the Google Native Client (which is OpenGL ES 2.0 compatible).
- Firefox uses ANGLE as the default WebGL backend on Windows
- Qt 5 uses ANGLE as the default renderer for its OpenGL ES 2.0 API wrapper and other Qt elements which use it on Windows
- Candy Crush Saga uses ANGLE as the default renderer in its Windows Store version of the application
- Cocos2d uses ANGLE as its rendering engine for applications published to the Windows Store
- ANGLE for Windows Store provides Windows developers precompiled ANGLE binaries via a NuGet package
- Stellarium provides two versions for Windows: the default version uses OpenGL, the alternative version uses ANGLE as the renderer.
- Shovel Knight uses ANGLE as rendering engine, as seen in final credits.
- RuneScape NXT client uses ANGLE to provide a DirectX 9 compatibility mode for older graphics cards.
- Krita started using ANGLE as the rendering engine on Windows starting on version 3.3.0.
- Microsoft Edge has ANGLE as a rendering option in the "Standards Preview" page in Windows Insider build 17025.
References
External links
- Official website
Source of article : Wikipedia