Do the same for OpenGL, and also make modulate actually work in it.

This commit is contained in:
sphere 2021-06-06 14:34:49 +02:00
parent b84199faef
commit 109c60f700

View file

@ -1484,19 +1484,12 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom
case 256: case 256:
blendmode = PF_Translucent; blendmode = PF_Translucent;
break; break;
case 913:
blendmode = PF_Multiplicative;
Surf.PolyColor.s.alpha = 0xff;
break;
default: default:
{ {
UINT32 blend = 0; UINT32 blend = 0;
transnum_t transtable = R_GetLinedefTransTable(gl_linedef); transnum_t transtable = R_GetLinedefTransTable(gl_linedef);
if (transtable == NUMTRANSMAPS) if ((blend = gl_linedef->blendmode) && (transtable == NUMTRANSMAPS || blendmode == AST_MODULATE))
transtable = 0; transtable = 0;
if (gl_linedef->blendmode == AST_ADD || gl_linedef->blendmode == AST_SUBTRACT || gl_linedef->blendmode == AST_REVERSESUBTRACT)
blend = gl_linedef->blendmode;
blendmode = HWR_SurfaceBlend(blend, transtable, &Surf); blendmode = HWR_SurfaceBlend(blend, transtable, &Surf);
break; break;
} }