summaryrefslogtreecommitdiff
path: root/src/egl/main/egldriver.h
AgeCommit message (Collapse)Author
2010-07-06egl: Rework driver loading.Chia-I Wu
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.
2010-06-29egl: Remove st/egl probe code.Chia-I Wu
It is no longer needed.
2010-06-29st/egl: One driver per hardware.Chia-I Wu
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.
2010-06-23egl: Introduce platform displays internally.Chia-I Wu
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.
2010-05-13egl: Allow a prioritized list of default driversKristian Høgsberg
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.
2010-05-08egl: Add _eglSearchPathForEach.Chia-I Wu
The function can be used by a driver to check each search path of EGL.
2010-02-05egl: Update the comments to typecast macros.Chia-I Wu
Put a note that the macros define functions and should not be ended with a semicolon when used.
2010-02-04egl: Add macros to define typecast functions.Chia-I Wu
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.
2010-01-30egl: Clean up header inclusions.Chia-I Wu
Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
2010-01-26egl: Remove _eglOpenDriver and _eglCloseDriver.Chia-I Wu
_eglCloseDriver is no-op and _eglOpenDriver does nothing but call _eglMatchDriver. Export _eglMatchDriver directly.
2010-01-24egl: Remove _eglFindAPIs.Chia-I Wu
This function is not used and should have been removed by last commit. My mistake.
2010-01-20egl: Add a simple cache for driver probe.Chia-I Wu
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.
2010-01-20egl: Improve driver matching.Chia-I Wu
Make drv->Probe return a score so that the matching can be done by finding the driver with the highest score.
2010-01-20egl: Remove unused driver and display functions.Chia-I Wu
Remove _eglPreloadDriver, _eglLookupDriver, and _eglSplitDisplayString.
2010-01-20egl: Add _eglPreloadDrivers.Chia-I Wu
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.
2010-01-05egl: Fix breakage from -fvisibility=hidden.Chia-I Wu
Mark EGL API and driver functions as PUBLIC. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-08-21egl: Remove dependency on libX11.Chia-I Wu
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 <olvaffe@gmail.com>
2009-08-18egl: Some per-driver data should be per-display.Chia-I Wu
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 <olvaffe@gmail.com>
2009-08-18egl: Change the way drivers are loaded.Chia-I Wu
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 <olvaffe@gmail.com>
2009-08-18egl: Overhaul driver API.Chia-I Wu
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 <olvaffe@gmail.com>
2008-06-20egl: implment EGL_LARGEST_PBUFFER queryBrian Paul
2008-06-19egl: clean up prototype code, new _eglFindAPIs() function.Brian Paul
2008-06-06egl: make _eglChooseDRMDriver() non-staticBrian Paul
2008-05-30egl: new eglGetProcAddress() codeBrian Paul
The idea is to pass the call down to the device driver where an API-specific query can be made. Untested.
2008-05-30egl: clean-up re-org of the client API stateBrian Paul
2008-05-29egl: added Name field to _EGLDriver so a driver name string can propogate up ↵Brian Paul
through EGL_VERSION string
2008-05-28egl: remove unused Display fieldBrian Paul
2008-05-28egl: move a few small functions into new eglmisc.[ch] filesBrian Paul
2008-05-28egl: make sure EGL_VERSION_STRING query returns same version as eglInitialize()Brian Paul
2008-05-28egl: include egldefines.hBrian Paul
2008-05-28egl: added args string to _eglMain()Brian Paul
2008-05-27minor overhaul/re-org of driver selection/loading codeBrian Paul
2006-01-30some initial EGL 1.2 workBrian Paul
2005-11-29Put extension flags, string into separate struct.Brian Paul
2005-11-24Move all the EGL API function pointers into a new _egl_api struct.Brian Paul
2005-08-05More EGL prep. No impact on anything outside of EGLJon Smirl
2005-05-17remove eglQueryDisplayMESA()Brian Paul
2005-05-16use EGLint instead of unsigned long for eglCopyContextMESA, added commentsBrian Paul
2005-05-16added boolean extension flags to _EGLDriverBrian Paul
2005-05-14Add empty placeholder for eglCopyContextMESAJon Smirl
2005-05-13First attempt at getting egl support up on dumb framebuffer.Jon Smirl
Seems to be mostly working. Not all of egl API is implemented.
2005-05-04sync with latest EGL_MESA_screen_surface spec (EGLScreenMESA handles)Brian Paul
2005-04-22initial EGL codeBrian Paul