Multitouch support is an integrated part of libavg. The framework is made for fast device-independent multitouch development, supports all major multitouch driver models and has multitouch-oriented event handling features. The extensive support for gesture recognition and the unique contact-based touch API are described under Touch Input.
If you are running Ubuntu 11.04 or later, libavg and some multitouch games are available as packages.
There is lots of additional information in our scientific publications:
- For a more in-depth look at building multitouch devices, have a look at our journal article on building multitouch hardware: Building Interactive Multi-touch Surfaces. Johannes Schöning et.al.. In: Journal of Graphics Tools, Vol. 10, Pages 1-23, A K Peters, Ltd. 2009.
- We also have an article in a very good book, Tabletops and Horizontal Interactive Touch Displays.
- And here are the slides of the tutorial on Software Development for Tabletops that the libavg maintainer gave at the Interactive Tabletops and Surfaces Conference 2010.
libavg handles multitouch events delivered by all major driver subsystems and comes with its own multitouch tracker as well. The supported driver architectures are:
- TUIO: TUIO is a de-facto standard protocol for multitouch events. It is supported by almost all open-source tracking libraries.
- Linux: Linux tracking is supported using libmtdev and XInput 2.1 or later, so all multitouch devices supported by the linux kernel work. XInput (available under Ubuntu 11.04 and later) needs no additional setup. For libmtdev, refer to the LibMTDev setup notes.
- Windows 7: libavg supports Windows 7 touch events for multitouch input.
- Internal Tracker: libavg has a built-in tracker that works with FTIR and DI setups. Setup notes are on the Camera Tracking page. Note: The internal tracker is deprecated and has been removed from the development version, since there are better libraries available (e.g. CCV).
Refer to the reference for details on how to set up multitouch handling.
Since multitouch is an integrated part of the framework, all libavg Event handling features work with multitouch events as well. Multitouch events are automatically routed to the correct nodes and event capture works as well. In addition, there is a manipulation API that helps you build direct-manipulation NUI-style interfaces (see Touch Input).