diff -ruN dgclock-091222/src/main.c dgclock-091222.mod/src/main.c --- dgclock-091222/src/main.c 2010-02-10 11:51:51.000000000 +0100 +++ dgclock-091222.mod/src/main.c 2010-02-10 15:27:40.000000000 +0100 @@ -7,7 +7,7 @@ #include "text.h" #include "settime.h" -SDL_Surface *gSurfaceMain = NULL; +SDL_Surface *gSurfaceMain, *gRealScreen = NULL; TTF_Font *gTTFFont = NULL; TTF_Font *gTTFSmall = NULL; @@ -46,8 +46,9 @@ return -1; } - gSurfaceMain = SDL_SetVideoMode(320,240,16,0); - + gSurfaceMain = SDL_CreateRGBSurface(SDL_SWSURFACE, 320, 240, 16, 0, 0, 0, 0); + gRealScreen = SDL_SetVideoMode(320,240,32,0); + if (!gSurfaceMain) return -1; @@ -560,7 +561,8 @@ SDL_Surface *pSurfaceText = NULL; - SDL_Flip(gSurfaceMain); + SDL_BlitSurface(gSurfaceMain,NULL,gRealScreen,NULL); + SDL_Flip(gRealScreen); i = 0; quit_flag = 0; @@ -612,8 +614,10 @@ app_make_time(&lctm); } - SDL_Flip(gSurfaceMain); - SDL_Flip(gSurfaceMain); // seems double buffer + SDL_BlitSurface(gSurfaceMain,NULL,gRealScreen,NULL); + SDL_Flip(gRealScreen); + SDL_Flip(gRealScreen); + update_flag = 0; }