summaryrefslogtreecommitdiffstats
path: root/src/egl/main
Commit message (Collapse)AuthorAgeFilesLines
* egl: Return NULL if we fail to load a default driverKristian Høgsberg2010-05-271-1/+1
|
* egl: Implement EGL_NOK_texture_from_pixmapKristian Høgsberg2010-05-146-11/+48
| | | | | | | 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: Only allow valid config attributes in _eglParseConfigAttribList()Kristian Høgsberg2010-05-141-28/+24
| | | | Passing 0x3030, 0 in the chooser list didn't get caught.
* egl: Silence uninitialized variable warnings.Vinson Lee2010-05-141-1/+1
|
* egl: Implement EGL_NOK_swap_regionKristian Høgsberg2010-05-134-0/+41
| | | | | | | | | 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: Allow a prioritized list of default driversKristian Høgsberg2010-05-136-26/+45
| | | | | | | | | | | | | | 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: Drop broken _EGL_PLATFORM_NO_OS codeKristian Høgsberg2010-05-131-32/+0
| | | | | It would do strlen(library_suffix()) in _eglLoaderFile(), with library_suffix() returning NULL. So obviuosly not used or tested.
* egl: Don't try to load driver basename if the platform needs a suffixKristian Høgsberg2010-05-131-3/+5
| | | | That is, don't dlopen(egl_glx) when we know we need to append .so.
* egl: Add _eglSearchPathForEach.Chia-I Wu2010-05-082-0/+20
| | | | The function can be used by a driver to check each search path of EGL.
* Add egl.pc fileKristian Høgsberg2010-05-042-1/+30
|
* Merge branch '7.8'Dan Nicholson2010-04-191-1/+1
|\ | | | | | | | | | | | | | | Conflicts: progs/egl/Makefile progs/egl/Makefile is gone on master with the egl demos split into subdirectories. Will require an additional commit.
| * egl: Pass flags to locate Xlib headers and librariesDan Nicholson2010-04-191-1/+1
| | | | | | | | | | | | | | | | eglplatform.h pulls in Xlib.h on X11 platforms. Likewise, the egl glx driver and egl programs needs to link to libX11. Make sure we use the locations the user told us about. Signed-off-by: Dan Nicholson <[email protected]>
* | egl: Unbind the old context in _eglBindContext.Chia-I Wu2010-04-061-10/+9
| | | | | | | | The last commit incorrectly moved the code under an "else".
* | egl: Fix eglMakeCurrent with different surfaces.Chia-I Wu2010-04-061-30/+45
| | | | | | | | | | | | 0a82fadcdd0b6ebbc345c7c302da0e0efce40a98 seems to trigger a bug in _eglBindContext. Rework the logics yet again. It is simpler, and hopefully correct this time.
* | egl: Make _eglBindContextToSurfaces more readable.Chia-I Wu2010-03-281-11/+25
| | | | | | | | | | | | There is no effective changes given how the function is called. It is still not trivial, but it should be more readable and resemble _eglBindContextToThread a lot.
* | egl: Always return the previously bound context.Chia-I Wu2010-03-281-9/+8
|/ | | | | | When a newly bound context is the same as the previously bound one, _eglBindContextToThread should still return the context instead of NULL. This gives the driver a chance to flush the context.
* Remove support for GCC older than 3.3.0Ian Romanick2010-03-031-3/+2
| | | | Signed-off-by: Ian Romanick <[email protected]>
* egl: Remove unused _EGL_SKIP_HANDLE_CHECK.Chia-I Wu2010-02-234-53/+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-194-4/+10
| | | | Just follow gcc's advices here.
* egl: Silence warnings in check/return macros.Chia-I Wu2010-02-191-139/+147
| | | | | | The macros give warnings when compiled with -pedantic. This commit is based on a patch by Brian Paul, with minor changes to add do {} while(0) and rename the check macros.
* egl: Revisit global data locking.Chia-I Wu2010-02-174-8/+23
| | | | | Lock the global mutex in _eglPreloadDrivers and _eglAllocScreenHandle. Add comments to why certain pathes do not need locking.
* egl: Always lock a display before using it.Chia-I Wu2010-02-172-45/+81
| | | | | | | This gives a simple access control to the display. It is potentially slow, but a finer grained mutex can always be used in the future. The benefit of this simple approach is that drivers need not to worry about thread-safety.
* egl: Make eglGetDisplay atomic.Chia-I Wu2010-02-173-103/+22
| | | | | Merge _eglNewDisplay and _eglLinkDisplay into _eglFindDisplay. Remove unused _eglUnlinkDisplay.
* egl: Add a mutex to _EGLDisplay.Chia-I Wu2010-02-172-0/+4
| | | | | A display may be shared by multiple threads. Add a mutex for access control.
* egl: eglGetError should return the status of the last call.Chia-I Wu2010-02-171-123/+226
| | | | | | Use macros to record the status of the function call before returning. This is the only way that eglGetError can return the status of the most recent function call.
* egl: Always record error code.Chia-I Wu2010-02-171-4/+5
| | | | | The error code denotes the success or failure of the most recent function call. A call to _eglError should always update the error code.
* egl: Use new error checking macros.Chia-I Wu2010-02-171-115/+110
| | | | Replace all uses of _EGL_DECLARE_* and _eglCheck* by _EGL_CHECK_*.
* egl: Add new error checking macros.Chia-I Wu2010-02-171-94/+134
| | | | | | Add _EGL_CHECK_* which will replace _EGL_DECLARE_* for error checking. Move _eglCheck* earlier in the file so that the macros and the functions are grouped together.
* egl: Add debug messages to config validation and matching.Chia-I Wu2010-02-051-2/+23
| | | | It might be desirable find out which attribute went wrong.
* egl: Clean up eglconfig.h.Chia-I Wu2010-02-051-14/+7
| | | | | Update the comments to macros/functions. Remove unused _eglSetConfigAttrib.
* 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: Clarify IsLinked and IsBound.Chia-I Wu2010-02-052-0/+12
| | | | | | Both a link and a binding creates a reference to the resource. Drivers should not destroy the resource when there is a reference. The difference is better described in doc/egl.html.
* 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: fix wrong argument. Use loader_data instead of loaderIgor Oliveira2010-02-041-1/+1
|
* egl: Rename _eglPreloadForEach callbacks.Chia-I Wu2010-02-031-12/+12
| | | | | | | Rename _eglPreloadFile to _eglLoaderFile, and _eglPreloadFile to _eglLoaderFile. There are several _eglPreload* functions. The callbacks do not belong to them and it should be better to give them a different prefix.
* egl: Fix a potential segfault in driver suffix matching.Chia-I Wu2010-02-031-3/+5
| | | | | The driver suffix might be NULL on some platforms. Perform the matching only when there is a suffix.
* egl: Remove unnecessary #ifdef's.Chia-I Wu2010-02-031-8/+0
| | | | | There were some refactorings with the addition of EGL_DRIVERS_PATH. They made some platform #ifdef's unnecessary.
* egl: Ignore certain environment variables when setuid/setgid.Chia-I Wu2010-02-031-2/+16
| | | | | Specifically, ignore EGL_DRIVERS_PATH when an application is setuid/setgid. And ignore EGL_DRIVER when there is a slash in it.
* egl: Add EGL_DRIVERS_PATH environment variable.Chia-I Wu2010-02-031-99/+191
| | | | | | | | | EGL_DRIVERS_PATH gives a list of colon-separated directories. The given directories will be searched when preloading drivers. This is based on Mike Stroyan's patch, which honors the variable in _eglPreloadDisplayDrivers. It is extended to honor the variable also in _eglPreloadUserDriver and _eglPreloadDefaultDriver in this version.
* egl: Remove unnecessary headers.Vinson Lee2010-01-313-3/+0
|
* egl: Clean up surface attributes.Chia-I Wu2010-01-313-57/+127
| | | | | | 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-314-11/+60
| | | | | | 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: Surface type validaction should depend on extensions supported.Chia-I Wu2010-01-311-1/+2
| | | | | EGL_SCREEN_BIT_MESA is a valid bit only when EGL_MESA_screen_surface is supported.
* egl: Initialize display configs with the display.Chia-I Wu2010-01-312-3/+5
| | | | This changes _eglInitConfig to take the display as its argument.
* egl: Initialize display resources with their display.Chia-I Wu2010-01-316-7/+10
| | | | | | | Change _eglInitSurface, _eglInitContext, and _eglInitImage to take an _EGLDisplay instead of an _EGLDriver. This is a more natural form, and plus, the display encodes information such as the extensions supported that might be required for attribute list parsing.
* egl: Refactor _eglInitImage.Chia-I Wu2010-01-311-10/+40
| | | | Refactor attribute list parsing code to _eglParseImageAttribList.
* egl: Refactor _eglInitContext.Chia-I Wu2010-01-311-19/+95
| | | | | Refactor attribute list parsing code to _eglParseContextAttribList. Add a check to make sure the config supports the client API.
* egl: Refactor _eglInitSurface.Chia-I Wu2010-01-311-141/+146
| | | | Refactor attribute list parsing code to _eglParseSurfaceAttribList.
* egl: Remove code blocks that are commented out.Chia-I Wu2010-01-314-113/+4
| | | | | | They are either unit tests or to demonstrate how functions are supposed to be used. The unit test is outdated and it should be better to take a look at any of the working drivers to see how a function is used.
* egl: Remove my_strdup.Chia-I Wu2010-01-301-17/+2
| | | | There is already _eglstrdup for the main library's use.