Moving docs to be co-located with other docs + updating links. This has the benefit of not including docs in engine content hash semantics.
2.2 KiB
Glossary
Device & Host
In the context of graphics and Impeller, the device is the GPU and the host, the CPU.
Client Rendering API
The API Impeller uses to talk to devices. Examples of these are OpenGL, Metal, Vulkan, Direct X.
Window System Integration (WSI)
Impeller can render using one of the client rendering APIs into a render target. However, that render target needs to be presented in the platform's window system. A Window System Integration API does this and is usually extremely platform specific. For instance, OpenGL may be available on macOS and Linux, but the WSI API for macOS is EAGL and usually (but not always) EGL for Linux.
Varying
In the context of shaders, a varying is a value that is interpolated between two vertices (specified by the vertex shader) and provided to the fragment shader.
OpenGL
OpenGL and OpenGL ES (Embedded Systems) are client rendering APIs. Impeller uses these on older versions of Android today.
Vulkan
Vulkan is a modern client rendering API used by Impeller on Android. It is also available natively on the major non-Apple platforms. On the Apple platforms, Vulkan is implemented on top of Metal via a translation layer called MoltenVK.
Impeller supports a baseline of Vulkan 1.1 and uses extensions where available.
Metal
Metal is a modern client rendering API used by Impeller on macOS and iOS. It is not available on non-Apple platforms.
EGL
EGL provides WSI for OpenGL ES.
Android Hardware Buffers (AHB)
Available only on Android and used by Impeller on API levels at or above 29, AHBs are resources that can be treated as textures by both OpenGL and Vulkan and shared with the system compositor for WSI.
In the Impeller codebase, classes that deal with AHBs have the ahb_ prefix.