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(); }