Most of the programs list their dependencies on the Mesa libraries in
their Makefiles. This works with the default configuration where
APP_LIB_DEPS only lists external libraries. This changes the
linux-osmesa configs and the osdemos Makefile to follow that convention.
Some cleanup of the Makefile is also added to refer to the GL libraries
through the existing variables rather than hardcoding their names.
Mesa currently disables -fPIC for DRI on x86, but most Linux distros are
re-enabling -fPIC for all DRI arches. Let's just do that here since
that's normally what's wanted for shared libraries. Some justification:
http://bugs.gentoo.org/show_bug.cgi?id=110840#c9
On the other hand, position-independent code is only necessary when
building shared libraries, so disable it for the static cases.
The linux-static target was missing necessary libraries and hardcoding
their location to /usr/X11R6/lib. This makes it comparable to the x86
and x86-64 static targets.
With this, tools like ximagesrc in gstreamer correctly see updates from GL
rendering. Support requires that the Xdamage library be current (but will be
disabled if not present) plus a new X Server with support for the new
XDamagePost request. libGL now has a new interface version, and also links
against libXdamage and libXfixes to support it, but backwards compatibility
is retained.
Currently, all drivers report damage at SwapBuffers time through common code --
front buffer rendering doesn't result in damage being reported. Also, the
damage is against the root window, as our drivers don't yet render to backing
store when they should (composited environments).
1. updated makefiles to build libOSMesa as well as libGL
these are improvements to fbdev-glut
1. mouse cursor will timeout and be invisible if not being used
2. do not restore colormaps to truecolor targets, this causes problems at
exit on my g450
3. fixed a crash when cleaning up from failure by munmaping what had not
yet been mmaped
4. Resize event handling is improved, the resize function is not invoked
from a signal handler now.
5. The main loop can detect if it is running very fast (greater than 2khz)
6. keyboard up and special up events are generated from stdin input mode
and if it is also not redrawing, it sleeps
7. corrections in escape sequences for function keys for stdin input
glDeleteTextures and glDeleteTexturesEXT were erroneously listed as
aliases of each other. For anything /except/ GLX protocol they are
aliases. This set of changes allows functions that are functionally
identical but have different GLX protocol to be listed as aliases.
When building with GLX_INDIRECT_RENDERING set, different static
functions are used. These functions determine whether the current
context is direct rendering or not. If the context is direct
rendering, the aliased function (e.g., glDeleteTextures in the case of
glDeleteTexturesEXT) is called. If the context is not direct
rendering, the correct GLX protocol is sent.
For a deeper explanation of what is changed, please see:
http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions