mono/MonoGame — pull request #481 by tomspilman (2012-05-25 21:53:07+00:00)
Title: Gestures, Tick, and SpriteFont

This pull has a few different things in it...

## Common Touch/Gesture Code
The gesture recognition code from iOS has been moved to TouchPanel and enhanced to support screens with different DPIs. Touch event logic is all moved to TouchPanel as well with each platform just needing to forward raw press/move/release events to TouchPanel.AddEvent().

iOS and WinRT both use the gesture code... someone needs to remove the Android OS gestures for these.

## Tick Refactor
The Game.Tick() code has been refactored to work correctly for fixed updates, support draw suppression, and use the more accurate Stopwatch for timing. It is also simpler to read and understand. GameTime has been fixed to be correct to XNA4 api.

## SpriteFont Optimization
The use of ThreadStatic and the unnecessary abstractions in SpriteFont have been removed reducing the CPU overhead and moving a bunch of unnecessary calculations. It shaved at least a 40% performance improvement from one benchmark. See http://monogame.codeplex.com/discussions/355590.