• Sam Lantinga's avatar
    te: 27 Jun 2003 21:16:01 +0100 · 31731b66
    Sam Lantinga authored
    From: Alan Swanson
    Subject: [SDL] New XFree 4.3 Video Mode Patch
    
    The current patch to fix the issues with XFree 4.3 it is a bit of
    overkill to a simple problem. Default screen settings should be set in
    X, not selected by SDL with environment variables. Any program or user
    using non-standard or unset display modes get what they deserve :-)
    
    If you look at the unsorted list of modes returned by X, here's mine;
    
     1280 x 1024 @ 85.0  >
     1024 x 768 @ 100.3  > USER
     800 x 600 @ 125.5   > SET
     640 x 480 @ 124.9   >
     1280 x 1024 @ 75.0  ]
     1280 x 1024 @ 60.0  ]
     1280 x 960 @ 85.0   ] X11
     1280 x 960 @ 60.0   ] AUTO
     1152 x 864 @ 75.0   ]
     1152 x 768 @ 54.8   ]
     960 x 720 @ 120.0   ]
    ...
     640 x 400 @ 85.1    ] 256k
     576 x 432 @ 150.0   ] 249k PIXEL
     640 x 350 @ 85.1    ] 224k COUNT
     576 x 384 @ 109.6   ] 221k
    ...
    
    The user set modes come first followed by X set modes which are ordered
    by decreasing number of pixels and refresh.
    
    The reason why every other library or program not using SDL was working
    is due to SDL scanning the modes in reverse getting X11 provided modes
    modes with the lowest refresh.
    
    The solution is to scan forward for the first user set mode or highest X
    mode. The qsort still keeps user set modes above higher refresh modes
    added by X.
    
    For the best match we still reverse search for the nearest larger size
    and then try to find a higher version of it.
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40638
    31731b66
SDL_x11modes.c 26.3 KB