- added option to disable alpha testing for user shaders.

This commit is contained in:
Christoph Oelckers 2018-10-31 15:56:20 +01:00
commit 91df3f8c73
5 changed files with 23 additions and 12 deletions

View file

@ -1154,6 +1154,15 @@ class GLDefsParser
tex->bDisableFullbright = disable_fullbright;
}
void SetShaderIndex(FTexture *tex, unsigned index)
{
auto desc = usershaders[index - FIRST_USER_SHADER];
if (desc.disablealphatest)
{
tex->bTranslucent = true;
}
tex->shaderindex = index;
}
//==========================================================================
//
@ -1370,11 +1379,11 @@ class GLDefsParser
usershaders[i].shaderType == usershader.shaderType &&
!usershaders[i].defines.Compare(usershader.defines))
{
tex->shaderindex = i + FIRST_USER_SHADER;
SetShaderIndex(tex, i + FIRST_USER_SHADER);
return;
}
}
tex->shaderindex = usershaders.Push(usershader) + FIRST_USER_SHADER;
SetShaderIndex(tex, usershaders.Push(usershader) + FIRST_USER_SHADER);
}
}
@ -1570,6 +1579,10 @@ class GLDefsParser
}
desc.defines.AppendFormat("#define %s %s\n", defineName.GetChars(), defineValue.GetChars());
}
else if (sc.Compare("disablealphatest"))
{
desc.disablealphatest = true;
}
}
if (!tex)
{
@ -1607,11 +1620,11 @@ class GLDefsParser
usershaders[i].shaderType == desc.shaderType &&
!usershaders[i].defines.Compare(desc.defines))
{
tex->shaderindex = i + FIRST_USER_SHADER;
SetShaderIndex(tex, i + FIRST_USER_SHADER);
return;
}
}
tex->shaderindex = usershaders.Push(desc) + FIRST_USER_SHADER;
SetShaderIndex(tex, usershaders.Push(desc) + FIRST_USER_SHADER);
}
}
}