Gaphics: Make frame skip a config option
When using something like Valgrind that will run mkxp 20 times slower than normal, frame skip will make the redraw loop completely grind to a halt. Set 'frameSkip' to false in the config to avert this.
This commit is contained in:
parent
c504a383ba
commit
19bb6c924e
|
@ -81,6 +81,7 @@ mkxp reads configuration data from the file "mkxp.conf" contained in the current
|
||||||
| defScreenW | int | 640 | Width the game window starts in (this is **not** the game resolution) |
|
| defScreenW | int | 640 | Width the game window starts in (this is **not** the game resolution) |
|
||||||
| defScreenH | int | 480 | Height the game window starts in |
|
| defScreenH | int | 480 | Height the game window starts in |
|
||||||
| fixedFramerate | int | 0 | FPS will be fixed to this amount. Ignored if 0. |
|
| fixedFramerate | int | 0 | FPS will be fixed to this amount. Ignored if 0. |
|
||||||
|
| frameSkip | bool | true | Don't skip frames to catch up (useful eg. with Valgrind) |
|
||||||
| solidFonts | bool | false | Don't use alpha blending for fonts |
|
| solidFonts | bool | false | Don't use alpha blending for fonts |
|
||||||
| gameFolder | string | "." | mkxp will look for all game related files here |
|
| gameFolder | string | "." | mkxp will look for all game related files here |
|
||||||
| allowSymlinks | bool | false | Allow symlinks to be followed in the game folder. |
|
| allowSymlinks | bool | false | Allow symlinks to be followed in the game folder. |
|
||||||
|
|
|
@ -38,6 +38,7 @@ Config::Config()
|
||||||
defScreenW(640),
|
defScreenW(640),
|
||||||
defScreenH(480),
|
defScreenH(480),
|
||||||
fixedFramerate(0),
|
fixedFramerate(0),
|
||||||
|
frameSkip(true),
|
||||||
solidFonts(false),
|
solidFonts(false),
|
||||||
gameFolder("."),
|
gameFolder("."),
|
||||||
allowSymlinks(false)
|
allowSymlinks(false)
|
||||||
|
@ -58,6 +59,7 @@ void Config::read()
|
||||||
READ_VAL(defScreenW, Int);
|
READ_VAL(defScreenW, Int);
|
||||||
READ_VAL(defScreenH, Int);
|
READ_VAL(defScreenH, Int);
|
||||||
READ_VAL(fixedFramerate, Int);
|
READ_VAL(fixedFramerate, Int);
|
||||||
|
READ_VAL(frameSkip, Bool);
|
||||||
READ_VAL(solidFonts, Bool);
|
READ_VAL(solidFonts, Bool);
|
||||||
READ_VAL(gameFolder, ByteArray);
|
READ_VAL(gameFolder, ByteArray);
|
||||||
READ_VAL(allowSymlinks, Bool);
|
READ_VAL(allowSymlinks, Bool);
|
||||||
|
|
|
@ -41,6 +41,7 @@ struct Config
|
||||||
int defScreenH;
|
int defScreenH;
|
||||||
|
|
||||||
int fixedFramerate;
|
int fixedFramerate;
|
||||||
|
bool frameSkip;
|
||||||
|
|
||||||
bool solidFonts;
|
bool solidFonts;
|
||||||
|
|
||||||
|
|
|
@ -582,6 +582,8 @@ void Graphics::update()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (p->fpsLimiter.frameSkipRequired())
|
if (p->fpsLimiter.frameSkipRequired())
|
||||||
|
{
|
||||||
|
if (p->threadData->config.frameSkip)
|
||||||
{
|
{
|
||||||
/* Skip frame */
|
/* Skip frame */
|
||||||
p->fpsLimiter.delay();
|
p->fpsLimiter.delay();
|
||||||
|
@ -590,6 +592,12 @@ void Graphics::update()
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Just reset frame adjust counter */
|
||||||
|
p->fpsLimiter.resetFrameAdjust();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
p->checkResize();
|
p->checkResize();
|
||||||
p->redrawScreen();
|
p->redrawScreen();
|
||||||
|
|
Loading…
Reference in New Issue