EGL (Programmierschnittstelle)

EGL

EGL logo
Basisdaten

MaintainerKhronos Group
EntwicklerKhronos Group
Aktuelle Version1.5[1]
(19. März 2014)
Programmiersprachekeine, Spezifikation
KategorieProgrammierschnittstelle (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

(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Das Wayland Protokoll definiert, dass Klienten via EGL direkt in den Framebuffer zeichnen. Für Mesa 3D wurde dafür libwayland-EGL geschrieben. Diese Bibliothek erweitert die vorhandene Mesa-Implementierung von EGL dahingehend, dass die Zugriffe effizienter werden. EGL ist eine Abstraktion zwischen z. B. Wayland und den APIs OpenGL, OpenGL ES sowie OpenVG.
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Der Linux Grafik-Stapel baut auf Mesa 3D, eine freie Implementierung vieler Grafik-Programmierschnittstellen
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Wayland nutzt EGL, damit Direct Rendering.

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

  1. Khronos releases EGL 1.5 specification. Khronos Group, 19. März 2014, abgerufen am 20. März 2014.Vorlage:Cite web/temporär
  2. https://developer.android.com/about/versions/android-2.3-highlights
  3. https://ppaalanen.blogspot.com/2012/03/what-does-egl-do-in-wayland-stack.html
  4. 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.@1@2Vorlage:Webachiv/IABot/wiki.ubuntu.com
  5. https://elinux.org/RPi_VideoCore_APIs
  6. Mesa EGL
  7. https://www.heise.de/newsticker/meldung/Anfaenge-fuer-Mir-und-Wayland-Support-in-Nvidias-Linux-Treibern-1973200.html
  8. https://www.golem.de/news/linux-grafiktreiber-unterstuetzt-nvidia-wayland-und-mir-1310-101972.html

Auf dieser Seite verwendete Medien

EGL OpenGL Logo.svg
Logo von: EGL – Programmierschnittstelle zwischen OpenGL u.ä. und dem Fenstersystem
Linux graphics drivers DRI Wayland.svg
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
Schema des Linux Kernel Grafikstapels; Wayland nutzt EGL.
Linux Graphics Stack 2013.svg
(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
Wayland display server protocol.svg
(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