ANGLE (software)

{{Short description|Open source graphics engine abstraction layer developed by Google}}{{Use dmy dates|date=August 2015}}

{{Infobox software

| logo =

| developer = Google

| latest release version =

| latest release date =

| platform = Cross-platform

| programming language = C++

| genre = Graphics engine

| license = BSD 3-Clause License

| website = {{URL|http://angleproject.org}}

}}

ANGLE (Almost Native Graphics Layer Engine) is an open source, cross-platform graphics engine abstraction layer developed by Google.{{cite web|url=http://www.khronos.org/news/permalink/google-announces-angle-almost-native-graphics-layer-engine-so-opengl-es-can |title=Google Announces Angle – Almost Native Graphics Layer Engine – so OpenGL ES can run over DirectX 9 – khronos.org news |publisher=Khronos.org |date=19 March 2010 |accessdate=5 August 2014}} ANGLE translates OpenGL ES 2/3 calls to DirectX 9, 11, OpenGL, Vulkan or Metal API calls.{{Cite web |title=ANGLE |url=https://chromium.googlesource.com/angle/angle/ |access-date=2022-04-11 |website=Skia |language=en}} It is a portable version of OpenGL but with limitations of OpenGL ES standard.{{Cite web|title=angle/angle - Git at Google|url=https://chromium.googlesource.com/angle/angle/|access-date=2021-07-08|website=chromium.googlesource.com}}{{Citation|title=ANGLE: OpenGL on Vulkan| date=11 May 2018 |url=https://www.youtube.com/watch?v=QrIKdjmpmaA|language=en|access-date=2021-07-08}}

The API is mainly designed to bring up a high-performance OpenGL compatibility to Microsoft Windows and to web browsers such as Chromium by translating OpenGL calls to Direct3D, which has much better driver support on Windows systems.{{cite web|url=http://www.i-programmer.info/news/144-graphics-and-games/3471-googles-angle-brings-opengl-to-windows.html |title=Google's Angle brings OpenGL to Windows |publisher=I-programmer.info |date=13 December 2011 |accessdate=5 August 2014}}{{cite web|url=http://www.h-online.com/open/news/item/Chromium-gets-GPU-acceleration-1069131.html |title=Chromium gets GPU acceleration – The H Open: News and Features |publisher=H-online.com |date=30 August 2010 |accessdate=5 August 2014}}{{cite web|last=Bridge |first=Henry |url=https://blog.chromium.org/2010/03/introducing-angle-project.html |title=Chromium Blog: Introducing the ANGLE Project |publisher=Blog.chromium.org |date=18 March 2010 |accessdate=5 August 2014}} On Windows, there are two backend renderers for ANGLE: the oldest one uses Direct3D 9.0c, while the newer one uses Direct3D 11.{{cite web|url=https://code.google.com/p/angleproject/ |title=angleproject – ANGLE: Almost Native Graphics Layer Engine – Google Project Hosting |date=25 March 2014 |accessdate=5 August 2014}}

ANGLE is currently used by Google Chrome (embedded into the Blink browser engine), Firefox, Edge, WebKit, and the Qt Framework.{{cite web|url=http://blog.qt.io/blog/2012/10/24/graphics-on-windows-from-a-different-angle/ |title=Graphics on Windows from a different angle | Qt Blog |publisher=Qt |date= |accessdate=5 August 2014}} The engine is also used by Windows 10 for compatibility with apps ported from Android.{{cite web|url=http://channel9.msdn.com/Events/Build/2015/3-686 |title=ANGLE: Running OpenGL ES 2.0 Graphics Code on Windows |publisher=channel9.msdn.com |date=30 April 2015}} Throughout 2019, the Apple team contributed a Metal API backend for the ANGLE so Apple devices could run on their native graphics APIs.{{Cite web|date=2022-02-09|title=WebGL 2.0 Achieves Pervasive Support from all Major Web Browsers|url=https://www.khronos.org/blog/webgl-2-achieves-pervasive-support-from-all-major-web-browsers|access-date=2022-02-13|website=The Khronos Group|language=en}}

ANGLE is distributed under a BSD-license.

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.{{cite web|last=Shankland |first=Stephen |url=http://news.cnet.com/8301-30685_3-20000756-264.html |title=Google aims for easier 3D Web on Windows – CNET |publisher=News.cnet.com |date=25 March 2014 |accessdate=5 August 2014}}

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, for the newer Direct3D 11 backend.https://angleproject.googlecode.com/files/ANGLE%20and%20Cross-Platform%20WebGL%20Support.pdf {{Webarchive|url=https://web.archive.org/web/20140811101705/https://angleproject.googlecode.com/files/ANGLE%20and%20Cross-Platform%20WebGL%20Support.pdf |date=11 August 2014 }}.

The capability to use ANGLE in a Windows Store app was added in 2014. 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.{{cite web|url=http://go.microsoft.com/fwlink/p/?linkid=618387 |title=ANGLE for Windows Store Wiki |publisher=Microsoft Corp.}}

Level of OpenGL ES support via backing renderers

class="wikitable"

!

!align="center"| Direct3D 9

!align="center"| Direct3D 11

!align="center"| Desktop GL

!align="center"| GL ES

!align="center"| Vulkan

!align="center"| Metal

OpenGL ES 2.0

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

OpenGL ES 3.0

|align="center"|

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

OpenGL ES 3.1

|align="center"|

| {{partial failure|incomplete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

|align="center"|

OpenGL ES 3.2

|align="center"|

|align="center"|

| {{partial|in progress}}

| {{partial|in progress}}

| {{success|complete}}

|align="center"|

class="wikitable"

!align="right"|

!align="center"| Direct3D 9

!align="center"| Direct3D 11

!align="center"| Desktop GL

!align="center"| GL ES

!align="center"| Vulkan

!align="center"| Metal

align="right"| Windows

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

| {{success|complete}}

|align="center"|

align="right"| Linux

|align="center"|

|align="center"|

| {{success|complete}}

|align="center"|

| {{success|complete}}

|align="center"|

align="right"| macOS

|align="center"|

|align="center"|

| {{success|complete}}

|align="center"|

|align="center"|

| {{success|complete}}

align="right"| iOS

|align="center"|

|align="center"|

|align="center"|

|align="center"|

|align="center"|

| {{success|complete}}

align="right"| ChromeOS

|align="center"|

|align="center"|

|align="center"|

| {{success|complete}}

| {{planned}}

|align="center"|

align="right"| Android

|align="center"|

|align="center"|

|align="center"|

| {{success|complete}}

| {{success|complete}}

|align="center"|

align="right"| GGP (Stadia)

|align="center"|

|align="center"|

|align="center"|

|align="center"|

| {{success|complete}}

|align="center"|

align="right"| Fuchsia

|align="center"|

|align="center"|

|align="center"|

|align="center"|

| {{success|complete}}

|align="center"|

Software utilizing ANGLE

ANGLE is currently used in a number of programs and software.

  • Chromium and Google Chrome.{{cite web|url=http://www.geeks3d.com/20130611/webgl-how-to-enable-native-opengl-in-your-browser-windows/ |title=(WebGL) How to Enable Native OpenGL in your Browser (Windows) |publisher=Geeks3D |date= 11 June 2013|accessdate=5 August 2014}} 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).
  • Safari web browser uses ANGLE as basis for its WebGL implementation.
  • 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.
  • Godot uses ANGLE as an option for compatibility renderer for Windows and MacOS platforms starting with Godot 4.2{{cite web|url=https://godotengine.org/article/dev-snapshot-godot-4-2-dev-6/ |title=Dev snapshot: Godot 4.2 dev 6}}{{cite web | url=https://github.com/godotengine/godot/pull/72831 | title=[macOS/Windows] Add optional ANGLE backed OpenGL renderer support (Runtime backend selection). By bruvzg · Pull Request #72831 · godotengine/Godot | website=GitHub }}
  • 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{{cite web|url=http://www.nuget.org/packages/ANGLE.WindowsStore/ |title=ANGLE for Windows Store – NuGet Package |publisher=www.nuget.org |date=29 May 2015}} 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.{{cite web|url=https://answers.launchpad.net/stellarium/+faq/2570|title=FAQ #2570 : Questions : Stellarium|website=answers.launchpad.net|date=19 July 2014 }}
  • Shovel Knight uses ANGLE as rendering engine, as seen in final credits.{{cite web|url=https://www.youtube.com/watch?v=60TaTg1RmrQ|title=Shovel Knight (Credits) (PC)|last=VideoGameCredits|date=27 June 2014|publisher=|via=YouTube}}
  • RuneScape NXT client uses ANGLE to provide a DirectX 9 compatibility mode for older graphics cards.{{cite web|url=http://services.runescape.com/m=news/a=12/dev-blog--nxt---can-i-run-it|title=Dev Blog - NXT - Can I Run It? - News - RuneScape|last=Jagex|website=services.runescape.com|date=2 February 2016 }}
  • Krita started using ANGLE as the rendering engine on Windows starting on version 3.3.0.{{cite web|url=https://krita.org/en/item/krita-3-3-0/|title=Krita 3.3.0 - Krita|first=Krita|last=Foundation|website=krita.org|date=28 September 2017 }}
  • Microsoft Edge has ANGLE as a rendering option in the "Standards Preview" page in Windows Insider build 17025.
  • Grand Theft Auto V included ANGLE in the installation, normally at Systemdrive.
  • OpenRA uses ANGLE for rendering on Windows{{cite news |last1=Chote |first1=Paul |title=Playtest 20210131 |url=https://www.openra.net/news/playtest-20210131/ |work=OpenRA |date=31 January 2021}}
  • SolveSpace uses ANGLE on Windows.
  • GameMaker: Studio uses ANGLE at compile-time to convert GLSL ES shaders to HLSL9 for the old Windows 32-bit export module.

References

{{reflist}}