EGL (Programmierschnittstelle)
EGL | |
---|---|
Basisdaten | |
Maintainer | Khronos Group |
Entwickler | Khronos Group |
Aktuelle Version | 1.5[1] (19. März 2014) |
Programmiersprache | keine, Spezifikation |
Kategorie | Programmierschnittstelle (API) |
www.khronos.org |
EGL ist eine Programmierschnittstelle zwischen OpenGL, OpenGL ES sowie OpenVG und dem Fenstersystem. OpenGL, OpenGL ES und OpenVG sind Programmierschnittstellen zur hardwarebeschleunigten Rasterung. EGL wird von verschiedenen Fenstersystemen unterstützt, wie z. B. dem Android-Fenstersystem, Wayland oder dem Raspberry Pi, also hauptsächlich in eingebetteten Systemen wie Mobiltelefonen, Spielkonsolen und anderen Medien-Geräten eingesetzt. EGL wird unter anderem auch in eingebetteten Systemen ohne Fenstermanager wie z. B. in Flugzeug- oder Auto-Cockpits verwendet. Durch Mesa 3D wird EGL aber auch im X Window System unterstützt. EGL wird vom Industriekonsortium Khronos Group herausgegeben.
Verwendung
- Das Android-Betriebssystem benutzt EGL für die Rasterung von 3D.[2]
- Das Wayland-Protokoll benutzt EGL.[3]
- Das Mir-Protokoll benutzt EGL.[4]
- Das Simple DirectMedia Layer Toolkit wurde portiert, um EGL benutzen zu können.
- Der Raspberry Pi benutzt ebenfalls EGL für die hardwarebeschleunigte Rasterung von 3D.[5]
- Das X Window System bietet durch Mesa 3D ebenfalls EGL-Unterstützung.[6]
Implementierung
- Mesa 3D – ist zurzeit die einzige freie Implementierung von EGL (und etlichen weiteren graphic rendering APIs)
- Nvidia hat EGL-Unterstützung in seine proprietären Treiber eingebaut[7][8]
Siehe auch
- CGL – eine zu EGL äquivalente Schnittstelle zwischen dem macOS-Fenstersystem und OpenGL
- WGL – eine zu EGL äquivalente Schnittstelle zwischen dem Windows-Fenstersystem und OpenGL
- GLX – eine zu EGL äquivalente Schnittstelle zwischen dem X11-Fenstersystem und OpenGL
Einzelnachweise
- ↑ Khronos releases EGL 1.5 specification. Khronos Group, 19. März 2014, abgerufen am 20. März 2014.
- ↑ https://developer.android.com/about/versions/android-2.3-highlights
- ↑ https://ppaalanen.blogspot.com/2012/03/what-does-egl-do-in-wayland-stack.html
- ↑ Archivierte Kopie (Memento des Originals vom 6. März 2013 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ https://elinux.org/RPi_VideoCore_APIs
- ↑ Mesa EGL
- ↑ https://www.heise.de/newsticker/meldung/Anfaenge-fuer-Mir-und-Wayland-Support-in-Nvidias-Linux-Treibern-1973200.html
- ↑ https://www.golem.de/news/linux-grafiktreiber-unterstuetzt-nvidia-wayland-und-mir-1310-101972.html
Auf dieser Seite verwendete Medien
Logo von: EGL – Programmierschnittstelle zwischen OpenGL u.ä. und dem Fenstersystem
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Schema des Linux Kernel Grafikstapels; Wayland nutzt EGL.
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Darstellung des Linux-Grafik-Stapels, unter anderem mit dem Linux Kernel (unten) sowie dem X-Server und Wayland (in der Mitte); Namen entsprechen Paketen in den Debian Archiven, z.B. libGL-mesa-dri
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
en:Wayland (display server protocol)
① The en:evdev module of the en:Linux kernel gets an event and sends it to the en:Wayland compositor. This is similar to the X case, which is great, since we get to reuse all the input drivers already in the kernel.
② The Wayland compositor looks through its scenegraph to determine which window should receive the event. The scenegraph corresponds to what's on screen and the Wayland compositor understands the transformations that it may have applied to the elements in the scenegraph. Thus, the Wayland compositor can pick the right window and transform the screen coordinates to window local coordinates, by applying the inverse transformations. The types of transformation that can be applied to a window is only restricted to what the compositor can do, as long as it can compute the inverse transformation for the input events.
③ As in the X case, when the client receives the event, it updates the UI in response. But in the Wayland case, the rendering happens in the client, and the client just sends a request to the compositor to indicate the region that was updated.
④ The en:Wayland compositor collects damage requests from its clients and then re-composites the screen. The compositor can then directly issue an en:ioctl to schedule a pageflip with KMS