Keep distro packagers happy by having the option to use the system's sqlite library instead of our bundled version. Set SYSTEM_SQLITE=1 when running cmake to use the system one.
so package builders don't need local patches.
Also, instead of hardcoded firefox, use "xdg-open" or "sensible-browser"
launchers on Linux, to auto-detect user's preferred browser.
Override with cmake switch -DWEB_BROWSER=...
(Not affecting Mac/Win which are hard-coded anyway).
This patch removes the conditional compilation of ATCDCL, compiling both
the old and new ATC systems. The old system only provides ATIS, AWOS and
some dialog lookups, and hence should not conflict with the new system.
HAVE_CULLSETTINGS_CLEAR_MASK was not set, so a program to test
CLEAR_MASK was added. The Posix timer function clock_gettime is in
librt on Fedora, and probably on other systems too.
Improvements to the cloudsystem:
- A new xml format
- Texture indexing based on the position of the sprite in the cloud
mass, allowing more control over the texture set.
- Improved fog and shading
- Better sprite distribution
- A more natural distribution of clouds, so no more obvious grids.
Switch to defining PU_USE_NONE and providing our own callback
functions to pui for "get window" and "get window size." A new
WindowSystemAdapter class assigns ID numbers to windows for the
purpose of identifying them to plib; the window size can be extracted
from the osg::GraphicsContext class in all the different
implementations (osgViewer, glut, sdl).
Implement a GraphicsContextOperation that runs code in a particular
graphics context, perhaps in another thread, and provides an
isFinished() method to test if the operation has finished. This allows
us to initialize plib PUI properly if there are multiple graphics
contexts without using fgMakeCurrent(). fgMakeCurrent() can't work in
multi-threaded OSG configurations.
Eliminate fgMakeCurrent() and all its uses, either by using
GraphicsContextOperation or by seeing that it is not necessary.
Attach the GUI camera as a slave camera.
Don't manipulate the OSG state in the drawImplementation() functions
for SGHUDAndPanelDrawable and SGPuDrawable; it's not needed.