From 842f27818bf5aecacc032da6abfc514a42f77342 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 15 Sep 2009 01:01:07 +0000 Subject: [PATCH] Fix SGI systems choosing an inefficient 36-bit color visual. Now they'll choose 16 or 32 bit correctly with this magic. Fixes Bugzilla #4245. --- code/sdl/sdl_glimp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/sdl/sdl_glimp.c b/code/sdl/sdl_glimp.c index 59c1e53c..4804d317 100644 --- a/code/sdl/sdl_glimp.c +++ b/code/sdl/sdl_glimp.c @@ -337,6 +337,14 @@ static int GLimp_SetMode( int mode, qboolean fullscreen ) if (tcolorbits == 24) sdlcolorbits = 8; +#ifdef __sgi /* Fix for SGIs grabbing too many bits of color */ + if (sdlcolorbits == 4) + sdlcolorbits = 0; /* Use minimum size for 16-bit color */ + + /* Need alpha or else SGIs choose 36+ bit RGB mode */ + SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 1); +#endif + SDL_GL_SetAttribute( SDL_GL_RED_SIZE, sdlcolorbits ); SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, sdlcolorbits ); SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, sdlcolorbits );