summaryrefslogtreecommitdiffstats
path: root/src/egl/main/eglglobals.c
Commit message (Collapse)AuthorAgeFilesLines
* egl: Add checks for EGL_MESA_screen_surface.Chia-I Wu2010-07-311-1/+0
| | | | | This allows Mesa EGL to be compiled with eglext.h that does not define EGL_MESA_screen_surface.
* egl: Rework driver loading.Chia-I Wu2010-07-061-2/+0
| | | | | | | | | | | | | | | Driver loading is now splitted into two stages. In the first stage, an _EGLModule is created for each driver: user driver, default drivers, and all files in the search directories that start with "egl_". Modules are not loaded at this stage. In the second stage, each module is loaded to initialize a display. The process stops at the first module that can initialize the display. If eglGetProcAddress is called before eglInitialize, the same code path will be taken to find the first module that supports EGL_DEFAULT_DISPLAY. Because we do not want to initialize the display, drv->Probe is used instead in this case.
* egl: Allow a prioritized list of default driversKristian Høgsberg2010-05-131-3/+0
| | | | | | | | | | | | | | When there is no user driver or any matching display drivers we fall back to the default driver. This patch lets us have a list of default drivers instead of just one. The drivers are loaded in turn and we attempt to initialize the display. If it fails we unload the driver and move on to the next one. Compared to the display driver mechanism, this avoids loading a number of drivers and then only using one. Also, we call Initialize to see if the driver will work instead of relying on Probe. To know for sure that a driver will work, Probe really have to do a full Initialize, so we will just use Initialize directly.
* egl: Clean up header inclusions.Chia-I Wu2010-01-301-0/+1
| | | | Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
* egl: Remove unnecessary headers.Vinson Lee2010-01-281-1/+0
|
* egl: Improve logging facility.Chia-I Wu2009-10-131-3/+4
| | | | | | | Add _eglSetLogger and _eglSetLogLevel to allow drivers to change the message logger or report level. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Allow binding to any client API.Chia-I Wu2009-10-131-1/+0
| | | | | | | As a result, EGL_NONE is no longer a valid client API. And it is possible that no config supports the current bound API. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Remove hash table for displays.Chia-I Wu2009-08-181-1/+3
| | | | | | | The hash table was used to map a display to a handle. It is simpler to cast directly. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Some per-driver data should be per-display.Chia-I Wu2009-08-181-1/+0
| | | | | | | Move some fields of _EGLDriver to _EGLDisplay. It also becomes unnecessary to pass _EGLDisplay to drivers when _eglMain is called. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Change the way drivers are loaded.Chia-I Wu2009-08-181-3/+5
| | | | | | | | | Driver is chosen and preloaded when eglGetDisplay is called. Later when eglInitialize is called, the same driver is matched to initialize the display. Also, add new, but unused, hooks to EGLDriver to allow a driver to probe a display or unload itself. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Add _eglAddAtExitCall.Chia-I Wu2009-08-111-0/+40
| | | | | | | Add a convenient wrapper to register atexit calls. Add mutex to _eglGlobal along the way. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Make _eglGlobal initialize statically.Chia-I Wu2009-08-111-26/+6
| | | | | | | Now that display and surface hash tables are moved out, _eglGlobal can be initialized statically. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Make display and surface hash tables local.Chia-I Wu2009-08-111-5/+1
| | | | | | | Move display and surface hash tables to egldisplay.c, and have them initialized on demand. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Initialize current thread management on demand.Chia-I Wu2009-08-111-4/+0
| | | | | | | | | | Current thread management was initialized in _eglInitGlobals, which is called only in eglGetDisplay. Since EGL does not require eglGetDisplay to be called first, the initialization is better to be done on demand. _eglFiniCurrent is removed, as it is not called at all. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Support per-thread info.Chia-I Wu2009-07-171-109/+4
| | | | | | | | | This commit introduces a "current" system to manage per-thread info. It uses TLS, if GLX_USE_TLS is defined, or pthread, if PTHREADS is defined. If none of them are defined, it uses a dummy implementation that is just like before. Signed-off-by: Chia-I Wu <[email protected]>
* egl: fix _eglGlobal initialization for WindowsJonathan White2008-08-041-3/+4
|
* egl: default API should be ESBrian Paul2008-06-201-1/+1
|
* egl: clean-up re-org of the client API stateBrian Paul2008-05-301-2/+1
|
* eliminate the context hash tableBrian Paul2008-05-271-2/+0
| | | | | In EGL 1.4 the opaque EGLContext type is a pointer so we can just cast between public EGLContext handles and private _EGLContext pointers.
* some initial EGL 1.2 workBrian Paul2006-01-301-3/+36
|
* minor code movementBrian Paul2005-12-171-14/+0
|
* Some initial per-thread support.Brian Paul2005-12-101-5/+19
| | | | Rename eglShowSurfaceMESA to eglShowScreenSurfaceMESA.
* report error token in message printed in _eglError()Brian Paul2005-11-241-1/+50
|
* change error messageBrian Paul2005-11-231-1/+2
|
* sync with latest EGL_MESA_screen_surface spec (EGLScreenMESA handles)Brian Paul2005-05-041-0/+14
|
* initial EGL codeBrian Paul2005-04-221-0/+51