From eb3f83f9084088fbce1e3a993ca0817aa9c9e2b1 Mon Sep 17 00:00:00 2001 From: Rachael Alexanderson Date: Tue, 24 Jan 2017 11:33:42 -0500 Subject: [PATCH] - Since tonemap tweaks are on the menu now, make their changes affect instantly. --- src/gl/renderer/gl_postprocess.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/gl/renderer/gl_postprocess.cpp b/src/gl/renderer/gl_postprocess.cpp index 3329231d8b..c504088f4d 100644 --- a/src/gl/renderer/gl_postprocess.cpp +++ b/src/gl/renderer/gl_postprocess.cpp @@ -81,9 +81,6 @@ CVAR(Float, gl_exposure_min, 0.35f, CVAR_ARCHIVE) CVAR(Float, gl_exposure_base, 0.35f, CVAR_ARCHIVE) CVAR(Float, gl_exposure_speed, 0.05f, CVAR_ARCHIVE) -CVAR(Float, gl_paltonemap_powtable, 2.0f, CVAR_ARCHIVE) -CVAR(Bool, gl_paltonemap_reverselookup, true, CVAR_ARCHIVE) - CUSTOM_CVAR(Int, gl_tonemap, 0, CVAR_ARCHIVE) { if (self < 0 || self > 5) @@ -136,6 +133,17 @@ CUSTOM_CVAR(Float, gl_ssao_exponent, 1.8f, 0) if (self < 0.1f) self = 0.1f; } +CUSTOM_CVAR(Float, gl_paltonemap_powtable, 2.0f, CVAR_ARCHIVE | CVAR_NOINITCALL) +{ + GLRenderer->ClearTonemapPalette(); +} + +CUSTOM_CVAR(Bool, gl_paltonemap_reverselookup, true, CVAR_ARCHIVE | CVAR_NOINITCALL) +{ + GLRenderer->ClearTonemapPalette(); +} + + EXTERN_CVAR(Float, vid_brightness) EXTERN_CVAR(Float, vid_contrast) @@ -536,8 +544,11 @@ void FGLRenderer::CreateTonemapPalette() void FGLRenderer::ClearTonemapPalette() { - delete mTonemapPalette; - mTonemapPalette = nullptr; + if (mTonemapPalette) + { + delete mTonemapPalette; + mTonemapPalette = nullptr; + } } //----------------------------------------------------------------------------- @@ -824,12 +835,14 @@ int FGLRenderer::PTM_BestColor (const uint32 *pal_in, int r, int g, int b, int f const PalEntry *pal = (const PalEntry *)pal_in; static double powtable[256]; static bool firstTime = true; + static float trackpowtable = 0.; double fbestdist, fdist; int bestcolor; - if (firstTime) + if (firstTime || trackpowtable != gl_paltonemap_powtable) { + trackpowtable = gl_paltonemap_powtable; firstTime = false; for (int x = 0; x < 256; x++) powtable[x] = pow((double)x/255, (double)gl_paltonemap_powtable); }