What is difference between ANGLE and Skia Graphics Engine?
Asked Answered
W

1

10

ANGLE is an cross-platform graphics engine abstraction layer developed by Google. ANGLE team has described it as a portable OpenGL. The API is mainly designed to bring high-performance OpenGL compatibility to Windows computers and to web browsers such as Chromium/Google Chrome by translating OpenGL calls to Direct3D, which has much better driver support.

Skia Graphics Engine is a graphics library written in C++ which abstracts away platform-specific graphics API.

Both are abstraction layer developed by Google to support openGL and both are getting used in Google Chrome.

What exactly is difference between both?

Whitehurst answered 15/8, 2021 at 3:50 Comment(0)
E
27

Some context first.

OpenGL is an API to program graphics cards. The API calls to OpenGL get translated into commands for the GPU card in the computer, by the driver of the GPU vendor (usually Nvidia, AMD or Intel).

(other APIs to program GPUs are Direct3D on Windows, Metal on macOS, Vulkan, etc.)

These APIs are somewhat "low-level", in the sense that they give calls to instruct the GPU what to do at a raw "geometry"/"pixels" level; these APIs don't have anything like "draw a rectangle here", or "draw this image there".

Web browsers like Chrome provide the WebGL API for HTML5 pages. WebGL is mostly the OpenGL ES 2.0 API.

ANGLE is a library that converts the OpenGL ES 2.0 API to one of the GPU APIs: you make OpenGL ES 2 calls and ANGLE converts to equivalent calls in desktop OpenGL, or to Direct3D on Windows, or to Metal on macOS.

This gives you a consistent implementation of OpenGL ES 2.0, which Chrome wants for the web. (This is super useful because the Windows OpenGL implementations differ from vendor to vendor, and macOS stopped updating its OpenGL implementation at version 4.1 a long time ago).

Skia is a higher level API that lets you "draw a rectangle here" and "draw this image there" and much more (draw text; draw paths; draw curves; etc.) This is the usual high-level API that you'd get in higher level languages, and on the Web Canvas API.

To implement those calls, Skia converts the drawing commands to lower-level APIs like GL, Metal, etc. One of the APIs that Skia can target is ANGLE, so that Skia drawings get consistent output across platforms.

Ese answered 12/1, 2022 at 19:58 Comment(1)
Golden answer ⭐ So many concepts explained simply and beautifully. I'm now able to see the big picture and where every puzzle fits in the piece :)Bookbindery

© 2022 - 2024 — McMap. All rights reserved.