Support optional vSync toggle.

This commit is contained in:
Steve 2017-05-26 07:48:10 +01:00
parent fb3b866808
commit d703da7d23
3 changed files with 13 additions and 4 deletions

View File

@ -491,6 +491,7 @@ typedef struct {
int fullscreen;
int musicVolume;
int soundVolume;
int vSync;
int doTrophyAlerts;
int hideMouse;
Gameplay gameplay;

View File

@ -61,12 +61,17 @@ void initSDL(void)
/* done in src/plat/ */
createSaveFolder();
rendererFlags = SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC;
windowFlags = 0;
loadConfig();
rendererFlags = SDL_RENDERER_ACCELERATED;
if (app.vSync)
{
rendererFlags |= SDL_RENDERER_PRESENTVSYNC;
}
windowFlags = 0;
if (app.fullscreen)
{
windowFlags |= SDL_WINDOW_FULLSCREEN;
@ -236,6 +241,7 @@ static void loadConfigFile(char *filename)
app.fullscreen = cJSON_GetObjectItem(root, "fullscreen")->valueint;
app.musicVolume = cJSON_GetObjectItem(root, "musicVolume")->valueint;
app.soundVolume = cJSON_GetObjectItem(root, "soundVolume")->valueint;
app.vSync = getJSONValue(root, "vSync", 1);
controlsJSON = cJSON_GetObjectItem(root, "controls");
if (controlsJSON)
@ -290,6 +296,7 @@ void saveConfig(void)
cJSON_AddNumberToObject(root, "fullscreen", app.fullscreen);
cJSON_AddNumberToObject(root, "musicVolume", app.musicVolume);
cJSON_AddNumberToObject(root, "soundVolume", app.soundVolume);
cJSON_AddNumberToObject(root, "vSync", app.vSync);
keysJSON = cJSON_CreateObject();
for (i = 0 ; i < CONTROL_MAX ; i++)

View File

@ -72,6 +72,7 @@ extern long lookup(char *name);
extern void initStars(void);
extern void initTrophies(void);
extern void destroyCredits(void);
extern int getJSONValue(cJSON *node, char *name, int defValue);
extern App app;
extern Colors colors;