X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=vid_sdl.c;h=ce9f0f6eb4e3f97d1a756ba5701dc64b39f84967;hp=b4765400f1abc5f85d37db1f806ef609388b6ad4;hb=5bdc0879026939f551a3ff217064732d59731be2;hpb=3f93e1c3074a97c2f15292bf8ff43e9dc1f93e53 diff --git a/vid_sdl.c b/vid_sdl.c index b4765400..ce9f0f6e 100644 --- a/vid_sdl.c +++ b/vid_sdl.c @@ -195,7 +195,7 @@ static unsigned int tbl_sdltoquake[] = #undef fiftyoh #undef hundredoh -static int MapKey( int sdlkey ) +static int MapKey( unsigned int sdlkey ) { if( sdlkey > sizeof(tbl_sdltoquake)/ sizeof(int) ) return 0; @@ -218,22 +218,22 @@ void IN_Commands (void) { } -static void IN_MouseMove (usercmd_t *cmd) +static void IN_MouseMove (void) { int x, y; if( !vid_usingmouse ) { - IN_Mouse( cmd, 0, 0 ); + IN_Mouse( 0, 0 ); return; } SDL_GetRelativeMouseState( &x, &y ); - IN_Mouse( cmd, x, y ); + IN_Mouse( x, y ); } -void IN_Move( usercmd_t *cmd ) +void IN_Move( void ) { - IN_MouseMove( cmd ); + IN_MouseMove(); } static void IN_Init( void ) @@ -281,10 +281,12 @@ void Sys_SendKeyEvents( void ) break; case SDL_ACTIVEEVENT: if( event.active.state == SDL_APPACTIVE ) + { if( event.active.gain ) vid_hidden = false; else vid_hidden = true; + } break; case SDL_MOUSEBUTTONDOWN: if( event.button.button == SDL_BUTTON_MIDDLE ) @@ -357,7 +359,7 @@ static void VID_OutputVersion() { const SDL_version *version; version = SDL_Linked_Version(); - Con_DPrintf( "Linked against SDL version %d.%d.%d\n" + Con_Printf( "Linked against SDL version %d.%d.%d\n" "Using SDL library version %d.%d.%d\n", SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL, version->major, version->minor, version->patch ); @@ -378,14 +380,10 @@ int VID_InitMode(int fullscreen, int width, int height, int bpp) */ SDL_SetVideoMode( 0, 0, 0, 0 ); -#ifdef WIN32 - drivername = "opengl32.dll"; -#elif defined(__APPLE__) && defined(__MACH__) - drivername = "OpenGL.framework"; -#else - drivername = "libGL.so.1"; -#endif + // SDL usually knows best + drivername = NULL; +// COMMANDLINEOPTION: SDL GL: -gl_driver selects a GL driver library, default is whatever SDL recommends, useful only for 3dfxogl.dll/3dfxvgl.dll or fxmesa or similar, if you don't know what this is for, you don't need it i = COM_CheckParm("-gl_driver"); if (i && i < com_argc - 1) drivername = com_argv[i + 1]; @@ -412,11 +410,23 @@ int VID_InitMode(int fullscreen, int width, int height, int bpp) vid_isfullscreen = true; } - SDL_GL_SetAttribute (SDL_GL_RED_SIZE, 1); - SDL_GL_SetAttribute (SDL_GL_GREEN_SIZE, 1); - SDL_GL_SetAttribute (SDL_GL_BLUE_SIZE, 1); - SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 16); 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); + SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 24); + SDL_GL_SetAttribute (SDL_GL_STENCIL_SIZE, 8); + } + else + { + SDL_GL_SetAttribute (SDL_GL_RED_SIZE, 1); + SDL_GL_SetAttribute (SDL_GL_GREEN_SIZE, 1); + SDL_GL_SetAttribute (SDL_GL_BLUE_SIZE, 1); + SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 16); + } screen = SDL_SetVideoMode(width, height, bpp, flags); if (screen == NULL)