From 6bc60086ae82a22f0e6300e5971a5439a35fdb76 Mon Sep 17 00:00:00 2001
From: chromaticpipe <127907268+chromaticpipe@users.noreply.github.com>
Date: Wed, 19 Mar 2025 20:30:04 -0500
Subject: [PATCH] Add Configurable shader brightness

---
 src/hardware/hw_main.c |  6 +++++-
 src/hardware/hw_main.h |  1 +
 src/m_menu.c           | 13 +++++++------
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 13411ecc91..86ee6dead2 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -179,7 +179,7 @@ void HWR_Lighting(FSurfaceInfo *Surface, INT32 light_level, extracolormap_t *col
 	}
 
 	// Clamp the light level, since it can sometimes go out of the 0-255 range from animations
-	light_level = min(max(light_level, 0), 255);
+	light_level = min(max(light_level, cv_glsecbright.value), 255);
 
 	V_CubeApply(&tint_color.s.red, &tint_color.s.green, &tint_color.s.blue);
 	V_CubeApply(&fade_color.s.red, &fade_color.s.green, &fade_color.s.blue);
@@ -5678,9 +5678,12 @@ static CV_PossibleValue_t glfiltermode_cons_t[]= {{HWD_SET_TEXTUREFILTER_POINTSA
 	{HWD_SET_TEXTUREFILTER_MIXED3, "Nearest_Mipmap"},
 	{0, NULL}};
 CV_PossibleValue_t glanisotropicmode_cons_t[] = {{1, "MIN"}, {16, "MAX"}, {0, NULL}};
+static CV_PossibleValue_t glsecbright_cons_t[] = {{0, "MIN"}, {255, "MAX"}, {0, NULL}};
 
 consvar_t cv_glshaders = CVAR_INIT ("gr_shaders", "On", "Enables OpenGL shaders", CV_SAVE|CV_CALL, glshaders_cons_t, CV_glshaders_OnChange);
 
+consvar_t cv_glsecbright = CVAR_INIT("gr_secbright", "0", NULL, CV_SAVE, glsecbright_cons_t, NULL);
+
 #ifdef ALAM_LIGHTING
 consvar_t cv_gldynamiclighting = CVAR_INIT ("gr_dynamiclighting", "On", NULL, CV_SAVE, CV_OnOff, NULL);
 consvar_t cv_glstaticlighting  = CVAR_INIT ("gr_staticlighting", "On", NULL, CV_SAVE, CV_OnOff, NULL);
@@ -5782,6 +5785,7 @@ void HWR_AddCommands(void)
 	CV_RegisterVar(&cv_glslopecontrast);
 	CV_RegisterVar(&cv_glshearing);
 	CV_RegisterVar(&cv_glshaders);
+	CV_RegisterVar(&cv_glsecbright);
 
 	CV_RegisterVar(&cv_glfiltermode);
 	CV_RegisterVar(&cv_glanisotropicmode);
diff --git a/src/hardware/hw_main.h b/src/hardware/hw_main.h
index a9d9f300ae..22ea3f24c7 100644
--- a/src/hardware/hw_main.h
+++ b/src/hardware/hw_main.h
@@ -81,6 +81,7 @@ extern consvar_t cv_glcoronasize;
 #endif
 
 extern consvar_t cv_glshaders, cv_glallowshaders;
+extern consvar_t cv_glsecbright;
 extern consvar_t cv_glmodels;
 extern consvar_t cv_glmodelinterpolation;
 extern consvar_t cv_glmodellighting;
diff --git a/src/m_menu.c b/src/m_menu.c
index 956ce4d2a2..a7fba1b168 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -1408,16 +1408,17 @@ static menuitem_t OP_OpenGLOptionsMenu[] =
 	{IT_STRING|IT_CVAR,         NULL, "Shaders",             &cv_glshaders,            63},
 	{IT_STRING|IT_CVAR,         NULL, "Palette rendering",   &cv_glpaletterendering,   73},
 	{IT_STRING|IT_CVAR,         NULL, "Lack of perspective", &cv_glshearing,           83},
+	{IT_STRING | IT_CVAR, 	NULL, "Min Shader Brightness", 		&cv_glsecbright,	   93},
 
-	{IT_HEADER, NULL, "Miscellaneous", NULL, 102},
-	{IT_STRING|IT_CVAR,         NULL, "Bit depth",           &cv_scr_depth,           114},
-	{IT_STRING|IT_CVAR,         NULL, "Texture filter",      &cv_glfiltermode,        124},
-	{IT_STRING|IT_CVAR,         NULL, "Anisotropic",         &cv_glanisotropicmode,   134},
+	{IT_HEADER, NULL, "Miscellaneous", NULL, 112},
+	{IT_STRING|IT_CVAR,         NULL, "Bit depth",           &cv_scr_depth,           124},
+	{IT_STRING|IT_CVAR,         NULL, "Texture filter",      &cv_glfiltermode,        134},
+	{IT_STRING|IT_CVAR,         NULL, "Anisotropic",         &cv_glanisotropicmode,   144},
 #ifdef ALAM_LIGHTING
-	{IT_SUBMENU|IT_STRING,      NULL, "Lighting...",         &OP_OpenGLLightingDef,   144},
+	{IT_SUBMENU|IT_STRING,      NULL, "Lighting...",         &OP_OpenGLLightingDef,   154},
 #endif
 #if defined (_WINDOWS) && (!(defined (__unix__) || defined (UNIXCOMMON) || defined (HAVE_SDL)))
-	{IT_STRING|IT_CVAR,         NULL, "Fullscreen",          &cv_fullscreen,          154},
+	{IT_STRING|IT_CVAR,         NULL, "Fullscreen",          &cv_fullscreen,          164},
 #endif
 };
 
-- 
GitLab