diff options
author | Stijn Buys <ingar@osirion.org> | 2008-08-08 18:47:04 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-08-08 18:47:04 +0000 |
commit | f540e8dac10de8ff443692e78404b1508dde9d1e (patch) | |
tree | bea7b3c0135b4527ebb3cf9fb78f696a8fe1c417 /src | |
parent | 194b8b358fc8603da2c102dcf46f20b23a31aea4 (diff) |
beter video settings
Diffstat (limited to 'src')
-rw-r--r-- | src/client/video.cc | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/src/client/video.cc b/src/client/video.cc index ceea25d..5a4e535 100644 --- a/src/client/video.cc +++ b/src/client/video.cc @@ -86,15 +86,32 @@ bool init() bpp = sdl_videoinfo->vfmt->BitsPerPixel; - SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 ); - SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 ); - SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 ); - SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 ); - SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 2); - SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); + if (bpp == 32) { + SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8); + SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8); + SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8); + SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8); + } else if (bpp == 24) { + SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 6); + SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 6); + SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 6); + SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 6); + } else if (bpp == 16) { + SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 4); + SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 4); + SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 4); + SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 4); + } else { + con_warn << "Display depth " << bpp << " is not supported!" << std::endl; + } + + SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1); - if (r_fullscreen->value()) flags = SDL_OPENGL | SDL_FULLSCREEN; - else flags = SDL_OPENGL; + if (r_fullscreen->value()) { + flags = SDL_OPENGL | SDL_FULLSCREEN; + } else { + flags = SDL_OPENGL; + } if(!SDL_SetVideoMode(width, height, bpp, flags )) { con_warn << "Failed to set video mode " << width << "x" << height << "x" << bpp << "bpp" << std::endl; @@ -109,6 +126,15 @@ bool init() return false; } con_print << " video mode " << width << "x" << height << "x" << bpp << "bpp" << std::endl; + int red, green, blue, alpha, depth; + + SDL_GL_GetAttribute( SDL_GL_RED_SIZE, &red); + SDL_GL_GetAttribute( SDL_GL_GREEN_SIZE, &green); + SDL_GL_GetAttribute( SDL_GL_RED_SIZE, &blue); + SDL_GL_GetAttribute( SDL_GL_ALPHA_SIZE, &alpha); + SDL_GL_GetAttribute( SDL_GL_DEPTH_SIZE, &depth); + + con_debug << " visual r: " << red << " g: " << green << " blue: " << blue << " alpha: " << alpha << " depth: " << depth << std::endl; render::Camera::set_aspect(width, height); (*r_width) = width; |