summaryrefslogtreecommitdiffstats
path: root/src/egl/main/egldisplay.h
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* egl: Remove redundant DeletePending flag.Chia-I Wu2009-07-171-0/+29
| | | | | | | | A context or surface that is neither linked to a display nor current to a thread should be destroyed. Therefore, an unlinked context or surface implies a pending delete automatically. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Destroy display's resources upon termination.Chia-I Wu2009-07-171-0/+4
| | | | | | eglTerminate should destroy the contexts and surfaces of the display. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Return the same EGL Display for the same native display.Chia-I Wu2009-07-171-0/+4
| | | | | | | The latest revision of the spec explicitly requires the same handle to be returned for the same native display. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Add funtions to link contexts and surfaces to displays.Chia-I Wu2009-07-171-5/+39
| | | | | | | | | | | | | | | | | EGL contexts and surfaces are resources of displays. They should be managed by displays. This commit adds a bunch of functions to egldisplay.c to help establish the links between contexts/surfaces and displays. How links are established is considered opaque outside display. Functions like _eglGetSurfaceHandle or _eglLookupSurface are therefore moved to egldisplay.c, with some small modifications. The idea is also extended to display. That is, displays need to link to themselves to be looked up. This commit only adds the functions. A commit to use them should follow. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Support per-thread info.Chia-I Wu2009-07-171-4/+0
| | | | | | | | | 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]>