ScalingViewportAdapter.cs 945 B

123456789101112131415161718192021222324252627
  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Graphics;
  3. namespace MonoGame.Extended.ViewportAdapters
  4. {
  5. public class ScalingViewportAdapter : ViewportAdapter
  6. {
  7. public ScalingViewportAdapter(GraphicsDevice graphicsDevice, int virtualWidth, int virtualHeight)
  8. : base(graphicsDevice)
  9. {
  10. VirtualWidth = virtualWidth;
  11. VirtualHeight = virtualHeight;
  12. }
  13. public override int VirtualWidth { get; }
  14. public override int VirtualHeight { get; }
  15. public override int ViewportWidth => GraphicsDevice.Viewport.Width;
  16. public override int ViewportHeight => GraphicsDevice.Viewport.Height;
  17. public override Matrix GetScaleMatrix()
  18. {
  19. var scaleX = (float) ViewportWidth/VirtualWidth;
  20. var scaleY = (float) ViewportHeight/VirtualHeight;
  21. return Matrix.CreateScale(scaleX, scaleY, 1.0f);
  22. }
  23. }
  24. }