Kristian Høgsberg
3a82c8c562
egl_dri2: Enable KHR_gl_texture_2D_image
...
Forgot to set the enabled bit when I implemented the extension.
2010-04-14 16:22:48 -04:00
Chia-I Wu
d18d0fdcd8
egl_dri2: Flush before context switch and swap buffers.
...
DRI does not define any callback to flush the current context. GLX
loader simply calls glFlush. Follow the GLX loader here.
2010-04-06 19:54:06 +08:00
Chia-I Wu
848945e5d6
egl: Unbind the old context in _eglBindContext.
...
The last commit incorrectly moved the code under an "else".
2010-04-06 11:55:40 +08:00
Chia-I Wu
bbe459b14d
egl: Fix eglMakeCurrent with different surfaces.
...
0a82fadcdd seems to trigger a bug in
_eglBindContext. Rework the logics yet again. It is simpler, and
hopefully correct this time.
2010-04-06 11:37:58 +08:00
Chia-I Wu
0a82fadcdd
egl: Make _eglBindContextToSurfaces more readable.
...
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-28 03:37:28 +08:00
Chia-I Wu
551bfe7a09
egl: Always return the previously bound context.
...
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-28 03:37:28 +08:00
Ian Romanick
016fc30839
Remove support for GCC older than 3.3.0
...
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-03-03 16:26:32 -08:00
Kristian Høgsberg
4007342584
egl_dri2: Factor out DRI2 protocol bits from initialize.
2010-03-03 10:47:49 -05:00
Kristian Høgsberg
557c20b309
egl_dri2: Implement EGL_KHR_gl_renderbuffer_image
2010-02-26 14:52:14 -05:00
Kristian Høgsberg
f4e7d1b1e5
egl_dri2: Implement EGL_KHR_image and EGL_KHR_image_pixmap
2010-02-24 14:28:42 -05:00
Chia-I Wu
7d1237bc71
egl: Remove unused _EGL_SKIP_HANDLE_CHECK.
...
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-23 22:42:46 +08:00
Kristian Høgsberg
32f2fd1c5d
Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versions
2010-02-19 12:03:01 -05:00
Chia-I Wu
496724b869
egl: Silence warnings when compiled with -pedantic.
...
Just follow gcc's advices here.
2010-02-19 12:40:01 +08:00
Chia-I Wu
bef4b476d7
egl: Silence warnings in check/return macros.
...
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-19 12:34:18 +08:00
Chia-I Wu
4afe24808e
egl: Revisit global data locking.
...
Lock the global mutex in _eglPreloadDrivers and _eglAllocScreenHandle.
Add comments to why certain pathes do not need locking.
2010-02-17 20:00:12 +08:00
Chia-I Wu
655f465467
egl: Always lock a display before using it.
...
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-17 20:00:12 +08:00
Chia-I Wu
db5ce8b384
egl: Make eglGetDisplay atomic.
...
Merge _eglNewDisplay and _eglLinkDisplay into _eglFindDisplay. Remove
unused _eglUnlinkDisplay.
2010-02-17 20:00:12 +08:00
Chia-I Wu
99bcb1f06d
egl: Add a mutex to _EGLDisplay.
...
A display may be shared by multiple threads. Add a mutex for access
control.
2010-02-17 20:00:11 +08:00
Chia-I Wu
b3bb180620
egl: eglGetError should return the status of the last call.
...
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-17 20:00:11 +08:00
Chia-I Wu
3dee01a692
egl: Always record error code.
...
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-17 20:00:11 +08:00
Chia-I Wu
aed7358e54
egl: Use new error checking macros.
...
Replace all uses of _EGL_DECLARE_* and _eglCheck* by _EGL_CHECK_*.
2010-02-17 20:00:11 +08:00
Chia-I Wu
f3e03e1277
egl: Add new error checking macros.
...
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-17 20:00:10 +08:00
Kristian Høgsberg
c19dab7c59
egl_dri2: Only allocate config if we're going to keep it
...
Small optimization.
2010-02-09 21:24:15 -05:00
Kristian Høgsberg
c3c1a7e1d9
egl_dri2: Initialize config attributes with visual id and class from X
2010-02-09 21:24:15 -05:00
Kristian Høgsberg
360faf80ca
egl_dri2: Allow pbuffer and pixmap surfaces for all configs
2010-02-09 21:24:14 -05:00
Kristian Høgsberg
bba5a98dfd
egl_dri2: Implement eglBindTexImage()
2010-02-09 15:55:25 -05:00
Kristian Høgsberg
8c593d3ea9
egl_dri2: Use a helper function for looking up and binding extensions
2010-02-09 15:55:24 -05:00
Kristian Høgsberg
538539d879
egl_dri2: Fix initialization with EGL_DEFAULT_DISPLAY
2010-02-09 09:51:05 -05:00
Kristian Høgsberg
077bc2fda2
egl_dri2: Use pkg-config cflags and libs from configure output
...
Running pkg-config in Makefiles is bad form, since it doesn't respect the
PKG_CONFIG_PATH value set at ./configure time.
2010-02-05 13:55:45 -05:00
Kristian Høgsberg
832f2d3c39
egl_dri2: Log both driver and core extensions
2010-02-05 12:01:28 -05:00
Kristian Høgsberg
9c94faeff1
egl_dri2: Audit and fix errors paths
2010-02-05 12:01:28 -05:00
Kristian Høgsberg
f27b4fadca
egl_dri2: Just cast the pointer difference to an int
2010-02-05 12:01:27 -05:00
Chia-I Wu
4f47684f75
egl: Add debug messages to config validation and matching.
...
It might be desirable find out which attribute went wrong.
2010-02-05 14:19:54 +08:00
Chia-I Wu
a37dc17c12
egl: Clean up eglconfig.h.
...
Update the comments to macros/functions. Remove unused
_eglSetConfigAttrib.
2010-02-05 13:42:02 +08:00
Chia-I Wu
5f08eff2a7
egl: Remove egl_xdri.
...
egl_xdri steals code from src/glx/x11/. This makes it broken from time
to time when there is a bigger change to the GLX code. As egl_dri2 has
been merged, which also functions as a DRI2 driver loader, remove
egl_xdri for good.
2010-02-05 12:48:49 +08:00
Chia-I Wu
cb260e1d18
egl: Update the comments to typecast macros.
...
Put a note that the macros define functions and should not be ended with
a semicolon when used.
2010-02-05 11:45:01 +08:00
Chia-I Wu
a35e63382e
egl_dri2: Use _EGL_DRIVER_STANDARD_TYPECASTS.
...
It saves the driver from defining the boring typecasts itself.
2010-02-05 11:45:01 +08:00
Chia-I Wu
b31255fbfd
egl: Clarify IsLinked and IsBound.
...
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-05 11:45:01 +08:00
Chia-I Wu
fc5ca85a63
egl_dri2: Do not destroy linked resources.
...
A linked resource is stil owned by the display.
2010-02-05 11:45:01 +08:00
Chia-I Wu
7e7c1ba40b
egl_dri2: Fix a snprintf warning.
...
The subtraction between two pointers has type unsigned int (only on
x86-64?), while the format string expects an int.
2010-02-05 11:44:49 +08:00
Chia-I Wu
8d411c9a12
egl_dri2: Add a debug print for DRI2 extensions.
2010-02-05 11:44:16 +08:00
Kristian Høgsberg
c6e830c393
egl: Implement eglCopyBuffers for DRI2, make pixmap and pbuffers actually work
2010-02-04 21:50:23 -05:00
Kristian Høgsberg
42fa009e64
egl: Add driver for EGL on X with DRI2
2010-02-04 15:03:45 -05:00
Chia-I Wu
9a3de505dc
egl: Convert drivers to use typecast macros.
...
Use macros to define the standard typecasts. This saves lots of
typings.
2010-02-04 14:36:48 +08:00
Chia-I Wu
bdb9e202de
egl: Add macros to define typecast functions.
...
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-04 14:36:48 +08:00
Igor Oliveira
88af76ce94
egl: fix wrong argument. Use loader_data instead of loader
2010-02-04 10:09:37 +08:00
Chia-I Wu
0d089cbb48
egl: Rename _eglPreloadForEach callbacks.
...
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-03 14:16:16 +08:00
Chia-I Wu
8e6a964411
egl: Fix a potential segfault in driver suffix matching.
...
The driver suffix might be NULL on some platforms. Perform the matching
only when there is a suffix.
2010-02-03 14:16:16 +08:00
Chia-I Wu
2287f4c52a
egl: Remove unnecessary #ifdef's.
...
There were some refactorings with the addition of EGL_DRIVERS_PATH.
They made some platform #ifdef's unnecessary.
2010-02-03 14:16:15 +08:00
Chia-I Wu
6fd8b6a9e2
egl: Ignore certain environment variables when setuid/setgid.
...
Specifically, ignore EGL_DRIVERS_PATH when an application is
setuid/setgid. And ignore EGL_DRIVER when there is a slash in it.
2010-02-03 14:16:15 +08:00