public void RunScenario(CanvasDrawingSession drawingSession, CanvasSpriteSortMode sortMode)
            {
                switch (method)
                {
                case Scenario.DrawMethod.Win2DSpriteBatch:
                    using (var sb = drawingSession.CreateSpriteBatch(sortMode))
                    {
                        foreach (var sprite in sprites)
                        {
                            sb.Draw(sprite.Bitmap, sprite.Position, sprite.Tint, Vector2.Zero, sprite.Rotation, Vector2.One, CanvasSpriteFlip.None);
                        }
                    }
                    break;

                case Scenario.DrawMethod.DrawImage:
                    var oldTransform = drawingSession.Transform;
                    foreach (var sprite in sprites)
                    {
                        drawingSession.Transform = Matrix3x2.CreateRotation(sprite.Rotation) * Matrix3x2.CreateTranslation(sprite.Position);
                        drawingSession.DrawImage(sprite.Bitmap, Vector2.Zero, sprite.Bitmap.Bounds, sprite.Tint.W);
                    }
                    drawingSession.Transform = oldTransform;
                    break;
                }
            }
            public void RunScenario(CanvasDrawingSession drawingSession, CanvasSpriteSortMode sortMode)
            {
                switch (method)
                {
                    case Scenario.DrawMethod.Win2DSpriteBatch:
                        using (var sb = drawingSession.CreateSpriteBatch(sortMode))
                        {
                            foreach (var sprite in sprites)
                            {
                                sb.Draw(sprite.Bitmap, sprite.Position, sprite.Tint, Vector2.Zero, sprite.Rotation, Vector2.One, CanvasSpriteFlip.None);
                            }
                        }
                        break;

                    case Scenario.DrawMethod.DrawImage:
                        var oldTransform = drawingSession.Transform;
                        foreach (var sprite in sprites)
                        {
                            drawingSession.Transform = Matrix3x2.CreateRotation(sprite.Rotation) * Matrix3x2.CreateTranslation(sprite.Position);
                            drawingSession.DrawImage(sprite.Bitmap, Vector2.Zero, sprite.Bitmap.Bounds, sprite.Tint.W);
                        }
                        drawingSession.Transform = oldTransform;
                        break;
                }
            }
 public Scenario(DrawMethod method, CanvasSpriteSortMode sortMode)
 {
     Method   = method;
     SortMode = sortMode;
     Reset();
 }
 public Scenario(DrawMethod method, CanvasSpriteSortMode sortMode)
 {
     Method = method;
     SortMode = sortMode;
     Reset();
 }