Index of /pub/Distributions_Linux/NetBSD/NetBSD-release-9/xsrc/external/mit/MesaLib.old/dist/src/egl/main/

NameLast ModifiedSizeType
Parent Directory/ -  Directory
CVS/2020-Mar-19 23:39:37-  Directory
Android.mk2019-Mar-08 11:19:174.5Kapplication/octet-stream
Makefile.am2019-Mar-08 11:19:172.8Kapplication/octet-stream
Makefile.in2019-Mar-08 11:19:1733.8Kapplication/octet-stream
Makefile.sources2019-Mar-08 11:19:170.5Kapplication/octet-stream
README.txt2019-Mar-08 11:19:172.0Ktext/plain
SConscript2019-Mar-08 11:19:170.8Kapplication/octet-stream
egl.def2019-Mar-08 11:19:170.6Kapplication/octet-stream
egl.pc.in2019-Mar-08 11:19:170.2Kapplication/octet-stream
eglapi.c2019-Mar-08 11:19:1749.5Ktext/plain
eglapi.h2019-Mar-08 11:19:1711.2Kapplication/octet-stream
eglarray.c2019-Mar-08 11:19:174.7Ktext/plain
eglarray.h2019-Mar-08 11:19:172.2Kapplication/octet-stream
eglcompiler.h2019-Mar-08 11:19:172.9Kapplication/octet-stream
eglconfig.c2019-Mar-08 11:19:1725.3Ktext/plain
eglconfig.h2019-Mar-08 11:19:177.1Kapplication/octet-stream
eglcontext.c2019-Mar-08 11:19:1718.3Ktext/plain
eglcontext.h2019-Mar-08 11:19:174.0Kapplication/octet-stream
eglcurrent.c2019-Mar-08 11:19:177.9Ktext/plain
eglcurrent.h2019-Mar-08 11:19:172.8Kapplication/octet-stream
egldefines.h2019-Mar-08 11:19:171.5Kapplication/octet-stream
egldisplay.c2019-Mar-08 11:19:1712.6Ktext/plain
egldisplay.h2019-Mar-08 11:19:176.6Kapplication/octet-stream
egldriver.c2019-Mar-08 11:19:1715.1Ktext/plain
egldriver.h2019-Mar-08 11:19:173.6Kapplication/octet-stream
eglfallbacks.c2019-Mar-08 11:19:174.4Ktext/plain
eglglobals.c2019-Mar-08 11:19:172.8Ktext/plain
eglglobals.h2019-Mar-08 11:19:172.0Kapplication/octet-stream
eglimage.c2019-Mar-08 11:19:176.2Ktext/plain
eglimage.h2019-Mar-08 11:19:174.2Kapplication/octet-stream
egllog.c2019-Mar-08 11:19:174.9Ktext/plain
egllog.h2019-Mar-08 11:19:171.8Kapplication/octet-stream
eglmisc.c2019-Mar-08 11:19:175.3Ktext/plain
eglmisc.h2019-Mar-08 11:19:171.5Kapplication/octet-stream
eglmode.c2019-Mar-08 11:19:179.5Ktext/plain
eglmode.h2019-Mar-08 11:19:172.6Kapplication/octet-stream
eglmutex.h2019-Mar-08 11:19:171.8Kapplication/octet-stream
eglscreen.c2019-Mar-08 11:19:175.9Ktext/plain
eglscreen.h2019-Mar-08 11:19:173.4Kapplication/octet-stream
eglstring.c2019-Mar-08 11:19:171.6Ktext/plain
eglstring.h2019-Mar-08 11:19:171.7Kapplication/octet-stream
eglsurface.c2019-Mar-08 11:19:1714.3Ktext/plain
eglsurface.h2019-Mar-08 11:19:174.7Kapplication/octet-stream
eglsync.c2019-Mar-08 11:19:173.3Ktext/plain
eglsync.h2019-Mar-08 11:19:173.2Kapplication/octet-stream
egltypedefs.h2019-Mar-08 11:19:172.1Kapplication/octet-stream

Notes about the EGL library:


The EGL code here basically consists of two things:

1. An EGL API dispatcher.  This directly routes all the eglFooBar() API
   calls into driver-specific functions.

2. Fallbacks for EGL API functions.  A driver _could_ implement all the
   EGL API calls from scratch.  But in many cases, the fallbacks provided
   in libEGL (such as eglChooseConfig()) will do the job.



Bootstrapping:

When the apps calls eglOpenDisplay() a device driver is selected and loaded
(look for dlsym() or LoadLibrary() in egldriver.c).

The driver's _eglMain() function is then called.  This driver function
allocates, initializes and returns a new _EGLDriver object (usually a
subclass of that type).

As part of initialization, the dispatch table in _EGLDriver->API must be
populated with all the EGL entrypoints.  Typically, _eglInitDriverFallbacks()
can be used to plug in default/fallback functions.  Some functions like
driver->API.Initialize and driver->API.Terminate _must_ be implemented
with driver-specific code (no default/fallback function is possible).


A bit later, the app will call eglInitialize().  This will get routed
to the driver->API.Initialize() function.  Any additional driver
initialization that wasn't done in _eglMain() should be done at this
point.  Typically, this will involve setting up visual configs, etc.



Special Functions:

Certain EGL functions _must_ be implemented by the driver.  This includes:

eglCreateContext
eglCreateWindowSurface
eglCreatePixmapSurface
eglCreatePBufferSurface
eglMakeCurrent
eglSwapBuffers

Most of the EGLConfig-related functions can be implemented with the
defaults/fallbacks.  Same thing for the eglGet/Query functions.




Teardown:

When eglTerminate() is called, the driver->API.Terminate() function is
called.  The driver should clean up after itself.  eglTerminate() will
then close/unload the driver (shared library).




Subclassing:

The internal libEGL data structures such as _EGLDisplay, _EGLContext,
_EGLSurface, etc should be considered base classes from which drivers
will derive subclasses.

lighttpd/1.4.19