summaryrefslogtreecommitdiffstats
path: root/src/egl/main/egldisplay.h
Commit message (Collapse)AuthorAgeFilesLines
* egl: add EGL_NV_post_sub_bufferFredrik Höglund2011-12-201-0/+2
| | | | | | | | | v2: Handle EGL_POST_SUB_BUFFER_SUPPORTED_NV in _eglParseSurfaceAttribList() Signed-off-by: Fredrik Höglund <[email protected]> [olv: remove #ifdef checks]
* egl: remove EGL_ANDROID_swap_rectangleChia-I Wu2011-12-201-1/+0
| | | | | We never support this unofficial extension, and it has been removed from Android recently. There is no point in keeping it.
* egl: add null platformChia-I Wu2011-09-201-0/+1
| | | | | | | The null platform has no window or pixmap surface (but pbuffer surface). And the only valid display is EGL_DEFAULT_DISPLAY. It is useful for offscreen rendering. It works everywhere becase no window system is required.
* egl: add Android-specific extensionsChia-I Wu2011-08-211-0/+3
| | | | | | | | Add EGL_ANDROID_image_native_buffer and EGL_ANDROID_swap_rectangle. There is no spec for them though. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* egl: add _EGL_PLATFORM_ANDROIDChia-I Wu2011-08-211-0/+1
| | | | | | | This is Android Gingerbread platform. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* egl: Native Display autodetectionBenjamin Franzke2011-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | EGL doesnt define howto manage different native platforms. So mesa has a builtime configurable default platform, whith non-standard envvar (EGL_PLATFORM) overwrites. This caused unneeded bugreports, when EGL_PLATFORM was forgotten. Detection is grouped into basic types of NativeDisplays (which itself needs to be detected). The final decision is based on characteristcs of these basic types: File Desciptor based platforms (fbdev): - fstat(2) to check for being a fd that belongs to a character device - check kernel subsystem (todo) Pointer to structuctures (x11, wayland, drm/gbm): - mincore(2) to check whether its valid pointer to some memory. - magic elements (e.g. pointers to exported symbols): o wayland display stores interface type pointer (first elm.) o gbm stores pointer to its constructor (first elm.) o x11 as a fallback (FIXME?) Reviewed-by: Kristian Høgsberg <[email protected]>
* egl: add copyright noticesChia-I Wu2011-07-021-0/+30
| | | | | The list of copyright holders could be incomplete. Please update directly or notify me if your name is missing.
* egl: Add EGL_WL_bind_wayland_displayBenjamin Franzke2011-03-011-0/+2
|
* egl: Add wayland platformBenjamin Franzke2011-02-071-0/+1
|
* 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]>