Best resolution for a PC intro
category: general [glöplog]
I'm coding my first DirectX intro, with simple oldschool 2D effects. What numbers should I pass to SetDisplayMode() ?
Pixels should be square on the now-common widescreens, yet I want the intro work on 1024x768 displays, too.
Pixels should be square on the now-common widescreens, yet I want the intro work on 1024x768 displays, too.
any resolution that the system supports?
If you can't scale, use 320x240
While viznut is most likely just trolling, we used to run Excess-demos in 320x240 a few years back - looked ace ;)
0xF: feel free to use a mode selection dialog
use desktop resolution.
Why not just using the screen resolution?
Quote:
LICENSE: Feel free to use this code without any obligation, just make the end product good.
:D
there's always a catch :P
About SetDisplayMode(), be careful about the bit depth. If you use 16 bits or lower, you will have unexpected results while using RGB colors. Use 24 bits for correct RGB results. If you like to use alpha channel as well, 32 bits is what you need.
You may already know about these, I wanted to warn you just in case.
Resolution is completely up to you. If you are too lazy to add supported resolution detection and stuff, just use the return value from SetDisplayMode(). Easiest thing to do is to popup a message saying "Your display adapter doesn't support this mode. Shame on you!" ;)
You may already know about these, I wanted to warn you just in case.
Resolution is completely up to you. If you are too lazy to add supported resolution detection and stuff, just use the return value from SetDisplayMode(). Easiest thing to do is to popup a message saying "Your display adapter doesn't support this mode. Shame on you!" ;)
what Gargaj said, or desktop resolution <3
the way we do it is to have a list:
first (and by default) is 1280x720
then the desktop resolution (in my case 1920x1200)
then all resolutions from 640x480 and over .User can select windowed or not. If so, they have an option to stretch window at 16:9 ratio, which is preferable.
ps. Our latest demo runs at cinemascope 2.35 : 1 . Shame there isn't any hardware to support it out there, it does look quite nice like that :-)
first (and by default) is 1280x720
then the desktop resolution (in my case 1920x1200)
then all resolutions from 640x480 and over .User can select windowed or not. If so, they have an option to stretch window at 16:9 ratio, which is preferable.
ps. Our latest demo runs at cinemascope 2.35 : 1 . Shame there isn't any hardware to support it out there, it does look quite nice like that :-)
The easiest way to make an intro be displayed correctly both on standard and wide screens seems to be to disable full-screen mode and display it in a window instead.
A question: Is there a tutorial somewhere on how to properly support all those different aspect rations etc? I'm kind of stuck in last century in that regard and Breakpoint is approaching fast..
Quote:
Why not just using the screen resolution?
Because it's potentially a major PITA (1080p output + crappy chipset gfx) and also not the "right thing to do" [tm]. A selection window for gfx adapter(s) and supported screen resolutions/bpp is a much more flexible way to do this. Also, it's like 20+ lines of code, so don't be lazy. :)
And about aspect ratio: I would default to 16:9/16:10 or even 2.35:1. People stuck on 4:3 or something else get nice black cinematic bars.
i prefer using the desktop resolution. I used to have hotkeys defined for changing desktop resolution to 640x480 and back to normal :)
I have a resolution select box, and custom aspect ratio. And it defaults to the desktop resolution so I just have to press enter. But if ppl really have a carppy card they'll probably watch a video anyway.
Scamp: Thanks. I'll take the time and implement 16:9 for the compo at least, and then make a final version that supports more resolutions. My engine is coded from scratch so it's missing a lot of things :/
By using a squared ratio you will have something working on both 4:3 and 16:9 and much less code!
my engine works so you authorize the demo in a given aspect ratio, and thats what you work with in the editor. when launching the final exe it checks if the dx can display the authorized aspect ratio, (first by checking if dx also can display the same res as the author resolution).
if it can it tags that as default resolution and aspect ratio.
then im just filling up the resolutions with all resolutions dx can handle (writing the aspect ratio next to it).
then the engine does the rest.
if it can it tags that as default resolution and aspect ratio.
then im just filling up the resolutions with all resolutions dx can handle (writing the aspect ratio next to it).
then the engine does the rest.
oh, and im adding blackborders as needed (if needed).
These things gave me a headache some time ago. Say you choose 800x600, fullscreen on a 5:4 aspect monitor. At least my drivers/monitors will then stretch the 800x600 onto the screen, making the pixels non-square. Our setup code will insist on showing a 16:9-formatted letterbox, so in the case above it will have to de-stretch so that the final letterbox will look 16:9 even though (pixel-width / pixel-height) != 16/9.
to do this, you have to know the physical aspect of your monitor, which is given by the user from a drop-down at setuptime. The default aspect is being calculated from the desktop res.
I guess the stretching-assumption is based on experience and may not be god given, so it feels a bit shaky. But I think it´s a reasonable thing to do.
to do this, you have to know the physical aspect of your monitor, which is given by the user from a drop-down at setuptime. The default aspect is being calculated from the desktop res.
I guess the stretching-assumption is based on experience and may not be god given, so it feels a bit shaky. But I think it´s a reasonable thing to do.