mesa/src/egl/main
Adam Jackson 7a58262e58 egl: Remove skeleton implementation of EGL_MESA_screen_surface
No backend wires this up to anything, and the extension spec has been
marked obsolete for 4+ years.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-05-11 14:19:37 -04:00
..
Android.mk android: fix the building rules for Android 5.0 2015-04-22 15:53:35 +01:00
Makefile.am scons: Don't build egl on Windows. 2015-03-25 10:42:32 +00:00
Makefile.sources egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
README.txt
SConscript scons: Don't build egl on Windows. 2015-03-25 10:42:32 +00:00
egl.def
egl.pc.in
eglapi.c egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
eglapi.h egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
eglarray.c
eglarray.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
eglcompiler.h egl/main: remove no-longer needed definition of stdint types 2015-03-05 14:45:54 +00:00
eglconfig.c egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
eglconfig.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
eglcontext.c egl: Fix OpenGL ES version checks in _eglParseContextAttribList() 2014-08-04 18:31:26 -07:00
eglcontext.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
eglcurrent.c egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
eglcurrent.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
egldefines.h s/Tungsten Graphics/VMware/ 2014-01-17 20:00:32 +00:00
egldisplay.c egl/main: drop platform fbdev specific code 2015-03-21 17:16:41 +00:00
egldisplay.h egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
egldriver.c egl/main: use c11/threads' mutex directly 2015-03-11 23:28:25 +00:00
egldriver.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
eglfallbacks.c egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
eglglobals.c egl/main: use c11/threads' mutex directly 2015-03-11 23:28:25 +00:00
eglglobals.h egl/main: use c11/threads' mutex directly 2015-03-11 23:28:25 +00:00
eglimage.c
eglimage.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
egllog.c egl/main: use c11/threads' mutex directly 2015-03-11 23:28:25 +00:00
egllog.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
eglstring.c s/Tungsten Graphics/VMware/ 2014-01-17 20:00:32 +00:00
eglstring.h s/Tungsten Graphics/VMware/ 2014-01-17 20:00:32 +00:00
eglsurface.c egl: Remove skeleton implementation of EGL_MESA_screen_surface 2015-05-11 14:19:37 -04:00
eglsurface.h egl/main: no longer export internal function 2015-03-05 14:45:53 +00:00
eglsync.c egl/dri2: return the latest sync status in eglGetSyncAttribKHR 2015-04-30 14:38:38 +02:00
eglsync.h egl/dri2: implement EGL_KHR_cl_event2 (v2) 2015-04-30 14:38:38 +02:00
egltypedefs.h s/Tungsten Graphics/VMware/ 2014-01-17 20:00:32 +00:00

README.txt


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.