X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Fegl.html;h=3d8a85b4e7eecb1c07a15b87cd5d5dac54b19698;hb=3db31c0b06acf2d1505070434764c89bc58a48af;hp=5b750070ca1ff4e9503240066546a177c1aabf8b;hpb=636d01bd61cac83e13c3c64874e7e34e828ca93a;p=mesa.git diff --git a/docs/egl.html b/docs/egl.html index 5b750070ca1..3d8a85b4e7e 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -1,17 +1,25 @@ - - -Mesa EGL + + + + + Mesa EGL + + + - +
+

The Mesa 3D Graphics Library

+
- + +

Mesa EGL

The current version of EGL in Mesa implements EGL 1.4. More information about EGL can be found at - -http://www.khronos.org/egl/.

+ +https://www.khronos.org/egl/.

The Mesa's implementation of EGL uses a driver architecture. The main library (libEGL) is window system neutral. It provides the EGL @@ -36,7 +44,7 @@ the driver for your hardware. For example

The main library and OpenGL is enabled by default. The first two options above enables OpenGL ES 1.x and 2.x. The last two -options enables the listed classic and and Gallium drivers respectively.

+options enables the listed classic and Gallium drivers respectively.

@@ -52,65 +60,62 @@ or more EGL drivers.

There are several options that control the build of EGL at configuration time

- +

Use EGL

@@ -124,70 +129,37 @@ mesa/demos repository.

There are several environment variables that control the behavior of EGL at runtime

- + +

EGL Drivers

- +

Packaging

The ABI between the main library and its drivers are not stable. Nor is -there a plan to stabilize it at the moment. Of the EGL drivers, -egl_gallium has its own hardware drivers and client API modules. -They are considered internal to egl_gallium and there is also no -stable ABI between them. These should be kept in mind when packaging for -distribution.

- -

Generally, egl_dri2 is preferred over egl_gallium -when the system already has DRI drivers. As egl_gallium is loaded -before egl_dri2 when both are available, egl_gallium -is disabled by default.

+there a plan to stabilize it at the moment.

Developers

-

The sources of the main library and the classic drivers can be found at -src/egl/. The sources of the egl state tracker can -be found at src/gallium/state_trackers/egl/.

- -

The suggested way to learn to write a EGL driver is to see how other drivers -are written. egl_glx should be a good reference. It works in any -environment that has GLX support, and it is simpler than most drivers.

+

The sources of the main library and drivers can be found at +src/egl/.

Lifetime of Display Resources

@@ -249,8 +186,8 @@ longer than the display that creates them.

In EGL, when a display is terminated through eglTerminate, all display resources should be destroyed. Similarly, when a thread is released -throught eglReleaseThread, all current display resources should be -released. Another way to destory or release resources is through functions +through eglReleaseThread, all current display resources should be +released. Another way to destroy or release resources is through functions such as eglDestroySurface or eglMakeCurrent.

When a resource that is current to some thread is destroyed, the resource @@ -316,5 +253,6 @@ not be called with the sample display at the same time. If a driver has access to an EGLDisplay without going through the EGL APIs, the driver should as well lock the display before using it. +