summaryrefslogtreecommitdiffstats
path: root/src/egl/main/egldisplay.h
Commit message (Collapse)AuthorAgeFilesLines
* egl: Improve driver selection.Chia-I Wu2011-01-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | The idea is to be able to match a driver using the following order try egl_gallium with hw renderer try egl_dri2 try egl_gallium with sw renderer try egl_glx given the module list egl_gallium egl_dri2 egl_glx For that, UseFallback initialization option is added. The module list is matched twice: with the option unset and with the option set. In the first pass, egl_gallium skips its sw renderer and egl_glx rejects to initialize since UseFallback is not set. In the second pass, egl_gallium skips its hw renderer and egl_dri2 rejects to initialize since UseFallback is set. The process stops at the first driver that initializes the display.
* egl: Simplify driver matching.Chia-I Wu2011-01-131-0/+5
| | | | | | Add initialization options that drv->API.Initialize should support. Replace drv->Probe by TestOnly initialization option and simplify _eglMatchDriver.
* egl: Cleanup _EGLDisplay initialization.Chia-I Wu2011-01-131-14/+14
| | | | | Reorder/rename and document the fields that should be set by the driver during initialization. Drop the major/minor arguments from drv->API.Initialize.
* egl: Add reference count for resources.Chia-I Wu2010-10-231-0/+13
| | | | | This is a really simple mechanism. There is no atomicity and the caller is expected to hold the display lock.
* egl: Drop dpy argument from the link functions.Chia-I Wu2010-10-231-1/+1
| | | | | All display resources are already initialized with a display. Linking simply links a resource to its display.
* egl: Add EGL_MESA_drm_image extensionKristian Høgsberg2010-08-251-0/+1
| | | | Create EGLImages from DRM buffer handles.
* egl: Add support for EGL_KHR_fence_sync.Chia-I Wu2010-08-171-0/+1
| | | | Individual drivers still need to support and enable the extension.
* egl: Add support for EGL_KHR_reusable_sync.Chia-I Wu2010-08-171-0/+6
| | | | Individual drivers still need to support and enable the extension.
* egl: EGL_KHR_surfaceless_* extensionsKristian Høgsberg2010-07-281-0/+3
| | | | | | | | | These extensions allow an application to make a context current by passing EGL_NO_SURFACE for the write and read surface in the call to eglMakeCurrent. The motivation is that applications that only want to render to client API targets (such as OpenGL framebuffer objects) should not need to create a throw-away EGL surface just to get a current context.
* egl: Store screens in a dynamic array.Chia-I Wu2010-06-301-3/+1
|
* egl: Store configs in a dynamic array.Chia-I Wu2010-06-301-3/+2
|
* st/egl: One driver per hardware.Chia-I Wu2010-06-291-0/+4
| | | | | | 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: Add support for EGL_MESA_drm_display.Chia-I Wu2010-06-231-0/+1
| | | | | | | The extension defines eglGetDRMDisplay that creates an EGLDisplay from a DRM fd. Calling eglCreateWindowSurace or eglCreatePixmapSurface with such displays will generate EGL_BAD_NATIVE_WINDOW or EGL_BAD_NATIVE_PIXMAP.
* egl: Introduce platform displays internally.Chia-I Wu2010-06-231-3/+16
| | | | | | | | | | | 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: Implement EGL_NOK_texture_from_pixmapKristian Høgsberg2010-05-141-0/+1
| | | | | | | This extension allows a color buffer to be used for both rendering and texturing. EGL allows the use of color buffers of pbuffer drawables for texturing, this extension extends this to allow the use of color buffers of pixmaps too.
* egl: Implement EGL_NOK_swap_regionKristian Høgsberg2010-05-131-0/+1
| | | | | | | | | This extension adds a new function which provides an alternative to eglSwapBuffers. eglSwapBuffersRegionNOK accepts two new parameters in addition to those in eglSwapBuffers. The new parameters consist of a pointer to a list of 4-integer blocks defining rectangles (x, y, width, height) and an integer specifying the number of rectangles in the list.
* egl: Remove unused _EGL_SKIP_HANDLE_CHECK.Chia-I Wu2010-02-231-24/+0
| | | | | | It was added to skip checking EGLDisplay, EGLSurface, and etc. It is never defined and the spec does not allow the checks to be skipped. Remove it for good.
* egl: Silence warnings when compiled with -pedantic.Chia-I Wu2010-02-191-0/+2
| | | | Just follow gcc's advices here.
* egl: Make eglGetDisplay atomic.Chia-I Wu2010-02-171-23/+1
| | | | | Merge _eglNewDisplay and _eglLinkDisplay into _eglFindDisplay. Remove unused _eglUnlinkDisplay.
* egl: Add a mutex to _EGLDisplay.Chia-I Wu2010-02-171-0/+3
| | | | | A display may be shared by multiple threads. Add a mutex for access control.
* egl: Clean up surface attributes.Chia-I Wu2010-01-311-2/+0
| | | | | | Add missing attributes and use correct types in _EGLSurface. Remove ifdef tests that serve no purpose. Update _eglQuerySurface and _eglSurfaceAttrib for missing queries and checks.
* egl: Add support for more EGLImage extensions to EGL core.Chia-I Wu2010-01-311-0/+5
| | | | | | Add support EGL_KHR_vg_parent_image and EGL_KHR_gl_*. This is as simple as adding some flags that can be enabled. Individual drivers need to implement the extensions before enbaling the flags.
* egl: Clean up header inclusions.Chia-I Wu2010-01-301-0/+1
| | | | Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
* egl: Use a boolean to indicate whether a display is initialized.Chia-I Wu2010-01-281-0/+1
| | | | | | The driver pointer of the display was used to decide whether a display is initialized. Use a boolean for that purpose allows accessing the driver of an uninitialized display.
* egl: Use a boolean to indicate whether a resource is linked.Chia-I Wu2010-01-261-1/+5
| | | | | | An unlinked resource may still be a current resource such as current surfaces. There might still be a need to know which display the unlinked resource belongs to.
* egl: Mark _eglCheckResource as PUBLIC.Chia-I Wu2010-01-261-1/+1
| | | | | To support extensions such as GL_OES_EGL_image, the drivers need a way to check if a given EGLImageKHR is valid.
* egl: Native types are renamed in EGL 1.3.Chia-I Wu2010-01-251-2/+2
| | | | Rename Native*Type to EGLNative*Type.
* egl: Make resource void pointer in _eglCheckResource.Chia-I Wu2010-01-251-3/+3
| | | | | This emphasizes the fact that the resource to be checked could really be invalid and have an unknown type.
* egl: Add support for EGL_KHR_image.Chia-I Wu2010-01-251-0/+3
| | | | Individual drivers still need to implement the API hooks.
* egl: Remove unused casting functions.Chia-I Wu2010-01-241-21/+0
| | | | _eglUIntToPointer and _eglPointerToUInt are no longer used.
* egl: Make surfaces and contexts resources.Chia-I Wu2010-01-241-4/+1
| | | | | Turn _EGLSurface and _EGLContext into _EGLResource so that they can be managed uniformly.
* egl: Add _EGLResource and _EGLResourceType.Chia-I Wu2010-01-241-0/+49
| | | | | | Resources are objects managed by a display. They can be linked to or unlinked from a display. It is also possible to check if a resource is valid.
* egl: Move surface functions in egldisplay.[ch] to eglsurface.[ch]Chia-I Wu2010-01-241-55/+0
| | | | | Move functions to where they should be. There should be no real change here.
* egl: Move context functions in egldisplay.[ch] to eglcontext.[ch].Chia-I Wu2010-01-241-55/+0
| | | | | Move functions to where they should be. There should be no real change here.
* egl: Improve driver matching.Chia-I Wu2010-01-201-1/+0
| | | | | 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-4/+0
| | | | Remove _eglPreloadDriver, _eglLookupDriver, and _eglSplitDisplayString.
* egl: Fix breakage from -fvisibility=hidden.Chia-I Wu2010-01-051-2/+2
| | | | | | Mark EGL API and driver functions as PUBLIC. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Rework config lookup.Chia-I Wu2009-09-291-0/+1
| | | | | | | Make it similiar to how contexts and surfaces are looked up. It should be slightly faster, and work better with multiple displays. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Remove Xdpy from EGLDisplay.Chia-I Wu2009-08-261-8/+0
| | | | | | It is not used anymore. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Remove dependency on libX11.Chia-I Wu2009-08-211-0/+4
| | | | | | | | | | | | 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: Check for null display in handle checking.Chia-I Wu2009-08-211-3/+6
| | | | | | The display may be NULL when checking a handle. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Add back handle checking.Chia-I Wu2009-08-181-2/+50
| | | | | | | Handle checking was done using hash tables. Now that they are gone, we have to loop over the lists. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Make lookup functions static inline.Chia-I Wu2009-08-181-34/+78
| | | | | | progs/egl/demo3.c is also changed since it uses an internal function. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Remove hash table for displays.Chia-I Wu2009-08-181-1/+7
| | | | | | | 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: Remove hash table for surfaces.Chia-I Wu2009-08-181-3/+0
| | | | | | | The hash table was used to map a surface 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-0/+25
| | | | | | | 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-1/+0
| | | | | | | | | 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-3/+3
| | | | | | | | | | | | 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: Make display and surface hash tables local.Chia-I Wu2009-08-111-0/+5
| | | | | | | Move display and surface hash tables to egldisplay.c, and have them initialized on demand. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Silence warnings on x86-64.Chia-Wu2009-07-311-0/+21
| | | | | | | Casting an unsigned int to or from a pointer directly gives warnings on x86-64. Add wrappers to silence the warnings. Signed-off-by: Chia-I Wu <[email protected]>