summaryrefslogtreecommitdiff
path: root/src/egl/main
AgeCommit message (Collapse)Author
2010-04-06egl: Fix eglMakeCurrent with different surfaces.Chia-I Wu
0a82fadcdd0b6ebbc345c7c302da0e0efce40a98 seems to trigger a bug in _eglBindContext. Rework the logics yet again. It is simpler, and hopefully correct this time.
2010-03-28egl: Make _eglBindContextToSurfaces more readable.Chia-I Wu
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.
2010-03-28egl: Always return the previously bound context.Chia-I Wu
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.
2010-03-03Remove support for GCC older than 3.3.0Ian Romanick
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-02-23egl: Remove unused _EGL_SKIP_HANDLE_CHECK.Chia-I Wu
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.
2010-02-19egl: Silence warnings when compiled with -pedantic.Chia-I Wu
Just follow gcc's advices here.
2010-02-19egl: Silence warnings in check/return macros.Chia-I Wu
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.
2010-02-17egl: Revisit global data locking.Chia-I Wu
Lock the global mutex in _eglPreloadDrivers and _eglAllocScreenHandle. Add comments to why certain pathes do not need locking.
2010-02-17egl: Always lock a display before using it.Chia-I Wu
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.
2010-02-17egl: Make eglGetDisplay atomic.Chia-I Wu
Merge _eglNewDisplay and _eglLinkDisplay into _eglFindDisplay. Remove unused _eglUnlinkDisplay.
2010-02-17egl: Add a mutex to _EGLDisplay.Chia-I Wu
A display may be shared by multiple threads. Add a mutex for access control.
2010-02-17egl: eglGetError should return the status of the last call.Chia-I Wu
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.
2010-02-17egl: Always record error code.Chia-I Wu
The error code denotes the success or failure of the most recent function call. A call to _eglError should always update the error code.
2010-02-17egl: Use new error checking macros.Chia-I Wu
Replace all uses of _EGL_DECLARE_* and _eglCheck* by _EGL_CHECK_*.
2010-02-17egl: Add new error checking macros.Chia-I Wu
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.
2010-02-05egl: Add debug messages to config validation and matching.Chia-I Wu
It might be desirable find out which attribute went wrong.
2010-02-05egl: Clean up eglconfig.h.Chia-I Wu
Update the comments to macros/functions. Remove unused _eglSetConfigAttrib.
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-05egl: Clarify IsLinked and IsBound.Chia-I Wu
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.
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-02-04egl: fix wrong argument. Use loader_data instead of loaderIgor Oliveira
2010-02-03egl: Rename _eglPreloadForEach callbacks.Chia-I Wu
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.
2010-02-03egl: Fix a potential segfault in driver suffix matching.Chia-I Wu
The driver suffix might be NULL on some platforms. Perform the matching only when there is a suffix.
2010-02-03egl: Remove unnecessary #ifdef's.Chia-I Wu
There were some refactorings with the addition of EGL_DRIVERS_PATH. They made some platform #ifdef's unnecessary.
2010-02-03egl: Ignore certain environment variables when setuid/setgid.Chia-I Wu
Specifically, ignore EGL_DRIVERS_PATH when an application is setuid/setgid. And ignore EGL_DRIVER when there is a slash in it.
2010-02-03egl: Add EGL_DRIVERS_PATH environment variable.Chia-I Wu
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.
2010-01-31egl: Remove unnecessary headers.Vinson Lee
2010-01-31egl: Clean up surface attributes.Chia-I Wu
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.
2010-01-31egl: Add support for more EGLImage extensions to EGL core.Chia-I Wu
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.
2010-01-31egl: Surface type validaction should depend on extensions supported.Chia-I Wu
EGL_SCREEN_BIT_MESA is a valid bit only when EGL_MESA_screen_surface is supported.
2010-01-31egl: Initialize display configs with the display.Chia-I Wu
This changes _eglInitConfig to take the display as its argument.
2010-01-31egl: Initialize display resources with their display.Chia-I Wu
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.
2010-01-31egl: Refactor _eglInitImage.Chia-I Wu
Refactor attribute list parsing code to _eglParseImageAttribList.
2010-01-31egl: Refactor _eglInitContext.Chia-I Wu
Refactor attribute list parsing code to _eglParseContextAttribList. Add a check to make sure the config supports the client API.
2010-01-31egl: Refactor _eglInitSurface.Chia-I Wu
Refactor attribute list parsing code to _eglParseSurfaceAttribList.
2010-01-31egl: Remove code blocks that are commented out.Chia-I Wu
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.
2010-01-30egl: Remove my_strdup.Chia-I Wu
There is already _eglstrdup for the main library's use.
2010-01-30egl: Remove unused VisibleRefCount.Chia-I Wu
2010-01-30egl: Rename Binding to CurrentContext in _EGLSurface.Chia-I Wu
A context can be bound to a surface just like it can be bound to a thread. CurrentContext is a more consistent name.
2010-01-30egl: Clean up header inclusions.Chia-I Wu
Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
2010-01-28egl: Remove unnecessary headers.Vinson Lee
2010-01-28egl: Migrate drivers to use _eglBindContext.Chia-I Wu
_eglMakeCurrent is a big hammer that is not easy to use. Migrate drivers to use _eglBindContext and un-export _eglMakeCurrent.
2010-01-28egl: Correctly unbind contexts in eglReleaseThread.Chia-I Wu
MakeCurrent unbinds the current context of the current API. Modify the current API to make sure all contexts are correctly unbound.
2010-01-28egl: eglMakeCurrent should accept an uninitialized display.Chia-I Wu
When no context or surface are given, the display is allowed to be uninitialized. Most drivers cannot handle an uninitialized display. But they are updated to at least throw a fatal message.
2010-01-28egl: Add _eglBindContext.Chia-I Wu
It works similar to _eglMakeCurrent, except that the old context and surfaces are returned instead of destroyed. _eglMakeCurrent is now calling the new _eglBindContext.
2010-01-28egl: Use a boolean to indicate whether a display is initialized.Chia-I Wu
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.
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-26egl: Fix a segfault when a display is initialized again.Chia-I Wu
Reset dpy->MaxConfigs so that dpy->Configs is re-allocated.
2010-01-26egl: Remove _eglGetCurrentSurface and _eglGetCurrentDisplay.Chia-I Wu
They have little use in drivers since drivers need to work for multiple current contexts.
2010-01-26egl: Fix leaks in eglReleaseThread.Chia-I Wu
There may be multiple bound contexts that should be unbound.