Skip to content

Commit 0df139b

Browse files
author
dashodanger
committed
Apply render view R/G/B multipliers only when appropriate
1 parent 22ee5ba commit 0df139b

File tree

4 files changed

+25
-32
lines changed

4 files changed

+25
-32
lines changed

source_files/edge/r_colormap.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,10 @@ class ColormapShader : public AbstractShader
654654
{
655655
RendererVertex *dest = glvert + v_idx;
656656

657-
dest->rgba_color[3] = alpha;
657+
dest->rgba_color[0] *= render_view_red_multiplier;
658+
dest->rgba_color[1] *= render_view_green_multiplier;
659+
dest->rgba_color[2] *= render_view_blue_multiplier;
660+
dest->rgba_color[3] = alpha;
658661

659662
HMM_Vec3 lit_pos;
660663

source_files/edge/r_shader.cc

+9-9
Original file line numberDiff line numberDiff line change
@@ -357,9 +357,9 @@ class dynlight_shader_c : public AbstractShader
357357

358358
float ity = exp(-5.44 * dist * dist);
359359

360-
dest->rgba_color[0] = R * ity;
361-
dest->rgba_color[1] = G * ity;
362-
dest->rgba_color[2] = B * ity;
360+
dest->rgba_color[0] = R * ity * render_view_red_multiplier;
361+
dest->rgba_color[1] = G * ity * render_view_green_multiplier;
362+
dest->rgba_color[2] = B * ity * render_view_blue_multiplier;
363363
dest->rgba_color[3] = alpha;
364364
}
365365

@@ -540,9 +540,9 @@ class plane_glow_c : public AbstractShader
540540

541541
TexCoord(&dest->texture_coordinates[1], WhatRadius(DL), sec, &lit_pos, &dest->normal);
542542

543-
dest->rgba_color[0] = R;
544-
dest->rgba_color[1] = G;
545-
dest->rgba_color[2] = B;
543+
dest->rgba_color[0] = R * render_view_red_multiplier;
544+
dest->rgba_color[1] = G * render_view_green_multiplier;
545+
dest->rgba_color[2] = B * render_view_blue_multiplier;
546546
dest->rgba_color[3] = alpha;
547547
}
548548

@@ -707,9 +707,9 @@ class wall_glow_c : public AbstractShader
707707

708708
TexCoord(&dest->texture_coordinates[1], WhatRadius(DL), sec, &lit_pos, &dest->normal);
709709

710-
dest->rgba_color[0] = R;
711-
dest->rgba_color[1] = G;
712-
dest->rgba_color[2] = B;
710+
dest->rgba_color[0] = R * render_view_red_multiplier;
711+
dest->rgba_color[1] = G * render_view_green_multiplier;
712+
dest->rgba_color[2] = B * render_view_blue_multiplier;
713713
dest->rgba_color[3] = alpha;
714714
}
715715

source_files/edge/r_things.cc

+12-12
Original file line numberDiff line numberDiff line change
@@ -414,19 +414,19 @@ static void RenderPSprite(PlayerSprite *psp, int which, Player *player, RegionPr
414414
}
415415
else if (!is_additive)
416416
{
417-
dest->rgba_color[0] = data.colors[v_idx].modulate_red_ / 255.0;
418-
dest->rgba_color[1] = data.colors[v_idx].modulate_green_ / 255.0;
419-
dest->rgba_color[2] = data.colors[v_idx].modulate_blue_ / 255.0;
417+
dest->rgba_color[0] = data.colors[v_idx].modulate_red_ / 255.0 * render_view_red_multiplier;
418+
dest->rgba_color[1] = data.colors[v_idx].modulate_green_ / 255.0 * render_view_green_multiplier;
419+
dest->rgba_color[2] = data.colors[v_idx].modulate_blue_ / 255.0 * render_view_blue_multiplier;
420420

421421
data.colors[v_idx].modulate_red_ -= 256;
422422
data.colors[v_idx].modulate_green_ -= 256;
423423
data.colors[v_idx].modulate_blue_ -= 256;
424424
}
425425
else
426426
{
427-
dest->rgba_color[0] = data.colors[v_idx].add_red_ / 255.0;
428-
dest->rgba_color[1] = data.colors[v_idx].add_green_ / 255.0;
429-
dest->rgba_color[2] = data.colors[v_idx].add_blue_ / 255.0;
427+
dest->rgba_color[0] = data.colors[v_idx].add_red_ / 255.0 * render_view_red_multiplier;
428+
dest->rgba_color[1] = data.colors[v_idx].add_green_ / 255.0 * render_view_green_multiplier;
429+
dest->rgba_color[2] = data.colors[v_idx].add_blue_ / 255.0 * render_view_blue_multiplier;
430430
}
431431

432432
dest->rgba_color[3] = trans;
@@ -1357,19 +1357,19 @@ void RenderThing(DrawFloor *dfloor, DrawThing *dthing)
13571357
}
13581358
else if (!is_additive)
13591359
{
1360-
dest->rgba_color[0] = data.colors[v_idx].modulate_red_ / 255.0;
1361-
dest->rgba_color[1] = data.colors[v_idx].modulate_green_ / 255.0;
1362-
dest->rgba_color[2] = data.colors[v_idx].modulate_blue_ / 255.0;
1360+
dest->rgba_color[0] = data.colors[v_idx].modulate_red_ / 255.0 * render_view_red_multiplier;
1361+
dest->rgba_color[1] = data.colors[v_idx].modulate_green_ / 255.0 * render_view_green_multiplier;
1362+
dest->rgba_color[2] = data.colors[v_idx].modulate_blue_ / 255.0 * render_view_blue_multiplier;
13631363

13641364
data.colors[v_idx].modulate_red_ -= 256;
13651365
data.colors[v_idx].modulate_green_ -= 256;
13661366
data.colors[v_idx].modulate_blue_ -= 256;
13671367
}
13681368
else
13691369
{
1370-
dest->rgba_color[0] = data.colors[v_idx].add_red_ / 255.0;
1371-
dest->rgba_color[1] = data.colors[v_idx].add_green_ / 255.0;
1372-
dest->rgba_color[2] = data.colors[v_idx].add_blue_ / 255.0;
1370+
dest->rgba_color[0] = data.colors[v_idx].add_red_ / 255.0 * render_view_red_multiplier;
1371+
dest->rgba_color[1] = data.colors[v_idx].add_green_ / 255.0 * render_view_green_multiplier;
1372+
dest->rgba_color[2] = data.colors[v_idx].add_blue_ / 255.0 * render_view_blue_multiplier;
13731373
}
13741374

13751375
dest->rgba_color[3] = trans;

source_files/edge/r_units.cc

-10
Original file line numberDiff line numberDiff line change
@@ -184,16 +184,6 @@ void EndRenderUnit(int actual_vert)
184184

185185
unit->count = actual_vert;
186186

187-
// adjust colors (for special effects)
188-
for (int i = 0; i < actual_vert; i++)
189-
{
190-
RendererVertex *v = &local_verts[current_render_vert + i];
191-
192-
v->rgba_color[0] *= render_view_red_multiplier;
193-
v->rgba_color[1] *= render_view_green_multiplier;
194-
v->rgba_color[2] *= render_view_blue_multiplier;
195-
}
196-
197187
current_render_vert += actual_vert;
198188
current_render_unit++;
199189

0 commit comments

Comments
 (0)