a3a5af18b041288bfddeecc1f5be9a679ba4f6ad
remain in pressed state after revealing, even if they are no longer pressed on the keyboard. This can have bad effects, especially if the stuck keys are modifier keys. One has to press and release the stuck keys again to reset the wrong state. The fix keeps track of all key presses and releases. On FocusOut and UnmapNotify it releases all keys that are in pressed state, and on KeymapNotify (following a FocusIn), it sets the currently pressed keys again. To avoid confusion in the OSG-using application normal keys are always reported released /before/ and pressed /after/ modifier keys. As current key states are returned as char[32] keymap by XQueryKeymap and XKeymapEvent, this format is also used to recognize modifier keys and for maintaining the current internal key state. Functions to set/clear/query bits in such a keymap are added. The patch was extensively tested with osgkeyboard and FlightGear under KDE and fvwm2. It was not tested on a Xinerama setup or with multiple windows, but as _eventDisplay is used throughout, there should be no problems. The patch also makes the following changes: - removes old and obsolete handling of modifier keys in ::adaptKey(). This wasn't only unused, but also wrong (and for that reason commented out in revision 7066). The modifier states are actually handled in ./src/osgGA/EventQueue.cpp (EventQueue::keyPress/keyRelease). - fixes some spelling"
Welcome to the OpenSceneGraph (OSG).
For up-to-date information on the project, in-depth details on how to
compile and run libraries and examples, see the documentation on the
OpenSceneGraph website:
http://www.openscenegraph.org
For the impatient, read the simplified build notes below.
Robert Osfield.
Project Lead.
29th January 2008.
--
How to build the OpenSceneGraph
===============================
The OpenSceneGraph uses the CMake build system to generate a
platform-specific build environment. CMake reads the CMakeLists.txt
files that you'll find throughout the OpenSceneGraph directories,
checks for installed dependenciesand then generates the appropriate
build system.
If you don't already have CMake installed on your system you can grab
it from http://www.cmake.org, use version 2.4.6 or later. Details on the
OpenSceneGraph's CMake build can be found at:
http://www.openscenegraph.org/projects/osg/wiki/Build/CMake
Under unices (i.e. Linux, IRIX, Solaris, Free-BSD, HP-Ux, AIX, OSX)
use the cmake or ccmake command-line utils, or use the included tiny
configure script that'll run cmake for you. The configure script
simply runs 'cmake . -DCMAKE_BUILD_TYPE=Release' to ensure that you
get the best performance from your final libraries/applications.
cd OpenSceneGraph
./configure
make
sudo make install
Alternatively, you can create an out-of-source build directory and run
cmake or ccmake from there. The advantage to this approach is that the
temporary files created by CMake won't clutter the OpenSceneGraph
source directory, and also makes it possible to have multiple
independent build targets by creating multiple build directories. In a
directory alongside the OpenSceneGraph use:
mkdir build
cd build
cmake ../OpenSceneGraph -DCMAKE_BUILD_TYPE=Release
make
sudo make install
Under Windows use the GUI tool CMakeSetup to build your VisualStudio
files. The following page on our wiki dedicated to the CMake build
system should help guide you through the process:
http://www.openscenegraph.org/projects/osg/wiki/Support/PlatformSpecifics/VisualStudio
Under OSX you can either use the CMake build system above, or use the
Xcode projects that you will find in the OpenSceneGraph/Xcode
directory.
For further details on compilation, installation and platform-specific
information read "Getting Started" guide:
http://www.openscenegraph.org/projects/osg/wiki/Support/GettingStarted
Description
Languages
C++
89.7%
C
5.1%
CMake
2.3%
HTML
1.6%
Objective-C++
0.9%
Other
0.2%