--- a/test/testwm.c Sun Feb 15 18:45:45 2004 +0000
+++ b/test/testwm.c Sun Feb 15 20:31:27 2004 +0000
@@ -10,6 +10,49 @@
/* Is the cursor visible? */
static int visible = 1;
+static Uint8 video_bpp;
+static Uint32 video_flags;
+
+int SetVideoMode(int w, int h)
+{
+ SDL_Surface *screen;
+ int i;
+ Uint8 *buffer;
+ SDL_Color palette[256];
+
+ screen = SDL_SetVideoMode(w, h, video_bpp, video_flags);
+ if ( screen == NULL ) {
+ fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n",
+ w, h, video_bpp, SDL_GetError());
+ return(-1);
+ }
+ printf("Running in %s mode\n", screen->flags & SDL_FULLSCREEN ?
+ "fullscreen" : "windowed");
+
+ /* Set the surface pixels and refresh! */
+ for ( i=0; i<256; ++i ) {
+ palette[i].r = 255-i;
+ palette[i].g = 255-i;
+ palette[i].b = 255-i;
+ }
+ SDL_SetColors(screen, palette, 0, 256);
+ if ( SDL_LockSurface(screen) < 0 ) {
+ fprintf(stderr, "Couldn't lock display surface: %s\n",
+ SDL_GetError());
+ return(-1);
+ }
+ buffer = (Uint8 *)screen->pixels;
+ for ( i=0; i<screen->h; ++i ) {
+ memset(buffer,(i*255)/screen->h,
+ screen->w*screen->format->BytesPerPixel);
+ buffer += screen->pitch;
+ }
+ SDL_UnlockSurface(screen);
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+ return(0);
+}
+
SDL_Surface *LoadIconSurface(char *file, Uint8 **maskp)
{
SDL_Surface *icon;
@@ -79,6 +122,8 @@
(screen->flags&SDL_FULLSCREEN) ? "fullscreen" : "windowed");
} else {
printf("Unable to toggle fullscreen mode\n");
+ video_flags ^= SDL_FULLSCREEN;
+ SetVideoMode(screen->w, screen->h);
}
}
@@ -207,49 +252,6 @@
}
}
-static Uint8 video_bpp;
-static Uint32 video_flags;
-
-int SetVideoMode(int w, int h)
-{
- SDL_Surface *screen;
- int i;
- Uint8 *buffer;
- SDL_Color palette[256];
-
- screen = SDL_SetVideoMode(w, h, video_bpp, video_flags);
- if ( screen == NULL ) {
- fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n",
- w, h, video_bpp, SDL_GetError());
- return(-1);
- }
- printf("Running in %s mode\n", screen->flags & SDL_FULLSCREEN ?
- "fullscreen" : "windowed");
-
- /* Set the surface pixels and refresh! */
- for ( i=0; i<256; ++i ) {
- palette[i].r = 255-i;
- palette[i].g = 255-i;
- palette[i].b = 255-i;
- }
- SDL_SetColors(screen, palette, 0, 256);
- if ( SDL_LockSurface(screen) < 0 ) {
- fprintf(stderr, "Couldn't lock display surface: %s\n",
- SDL_GetError());
- return(-1);
- }
- buffer = (Uint8 *)screen->pixels;
- for ( i=0; i<screen->h; ++i ) {
- memset(buffer,(i*255)/screen->h,
- screen->w*screen->format->BytesPerPixel);
- buffer += screen->pitch;
- }
- SDL_UnlockSurface(screen);
- SDL_UpdateRect(screen, 0, 0, 0, 0);
-
- return(0);
-}
-
int main(int argc, char *argv[])
{
SDL_Event event;