[SDL] osx fullscreen sw vs hw

jon jon.rafkind at gmail.com
Wed Dec 22 11:07:20 PST 2010


On 12/22/2010 12:33 AM, jon wrote:
> On 12/21/2010 02:12 PM, Patrice Mandin wrote:
>> Le Tue, 21 Dec 2010 13:18:00 -0700
>> jon <jon.rafkind at gmail.com> a écrit:
>>
>>> To set the fullscreen mode in my game I call
>>>
>>> screen = SDL_SetVideoMode(width, height, SCREEN_DEPTH, SDL_HWSURFACE |
>>> SDL_DOUBLEBUF | SDL_FULLSCREEN);
>>>
>>> whereas for windowed mode I call
>>>
>>> screen = SDL_SetVideoMode(width, height, SCREEN_DEPTH, SDL_SWSURFACE |
>>> SDL_RESIZABLE);
>>>
>>> On windows and linux both fullscreen and windowed mode work fine, but on
>>> osx 10.6 only windowed mode looks fine. In fullscreen mode I get weird
>>> colors: http://www.cs.utah.edu/~rafkind/tmp/paintown/ss.png
>> Most likely you got a different organization for R,G,B,A storage in the
>> SDL_Surface.
>>
>> Compare the values of the pixel format for the screen
>> SDL_Surface->format between fullscreen and windowed mode, and check
>> your drawings are properly done:
>> http://wiki.libsdl.org/moin.cgi/SDL_PixelFormat
>>
> Seems that in fullscreen mode on osx I get RGB 5-5-5 whereas on every
> other system (and windowed osx) I get 5-6-5. I had some routines that
> secretly depended on getting 5-6-5 and they broke on the new format. Sigh..
>
I think the solution to this is just to create all my memory bitmaps
with a custom 5-6-5 format, and rely on sdl to do the conversion to
5-5-5 when I blit to the screen. I realize that can be quite slow but
since most platforms give me 5-6-5 and its much easier not to change my
existing code, as well as not having to play fancy tricks when the
screen pixel format changes while the game is running, I think its the
best option.



More information about the SDL mailing list