SDL_nxmodes.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga
  4.     Copyright (C) 2001  Hsieh-Fu Tsai
  5.     This library is free software; you can redistribute it and/or
  6.     modify it under the terms of the GNU Library General Public
  7.     License as published by the Free Software Foundation; either
  8.     version 2 of the License, or (at your option) any later version.
  9.     This library is distributed in the hope that it will be useful,
  10.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.     Library General Public License for more details.
  13.     You should have received a copy of the GNU Library General Public
  14.     License along with this library; if not, write to the Free
  15.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  16.     Sam Lantinga
  17.     slouken@libsdl.org
  18.     
  19.     Hsieh-Fu Tsai
  20.     clare@setabox.com
  21. */
  22. #include <stdlib.h>
  23. #include "SDL_nxmodes_c.h"
  24. SDL_Rect ** NX_ListModes (_THIS, SDL_PixelFormat * format, Uint32 flags)
  25. {
  26.     if (flags & SDL_FULLSCREEN)
  27.         return SDL_modelist ;
  28.     if (SDL_Visual.bpp == format -> BitsPerPixel) {
  29.         return ((SDL_Rect **) -1) ;
  30.     } else {
  31.         return ((SDL_Rect **) 0) ;
  32.     }
  33. }
  34. void NX_FreeVideoModes (_THIS)
  35. {
  36.     int i ;
  37.     if (SDL_modelist) {
  38.         for (i = 0; SDL_modelist [i]; ++ i) {
  39.             free (SDL_modelist [i]) ;
  40.         }
  41.         free (SDL_modelist) ;
  42.         SDL_modelist = NULL;
  43.     }
  44. }
  45. int NX_EnterFullScreen (_THIS)
  46. {
  47.     if (! currently_fullscreen) {
  48.         GR_SCREEN_INFO si ;
  49.         GrGetScreenInfo (& si) ;
  50.         GrResizeWindow (FSwindow, si.cols, si.rows) ;
  51.         GrUnmapWindow (SDL_Window) ;
  52.         GrMapWindow (FSwindow) ;
  53.         GrRaiseWindow (FSwindow) ;
  54.         GrSetFocus (FSwindow) ;
  55.         currently_fullscreen = 1 ;      
  56.     }
  57.     return 1 ;
  58. }
  59. int NX_LeaveFullScreen (_THIS)
  60. {
  61.     if (currently_fullscreen) {
  62.         GrUnmapWindow (FSwindow) ;
  63.         GrMapWindow (SDL_Window) ;
  64.         GrRaiseWindow (SDL_Window) ;
  65.         GrSetFocus (SDL_Window) ;
  66.         currently_fullscreen = 0 ;
  67.     }
  68.     return 0 ;
  69. }