summaryrefslogtreecommitdiffstats
path: root/src/egl/main/egldriver.h
Commit message (Collapse)AuthorAgeFilesLines
* egl: Simplify driver matching.Chia-I Wu2011-01-131-11/+1
| | | | | | Add initialization options that drv->API.Initialize should support. Replace drv->Probe by TestOnly initialization option and simplify _eglMatchDriver.
* scons: Updates for targets/egl-static.Chia-I Wu2011-01-121-0/+4
| | | | | | | | Update SConscripts to re-enable or add support for EGL on windows and x11 platforms respectively. targets/egl-gdi is replaced by targets/egl-static, where "-static" means pipe drivers and state trackers are linked to statically by egl_gallium, and egl_gallium is a built-in driver of libEGL. There is no more egl_gallium.dll on Windows.
* egl: Make egl_dri2 and egl_glx built-in drivers.Chia-I Wu2011-01-101-0/+8
| | | | | These two drivers are small in size. Making them built-in should simplify packaging.
* egl: Add an include for size_tThomas Hellstrom2010-11-091-1/+1
| | | | Signed-off-by: Thomas Hellstrom <[email protected]>
* egl: Move fallback routines to eglfallbacks.c.Chia-I Wu2010-10-221-0/+1
| | | | We do not want them to be all over the places.
* egl: Rework driver loading.Chia-I Wu2010-07-061-11/+3
| | | | | | | | | | | | | | | 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: Remove st/egl probe code.Chia-I Wu2010-06-291-8/+0
| | | | It is no longer needed.
* st/egl: One driver per hardware.Chia-I Wu2010-06-291-5/+0
| | | | | | Merge multiple egl_<platform>_<pipe>.so into a single egl_gallium_<pipe>.so. The environment variable EGL_PLATFORM is now used to modify the return value of _eglGetNativePlatform.
* egl: Introduce platform displays internally.Chia-I Wu2010-06-231-0/+5
| | | | | | | | | | | This commit introduces type-safe platform displays internally. A platform display consists of a generic pointer and an enum that specifies the platform. An EGLDisplay is created from a platform display. Native displays become platform displays whose platform is determined by _eglGetNativePlatform(). Platform windows and pixmaps may also be introduced if needed.
* egl: Allow a prioritized list of default driversKristian Høgsberg2010-05-131-0/+4
| | | | | | | | | | | | | | 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: Add _eglSearchPathForEach.Chia-I Wu2010-05-081-0/+5
| | | | The function can be used by a driver to check each search path of EGL.
* egl: Update the comments to typecast macros.Chia-I Wu2010-02-051-0/+6
| | | | | Put a note that the macros define functions and should not be ended with a semicolon when used.
* egl: Add macros to define typecast functions.Chia-I Wu2010-02-041-0/+21
| | | | | | | | | | There are standard typecast functions that are common to most drivers. They are used to typecast, for example, an _EGLSurface to a driver-defined type. This commits define _EGL_DRIVER_STANDARD_TYPECASTS and _EGL_DRIVER_TYPECAST that should hopefully save some typings for driver writers.
* egl: Clean up header inclusions.Chia-I Wu2010-01-301-0/+3
| | | | Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
* egl: Remove _eglOpenDriver and _eglCloseDriver.Chia-I Wu2010-01-261-5/+1
| | | | | _eglCloseDriver is no-op and _eglOpenDriver does nothing but call _eglMatchDriver. Export _eglMatchDriver directly.
* egl: Remove _eglFindAPIs.Chia-I Wu2010-01-241-4/+0
| | | | | This function is not used and should have been removed by last commit. My mistake.
* egl: Add a simple cache for driver probe.Chia-I Wu2010-01-201-0/+8
| | | | | | In current design, multiple drivers will probe the same display and the best driver is determined. The cache can be used by the drivers to store and share the probed data.
* egl: Improve driver matching.Chia-I Wu2010-01-201-3/+16
| | | | | Make drv->Probe return a score so that the matching can be done by finding the driver with the highest score.
* egl: Remove unused driver and display functions.Chia-I Wu2010-01-201-8/+0
| | | | Remove _eglPreloadDriver, _eglLookupDriver, and _eglSplitDisplayString.
* egl: Add _eglPreloadDrivers.Chia-I Wu2010-01-201-1/+5
| | | | | | It can be used to load the user driver specified by EGL_DRIVER, or a set of drivers specified by EGL_DISPLAY, or the default driver, and in that order.
* egl: Fix breakage from -fvisibility=hidden.Chia-I Wu2010-01-051-3/+4
| | | | | | Mark EGL API and driver functions as PUBLIC. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Remove dependency on libX11.Chia-I Wu2009-08-211-4/+0
| | | | | | | | | | | | libX11 is used to determine the screen number, which is in turned used to determine the DRI driver. However, the sysfs interface for determining the DRI driver is gone, and no working driver depends on this mechanism. Display string parsing is moved to a new function, _eglSplitDisplayString. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Some per-driver data should be per-display.Chia-I Wu2009-08-181-26/+1
| | | | | | | 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-4/+11
| | | | | | | | | 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: Overhaul driver API.Chia-I Wu2009-08-181-1/+1
| | | | | | | | | | | | The motivation is so that drivers do not need to look up and check for bad display, context, and etc. It also becomes unnecessary for drivers to call the link functions. This commit makes eglapi.[ch] do the lookup and check. As a result, the driver API is overhauled, and almost all sources and drivers need update. The updates are mainly find and replace with human brains. Signed-off-by: Chia-I Wu <[email protected]>
* egl: implment EGL_LARGEST_PBUFFER queryBrian Paul2008-06-201-0/+2
|
* egl: clean up prototype code, new _eglFindAPIs() function.Brian Paul2008-06-191-0/+4
|
* egl: make _eglChooseDRMDriver() non-staticBrian Paul2008-06-061-0/+3
|
* egl: new eglGetProcAddress() codeBrian Paul2008-05-301-0/+4
| | | | | The idea is to pass the call down to the device driver where an API-specific query can be made. Untested.
* egl: clean-up re-org of the client API stateBrian Paul2008-05-301-1/+2
|
* egl: added Name field to _EGLDriver so a driver name string can propogate up ↵Brian Paul2008-05-291-1/+3
| | | | through EGL_VERSION string
* egl: remove unused Display fieldBrian Paul2008-05-281-2/+0
|
* egl: move a few small functions into new eglmisc.[ch] filesBrian Paul2008-05-281-13/+0
|
* egl: make sure EGL_VERSION_STRING query returns same version as eglInitialize()Brian Paul2008-05-281-5/+6
|
* egl: include egldefines.hBrian Paul2008-05-281-4/+2
|
* egl: added args string to _eglMain()Brian Paul2008-05-281-2/+2
|
* minor overhaul/re-org of driver selection/loading codeBrian Paul2008-05-271-3/+3
|
* some initial EGL 1.2 workBrian Paul2006-01-301-0/+1
|
* Put extension flags, string into separate struct.Brian Paul2005-11-291-7/+14
|
* Move all the EGL API function pointers into a new _egl_api struct.Brian Paul2005-11-241-93/+2
|
* More EGL prep. No impact on anything outside of EGLJon Smirl2005-08-051-4/+1
|
* remove eglQueryDisplayMESA()Brian Paul2005-05-171-2/+0
|
* use EGLint instead of unsigned long for eglCopyContextMESA, added commentsBrian Paul2005-05-161-1/+1
|
* added boolean extension flags to _EGLDriverBrian Paul2005-05-161-0/+10
|
* Add empty placeholder for eglCopyContextMESAJon Smirl2005-05-141-0/+2
|
* First attempt at getting egl support up on dumb framebuffer.Jon Smirl2005-05-131-2/+5
| | | | Seems to be mostly working. Not all of egl API is implemented.
* sync with latest EGL_MESA_screen_surface spec (EGLScreenMESA handles)Brian Paul2005-05-041-3/+16
|
* initial EGL codeBrian Paul2005-04-221-0/+141