Note that there are some explanatory texts on larger screens.

plurals
  1. POGoing fullscreen without stretching in an XNA game
    text
    copied!<p>I've got a 2D game that I'm working on that is in 4:3 aspect ratio. When I switch it to fullscreen mode on my widescreen monitor it stretches. I tried using two viewports to give a black background to where the game shouldn't stretch to, but that left the game in the same size as before. I couldn't get it to fill the viewport that was supposed to hold the whole game.</p> <p>How can I get it to go fullscreen without stretching and without me needing to modify every position and draw statement in the game? The code I'm using for the viewports is below.</p> <pre><code> // set the viewport to the whole screen GraphicsDevice.Viewport = new Viewport { X = 0, Y = 0, Width = GraphicsDevice.PresentationParameters.BackBufferWidth, Height = GraphicsDevice.PresentationParameters.BackBufferHeight, MinDepth = 0, MaxDepth = 1 }; // clear whole screen to black GraphicsDevice.Clear(Color.Black); // figure out the largest area that fits in this resolution at the desired aspect ratio int width = GraphicsDevice.PresentationParameters.BackBufferWidth; int height = (int)(width / targetAspectRatio + .5f); if (height &gt; GraphicsDevice.PresentationParameters.BackBufferHeight) { height = GraphicsDevice.PresentationParameters.BackBufferHeight; width = (int)(height * targetAspectRatio + .5f); } //Console.WriteLine("Back: Width: {0}, Height: {0}", GraphicsDevice.PresentationParameters.BackBufferWidth, GraphicsDevice.PresentationParameters.BackBufferHeight); //Console.WriteLine("Front: Width: {0}, Height: {1}", width, height); // set up the new viewport centered in the backbuffer GraphicsDevice.Viewport = new Viewport { X = GraphicsDevice.PresentationParameters.BackBufferWidth / 2 - width / 2, Y = GraphicsDevice.PresentationParameters.BackBufferHeight / 2 - height / 2, Width = width, Height = height, MinDepth = 0, MaxDepth = 1 }; GraphicsDevice.Clear(Color.CornflowerBlue); </code></pre> <p>The image below shows what the screen looks like. The black on the sides is what I want (and is from the first viewport) and the second viewport is the game and the cornflower blue area. What I want is to get the game to scale to fill the cornflower blue area.</p> <p><img src="https://i.stack.imgur.com/1gx64.png" alt="Not correctly scaling"></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload