Added foliage AFunc

This commit is contained in:
smallmodel 2023-08-27 23:38:43 +02:00
parent 5e8b54be7e
commit 194d53569f
No known key found for this signature in database
GPG key ID: 9F2D623CEDF08512
3 changed files with 48 additions and 14 deletions

View file

@ -402,31 +402,45 @@ void GL_State( unsigned long stateBits )
//
if ( diff & GLS_ATEST_BITS )
{
switch ( stateBits & GLS_ATEST_BITS )
switch (stateBits & GLS_ATEST_BITS)
{
case 0:
qglDisable( GL_ALPHA_TEST );
qglDisable(GL_ALPHA_TEST);
break;
case GLS_ATEST_GT_0:
qglEnable( GL_ALPHA_TEST );
qglAlphaFunc( GL_GREATER, 0.0f );
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_GREATER, 0.05f);
break;
case GLS_ATEST_LT_80:
qglEnable( GL_ALPHA_TEST );
qglAlphaFunc( GL_LESS, 0.5f );
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_LESS, 0.5f);
break;
case GLS_ATEST_GE_80:
qglEnable( GL_ALPHA_TEST );
qglAlphaFunc( GL_GEQUAL, 0.5f );
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_GEQUAL, 0.5f);
break;
case GLS_ATEST_LT_FOLIAGE1:
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_LESS, r_alpha_foliage1->value);
break;
case GLS_ATEST_GE_FOLIAGE1:
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_GEQUAL, r_alpha_foliage1->value);
break;
case GLS_ATEST_LT_FOLIAGE2:
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_LESS, r_alpha_foliage2->value);
break;
case GLS_ATEST_GE_FOLIAGE2:
qglEnable(GL_ALPHA_TEST);
qglAlphaFunc(GL_GEQUAL, r_alpha_foliage2->value);
break;
default:
assert( 0 );
assert(0);
break;
}
}
if (diff & GLS_CLAMP_EDGE)
{
float clampValue;
@ -471,7 +485,7 @@ void GL_State( unsigned long stateBits )
qglTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, clampValue);
}
}
if (diff & GLS_FOG)
{
if (glState.externalSetState & GLS_FOG)

View file

@ -1690,8 +1690,12 @@ void GL_Cull( int cullType );
#define GLS_ATEST_GT_0 0x10000000
#define GLS_ATEST_LT_80 0x20000000
#define GLS_ATEST_GE_80 0x40000000
#define GLS_ATEST_BITS 0x70000000
#define GLS_ATEST_GE_80 0x30000000
#define GLS_ATEST_LT_FOLIAGE1 0x40000000
#define GLS_ATEST_GE_FOLIAGE1 0x50000000
#define GLS_ATEST_LT_FOLIAGE2 0x60000000
#define GLS_ATEST_GE_FOLIAGE2 0x70000000
#define GLS_ATEST_BITS 0x70000000
#define GLS_DEFAULT GLS_DEPTHMASK_TRUE

View file

@ -200,6 +200,22 @@ static unsigned NameToAFunc( const char *funcname )
{
return GLS_ATEST_GE_80;
}
else if ( !Q_stricmp( funcname, "LT_FOLIAGE1" ) )
{
return GLS_ATEST_LT_FOLIAGE1;
}
else if ( !Q_stricmp( funcname, "GE_FOLIAGE1" ) )
{
return GLS_ATEST_GE_FOLIAGE1;
}
else if ( !Q_stricmp( funcname, "LT_FOLIAGE2" ) )
{
return GLS_ATEST_LT_FOLIAGE2;
}
else if ( !Q_stricmp( funcname, "GE_FOLIAGE2" ) )
{
return GLS_ATEST_GE_FOLIAGE2;
}
ri.Printf( PRINT_WARNING, "WARNING: invalid alphaFunc name '%s' in shader '%s'\n", funcname, shader.name );
return 0;