diff --git a/desktop_version/src/Graphics.h b/desktop_version/src/Graphics.h index 09393369..44ccc17b 100644 --- a/desktop_version/src/Graphics.h +++ b/desktop_version/src/Graphics.h @@ -238,6 +238,7 @@ public: SDL_Rect foot_rect; SDL_Rect prect; SDL_Rect footerrect; + SDL_Surface* footerbuffer; int linestate, linedelay; int backoffset; diff --git a/desktop_version/src/editor.cpp b/desktop_version/src/editor.cpp index bac77646..1a044215 100644 --- a/desktop_version/src/editor.cpp +++ b/desktop_version/src/editor.cpp @@ -3447,7 +3447,8 @@ void editorrender( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, ent { if(ed.roomnamehide<12) ed.roomnamehide++; } - FillRect(dwgfx.backBuffer, 0,230+ed.roomnamehide,320,10, dwgfx.getRGB(0,0,0)); + dwgfx.footerrect.y = 230+ed.roomnamehide; + SDL_BlitSurface(dwgfx.footerbuffer, NULL, dwgfx.backBuffer, &dwgfx.footerrect); dwgfx.Print(5,231+ed.roomnamehide,ed.level[ed.levx+(ed.maxwidth*ed.levy)].roomname, 196, 196, 255 - help.glow, true); dwgfx.bprint(4, 222, "SPACE ^ SHIFT ^", 196, 196, 255 - help.glow, false); dwgfx.bprint(268,222, "("+help.String(ed.levx+1)+","+help.String(ed.levy+1)+")",196, 196, 255 - help.glow, false); diff --git a/desktop_version/src/main.cpp b/desktop_version/src/main.cpp index f50be9b3..0e5c9cf5 100644 --- a/desktop_version/src/main.cpp +++ b/desktop_version/src/main.cpp @@ -125,6 +125,9 @@ int main(int argc, char *argv[]) const SDL_PixelFormat* fmt = gameScreen.GetFormat(); graphics.backBuffer = SDL_CreateRGBSurface(SDL_SWSURFACE ,320 ,240 ,32,fmt->Rmask,fmt->Gmask,fmt->Bmask,fmt->Amask ) ; SDL_SetSurfaceBlendMode(graphics.backBuffer, SDL_BLENDMODE_NONE); + graphics.footerbuffer = SDL_CreateRGBSurface(SDL_SWSURFACE, 320, 10, 32, fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask); + SDL_SetSurfaceBlendMode(graphics.footerbuffer, SDL_BLENDMODE_BLEND); + FillRect(graphics.footerbuffer, SDL_MapRGB(fmt, 0, 0, 0)); graphics.Makebfont(); diff --git a/desktop_version/src/titlerender.cpp b/desktop_version/src/titlerender.cpp index e4f9da69..2e2b1a69 100644 --- a/desktop_version/src/titlerender.cpp +++ b/desktop_version/src/titlerender.cpp @@ -1552,7 +1552,8 @@ void gamerender(Graphics& dwgfx, mapclass& map, Game& game, entityclass& obj, Ut if(map.extrarow==0 || (map.custommode && map.roomname!="")) { - FillRect(dwgfx.backBuffer, dwgfx.footerrect, 0); + dwgfx.footerrect.y = 230; + SDL_BlitSurface(dwgfx.footerbuffer, NULL, dwgfx.backBuffer, &dwgfx.footerrect); if (map.finalmode) { @@ -2808,7 +2809,8 @@ void towerrender(Graphics& dwgfx, Game& game, mapclass& map, entityclass& obj, U } - FillRect(dwgfx.backBuffer, dwgfx.footerrect, 0x000000); + dwgfx.footerrect.y = 230; + SDL_BlitSurface(dwgfx.footerbuffer, NULL, dwgfx.backBuffer, &dwgfx.footerrect); dwgfx.Print(5, 231, map.roomname, 196, 196, 255 - help.glow, true); //dwgfx.rprint(5, 231,help.String(game.coins), 255 - help.glow/2, 255 - help.glow/2, 196, true);