If you have an nVIDIA card and are using the nVIDIA drivers with TwinView (two monitors showing up as one), you might have found that the SDL renderer would only let you choose one resolution/window size, being your entire display.
Turns out its a.. peculiarity... of the nVIDIA drivers and the way they non-standard-ly implement the TwinView.
In your xorg.conf (or whatever the other X server's user), you will have code that looks something like this:
That's copy-paste from my set up, yours may vary. Basically, the MetaModes command is the important one. It sets up a "desktop" that consists of monitor one at 1280x1024 and monitor 2 at 1024x768 (the @1024x1024 allows me to scroll that display up and down to see the remaining space, cause the desktop is square).
Code: Select all
Section "Device" Identifier "NVIDIA Driver" Driver "nvidia" #VideoRam 1048576 # Insert Clocks lines here if appropriate Option "TwinView" Option "MetaModes" "1280x1024,1024x768@1024x1024" Option "SecondMonitorHorizSync" "30-70" Option "SecondMonitorVertRefresh" "30-160" Option "TwinViewOrientation" "RightOf" Option "DPMS" EndSection
When you run an SDL app, it queries the X server for what resolutions are available (even if you run in windowed mode). The nVIDIA driver will only report one resolution (the size of the desktop).
The fix for this is to make your MetaModes line looks like:
This makes the nVIDIA driver return more screen modes, so SDL reports more options, which will let you make windows in those sizes. AND you can now use Ctrl-Alt-Numpad + and - to go through the list. (The desktop stays the same size, but you can scroll the "viewport").
Code: Select all
Option "MetaModes" "1280x1024,1024x768@1024x1024;1280x1024,NULL;1024x768,NULL;800x600,NULL"
Of course, you will have to restart your X server for these configuration changes to take effect. Usually logging out of X will do it.
Hope this help's some-one. I should probably find an SDL forum or something and post this there (I found it out while trying to fix Neverwinter Nights, which uses SDL too), but I'll give it to the OGRE community first