Navigation Menu

Skip to content

Commit

Permalink
Config: Re-add gamma option
Browse files Browse the repository at this point in the history
Gamma is only changed while fullscreen.

This partially reverts commit 3ad44dc.

Implements: feature request #254
  • Loading branch information
dscharrer committed Oct 26, 2017
1 parent 41f1d3d commit 0b41dd2
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/core/ArxGame.cpp
Expand Up @@ -803,6 +803,7 @@ bool ArxGame::initGame()

ARXMenu_Options_Video_SetFogDistance(config.video.fogDistance);
ARXMenu_Options_Video_SetDetailsQuality(config.video.levelOfDetail);
ARXMenu_Options_Video_SetGamma(config.video.gamma);
ARXMenu_Options_Audio_SetMasterVolume(config.audio.volume);
ARXMenu_Options_Audio_SetSfxVolume(config.audio.sfxVolume);
ARXMenu_Options_Audio_SetSpeechVolume(config.audio.speechVolume);
Expand Down
6 changes: 5 additions & 1 deletion src/core/Config.cpp
Expand Up @@ -109,6 +109,7 @@ const bool allowConsole = false;
#endif

const float
gamma = 5.f,
hudScale = 0.5f;

const ActionKey actions[NUM_ACTION_KEY] = {
Expand Down Expand Up @@ -184,6 +185,7 @@ const std::string
fullscreen = "full_screen",
levelOfDetail = "others_details",
fogDistance = "fog",
gamma = "gamma",
antialiasing = "antialiasing",
vsync = "vsync",
fpsLimit = "fps_limit",
Expand Down Expand Up @@ -410,6 +412,7 @@ bool Config::save() {
writer.writeKey(Key::fullscreen, video.fullscreen);
writer.writeKey(Key::levelOfDetail, video.levelOfDetail);
writer.writeKey(Key::fogDistance, video.fogDistance);
writer.writeKey(Key::gamma, video.gamma);
writer.writeKey(Key::antialiasing, video.antialiasing);
writer.writeKey(Key::vsync, video.vsync);
writer.writeKey(Key::fpsLimit, video.fpsLimit);
Expand Down Expand Up @@ -543,7 +546,8 @@ bool Config::init(const fs::path & file) {
}
video.fullscreen = reader.getKey(Section::Video, Key::fullscreen, Default::fullscreen);
video.levelOfDetail = reader.getKey(Section::Video, Key::levelOfDetail, Default::levelOfDetail);
video.fogDistance = reader.getKey(Section::Video, Key::fogDistance, Default::fogDistance);;
video.fogDistance = reader.getKey(Section::Video, Key::fogDistance, Default::fogDistance);
video.gamma = reader.getKey(Section::Video, Key::gamma, Default::gamma);
video.antialiasing = reader.getKey(Section::Video, Key::antialiasing, Default::antialiasing);
int vsync = reader.getKey(Section::Video, Key::vsync, Default::vsync);
video.vsync = glm::clamp(vsync, -1, 1);
Expand Down
1 change: 1 addition & 0 deletions src/core/Config.h
Expand Up @@ -134,6 +134,7 @@ class Config {
bool fullscreen;
int levelOfDetail;
float fogDistance;
float gamma;
bool antialiasing;
int vsync;
int fpsLimit;
Expand Down
5 changes: 5 additions & 0 deletions src/gui/MenuPublic.cpp
Expand Up @@ -139,6 +139,11 @@ void ARXMenu_Options_Video_SetDetailsQuality(int _iQuality) {
}
}

void ARXMenu_Options_Video_SetGamma(float gamma) {
config.video.gamma = glm::clamp(gamma, 0.f, 10.f);
mainApp->getWindow()->setGamma(1.f + (gamma / 5.f - 1.f) * 0.5f);
}

void ARXMenu_Options_Audio_SetMasterVolume(float volume) {

config.audio.volume = glm::clamp(volume, 0.f, 10.f);
Expand Down
1 change: 1 addition & 0 deletions src/gui/MenuPublic.h
Expand Up @@ -53,6 +53,7 @@ ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.

void ARXMenu_Options_Video_SetFogDistance(float distance);
void ARXMenu_Options_Video_SetDetailsQuality(int lod);
void ARXMenu_Options_Video_SetGamma(float gamma);

// Audio options

Expand Down

0 comments on commit 0b41dd2

Please sign in to comment.