Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vinson Lee db71bdc31c egl: Fix '_eglAddAtExitCall' implicit declaration warning. 15 lat temu
..
Makefile egl: Add dynamic array. 15 lat temu
README.txt egl: some basic docs for libEGL 17 lat temu
SConscript egl: Add dynamic array. 15 lat temu
egl.pc.in Add egl.pc file 15 lat temu
eglapi.c egl: EGL_KHR_surfaceless_* extensions 15 lat temu
eglapi.h egl: Implement EGL_NOK_swap_region 15 lat temu
eglarray.c egl: Return the correct array size in _eglFlattenArray. 15 lat temu
eglarray.h egl: Rework driver loading. 15 lat temu
eglcompiler.h Define PUBLIC to dllexport on MSVC. 15 lat temu
eglconfig.c egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglconfig.h egl: Implement EGL_NOK_texture_from_pixmap 15 lat temu
eglconfigutil.c egl: Clean up header inclusions. 15 lat temu
eglconfigutil.h egl: Remove unused helper functions. 15 lat temu
eglcontext.c egl: Fix deref before NULL-check 15 lat temu
eglcontext.h egl: Clarify IsLinked and IsBound. 15 lat temu
eglcurrent.c egl: Fix '_eglAddAtExitCall' implicit declaration warning. 15 lat temu
eglcurrent.h egl: Clean up header inclusions. 15 lat temu
egldefines.h egl: Allow a prioritized list of default drivers 15 lat temu
egldisplay.c egl: Store configs in a dynamic array. 15 lat temu
egldisplay.h egl: EGL_KHR_surfaceless_* extensions 15 lat temu
egldriver.c egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
egldriver.h egl: Rework driver loading. 15 lat temu
eglglobals.c egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglglobals.h egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglimage.c egl: Add support for more EGLImage extensions to EGL core. 15 lat temu
eglimage.h egl: Add support for more EGLImage extensions to EGL core. 15 lat temu
egllog.c egl: Use SConscript for Windows build. 15 lat temu
egllog.h egl: Clean up header inclusions. 15 lat temu
eglmisc.c egl: EGL_KHR_surfaceless_* extensions 15 lat temu
eglmisc.h egl: Clean up header inclusions. 15 lat temu
eglmode.c egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglmode.h egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglmutex.h egl: Add eglmutex.h. 16 lat temu
eglscreen.c egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglscreen.h egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglstring.c egl: Use SConscript for Windows build. 15 lat temu
eglstring.h egl: s/_EGL_PLATFORM/_EGL_OS/ and s/POSIX/UNIX/. 15 lat temu
eglsurface.c egl: Add checks for EGL_MESA_screen_surface. 15 lat temu
eglsurface.h egl: Implement EGL_NOK_texture_from_pixmap 15 lat temu
egltypedefs.h egl: Add dynamic array. 15 lat temu

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.