/// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        public void Update(GameTime gameTime)
        {
            TouchCollection touchCollection = TouchPanel.GetState();

            var touchInfos = touchCollection.Select(t => new TouchInfo(
                                                        Vector2.Transform(t.Position, App.Viewport.MatrixInv),
                                                        t.Pressure,
                                                        t.State)).ToArray();

            foreach (var layer in layers)
            {
                layer.Update(gameTime, touchInfos);
            }
        }