Mercurial > hg > dmlib
changeset 614:eed8d6abd89b
Pre-convert/scale menu background and use direct blitting.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 12 Apr 2013 12:35:15 +0300 |
parents | 15cd5b8a29b2 |
children | 024bc22c54d7 |
files | dmsimple.c |
diffstat | 1 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/dmsimple.c Fri Apr 12 12:34:17 2013 +0300 +++ b/dmsimple.c Fri Apr 12 12:35:15 2013 +0300 @@ -176,7 +176,6 @@ DMResource *file = NULL; SDL_Surface *menuBgImage = NULL, *menuBarImage = NULL; int result, menuState = -1, nmenuList, menuChoice = 0; - DMScaledBlitFunc menuBgBlit; char menuStr[64]; // Compute a list of valid modes @@ -232,9 +231,21 @@ result, dmErrorStr(result)); goto out; } - + + SDL_Surface *tmp = dmConvertScaledSurface(menuBgImage, + engine.screen->format, engine.screen->flags, + engine.screen->w, engine.screen->h); + if (tmp == NULL) + { + dmError("Could not convert setup screen background image.\n"); + goto out; + } + + SDL_FreeSurface(menuBgImage); + menuBgImage = tmp; + SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); - menuBgBlit = dmGetScaledBlitFunc(menuBgImage->format, engine.screen->format, DMD_NONE); + int menuEntryHeight = menuFont->height + 1, menuHeight = DM_VSETUP_MENU_HEIGHT / menuEntryHeight; @@ -288,8 +299,7 @@ } // Render the menu - dmClearSurface(engine.screen, dmMapRGB(engine.screen, 0,0,0)); - menuBgBlit(menuBgImage, 0, 0, engine.screen->w, engine.screen->h, engine.screen); + dmDirectBlitSurface(menuBgImage, engine.screen); // XXX/TODO: Some hardcoded bits here ... float t = engineGetTimeDT(&engine);