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