Windows Phone includes a hardware image scaler. This allows XNA games to choose what backbuffer resolution they want to draw to, regardless of the physical screen size. You draw at whatever size you like, then the scaler adjusts the resulting image to fit the screen. This is similar to how the video output works on Xbox 360.
Note: scaling was not implemented in the CTP release of the Windows Phone Emulator, but is fully supported in our recent beta version.
Things you should know about the scaler
- The scaler is easy to use: just set graphics.PreferredBackBufferWidth and PreferredBackBufferHeight in your game constructor
- The resolution can be anywhere from 240x240 up to a max of 800x480 (or 480x800 if you are making a portrait game)
- If you choose a resolution that does not match the screen aspect ratio, it will be automatically letterboxed (black bars along the edges)
- Touch input is automatically scaled to match your chosen backbuffer resolution
- Scaling is implemented by dedicated hardware, so doesn't cost any GPU
- Scaling uses a high quality filter (better looking than GPU bilinear filtering)
Choose your own resolution
- 800x480 is a lot of pixels!
- Comparison: Xbox 1 games usually ran at 640x480, so the phone has 25% more pixels to fill
- But the phone has a less powerful GPU than Xbox 1 did...
- 800x480 provides awesome visual crispness for browsing the web, reading email, and simple games with cheap shaders and not much overdraw
- More complex games can trade resolution for framerate
- Consider: 600x360 requires only 56% as many pixels to be rendered