static int VID_SetMode (int modenum, unsigned char *palette) { Uint32 flags; int is_fullscreen; in_mode_set = true; if (screen) SDL_FreeSurface(screen); flags = (SDL_SWSURFACE|SDL_HWPALETTE); if (vid_config_fscr.integer) flags |= SDL_FULLSCREEN; // Set the mode screen = SDL_SetVideoMode(modelist[modenum].width, modelist[modenum].height, modelist[modenum].bpp, flags); if (!screen) return false; // initial success. adjust vid vars. vid.height = vid.conheight = modelist[modenum].height; vid.width = vid.conwidth = modelist[modenum].width; vid.buffer = vid.conbuffer = vid.direct = (pixel_t *) screen->pixels; vid.rowbytes = vid.conrowbytes = screen->pitch; vid.numpages = 1; vid.aspect = ((float)vid.height / (float)vid.width) * (320.0 / 240.0); if (!VID_AllocBuffers (vid.width, vid.height)) return false; D_InitCaches (vid_surfcache, vid_surfcachesize); // real success. set vid_modenum properly. vid_modenum = modenum; is_fullscreen = (screen->flags & SDL_FULLSCREEN) ? 1 : 0; modestate = (is_fullscreen) ? MS_FULLDIB : MS_WINDOWED; Cvar_SetValue ("vid_config_swx", modelist[vid_modenum].width); Cvar_SetValue ("vid_config_swy", modelist[vid_modenum].height); Cvar_SetValue ("vid_config_fscr", is_fullscreen); IN_HideMouse (); ClearAllStates(); VID_SetPalette (palette); // setup the window manager stuff VID_SetIcon(); SDL_WM_SetCaption(WM_TITLEBAR_TEXT, WM_ICON_TEXT); Con_SafePrintf ("Video Mode: %ux%ux%d\n", vid.width, vid.height, modelist[modenum].bpp); in_mode_set = false; vid.recalc_refdef = 1; return true; }
/* =========== IN_ActivateMouse =========== */ void IN_ActivateMouse (void) { mouseactivatetoggle = true; if (mouseinitialized && _enable_mouse.integer) { IN_HideMouse(); mouseactive = true; } }
void AppActivate(BOOL fActive, BOOL minimize) /**************************************************************************** * * Function: AppActivate * Parameters: fActive - True if app is activating * * Description: If the application is activating, then swap the system * into SYSPAL_NOSTATIC mode so that our palettes will display * correctly. * ****************************************************************************/ { static BOOL sound_active; ActiveApp = fActive; Minimized = minimize; // enable/disable sound on focus gain/loss if (!ActiveApp && sound_active) { S_BlockSound (); sound_active = false; } else if (ActiveApp && !sound_active) { S_UnblockSound (); sound_active = true; } if (fActive) { IN_ActivateMouse (); IN_HideMouse (); } else { IN_DeactivateMouse (); IN_ShowMouse (); } }
/****************************************************************************** * * Function: AppActivate * Parameters: fActive - True if app is activating * * Description: If the application is activating, then swap the system * into SYSPAL_NOSTATIC mode so that our palettes will display * correctly. * ******************************************************************************/ void AppActivate(BOOL fActive, BOOL minimize) { static BOOL sound_active; extern cvar_t sys_inactivesound; ActiveApp = fActive; Minimized = minimize; // enable/disable sound on focus gain/loss if (!ActiveApp && sound_active && !sys_inactivesound.value) { S_BlockSound (); sound_active = false; } else if (ActiveApp && !sound_active) { S_UnblockSound (); sound_active = true; } if ( fActive ) { // if ( glConfig.isFullscreen /* || ( !glConfig.isFullscreen && _windowed_mouse.value && key_dest == key_game ) */ ) { IN_ActivateMouse (); IN_HideMouse (); } } else { // if ( glConfig.isFullscreen /* || ( !glConfig.isFullscreen && _windowed_mouse.value ) */ ) { IN_DeactivateMouse (); IN_ShowMouse (); } } // FIXME: where we must put this, before mouse activeate/deactivate or after? WG_AppActivate(fActive, minimize); }