OpenGL2: Remove AGEN_FRESNEL(superceded by cubemap patch), and some small fixes and optimizations.
This commit is contained in:
parent
82be4e667f
commit
acbeca6042
8 changed files with 157 additions and 213 deletions
|
@ -423,44 +423,27 @@ static void ProjectDlightTexture( void ) {
|
|||
|
||||
static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t vertColor )
|
||||
{
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] =
|
||||
baseColor[3] = 1.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
|
||||
//
|
||||
// rgbGen
|
||||
//
|
||||
switch ( pStage->rgbGen )
|
||||
{
|
||||
case CGEN_IDENTITY:
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] =
|
||||
baseColor[3] = 1.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_IDENTITY_LIGHTING:
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] = tr.identityLight;
|
||||
baseColor[3] = 1.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_EXACT_VERTEX:
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] =
|
||||
baseColor[3] = 0.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 1.0f;
|
||||
break;
|
||||
case CGEN_EXACT_VERTEX_LIT:
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
|
@ -477,11 +460,6 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
baseColor[1] = pStage->constantColor[1] / 255.0f;
|
||||
baseColor[2] = pStage->constantColor[2] / 255.0f;
|
||||
baseColor[3] = pStage->constantColor[3] / 255.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_VERTEX:
|
||||
baseColor[0] =
|
||||
|
@ -509,12 +487,10 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] = tr.identityLight;
|
||||
baseColor[3] = 1.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] = -tr.identityLight;
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_FOG:
|
||||
{
|
||||
|
@ -527,22 +503,11 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
baseColor[2] = ((unsigned char *)(&fog->colorInt))[2] / 255.0f;
|
||||
baseColor[3] = ((unsigned char *)(&fog->colorInt))[3] / 255.0f;
|
||||
}
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_WAVEFORM:
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] = RB_CalcWaveColorSingle( &pStage->rgbWave );
|
||||
baseColor[3] = 1.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_ENTITY:
|
||||
if (backEnd.currentEntity)
|
||||
|
@ -552,11 +517,6 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
baseColor[2] = ((unsigned char *)backEnd.currentEntity->e.shaderRGBA)[2] / 255.0f;
|
||||
baseColor[3] = ((unsigned char *)backEnd.currentEntity->e.shaderRGBA)[3] / 255.0f;
|
||||
}
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_ONE_MINUS_ENTITY:
|
||||
if (backEnd.currentEntity)
|
||||
|
@ -566,23 +526,10 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
baseColor[2] = 1.0f - ((unsigned char *)backEnd.currentEntity->e.shaderRGBA)[2] / 255.0f;
|
||||
baseColor[3] = 1.0f - ((unsigned char *)backEnd.currentEntity->e.shaderRGBA)[3] / 255.0f;
|
||||
}
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case CGEN_IDENTITY:
|
||||
case CGEN_LIGHTING_DIFFUSE:
|
||||
case CGEN_BAD:
|
||||
baseColor[0] =
|
||||
baseColor[1] =
|
||||
baseColor[2] =
|
||||
baseColor[3] = 1.0f;
|
||||
|
||||
vertColor[0] =
|
||||
vertColor[1] =
|
||||
vertColor[2] =
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -593,10 +540,6 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
{
|
||||
case AGEN_SKIP:
|
||||
break;
|
||||
case AGEN_IDENTITY:
|
||||
baseColor[3] = 1.0f;
|
||||
vertColor[3] = 0.0f;
|
||||
break;
|
||||
case AGEN_CONST:
|
||||
baseColor[3] = pStage->constantColor[3] / 255.0f;
|
||||
vertColor[3] = 0.0f;
|
||||
|
@ -627,9 +570,9 @@ static void ComputeShaderColors( shaderStage_t *pStage, vec4_t baseColor, vec4_t
|
|||
baseColor[3] = 1.0f;
|
||||
vertColor[3] = -1.0f;
|
||||
break;
|
||||
case AGEN_IDENTITY:
|
||||
case AGEN_LIGHTING_SPECULAR:
|
||||
case AGEN_PORTAL:
|
||||
case AGEN_FRESNEL:
|
||||
// Done entirely in vertex program
|
||||
baseColor[3] = 1.0f;
|
||||
vertColor[3] = 0.0f;
|
||||
|
@ -1082,7 +1025,7 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
|
|||
|
||||
if (backEnd.depthFill)
|
||||
{
|
||||
if (pStage->glslShaderGroup)
|
||||
if (pStage->glslShaderGroup == tr.lightallShader)
|
||||
{
|
||||
int index = 0;
|
||||
|
||||
|
@ -1120,7 +1063,7 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
|
|||
sp = &tr.genericShader[shaderAttribs];
|
||||
}
|
||||
}
|
||||
else if (pStage->glslShaderGroup)
|
||||
else if (pStage->glslShaderGroup == tr.lightallShader)
|
||||
{
|
||||
int index = pStage->glslShaderIndex;
|
||||
|
||||
|
@ -1146,10 +1089,7 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
|
|||
|
||||
sp = &pStage->glslShaderGroup[index];
|
||||
|
||||
if (pStage->glslShaderGroup == tr.lightallShader)
|
||||
{
|
||||
backEnd.pc.c_lightallDraws++;
|
||||
}
|
||||
backEnd.pc.c_lightallDraws++;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1269,7 +1209,7 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
|
|||
else if ( pStage->bundle[TB_COLORMAP].image[0] != 0 )
|
||||
R_BindAnimatedImageToTMU( &pStage->bundle[TB_COLORMAP], TB_COLORMAP );
|
||||
}
|
||||
else if ( pStage->glslShaderGroup )
|
||||
else if ( pStage->glslShaderGroup == tr.lightallShader )
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -1285,13 +1225,29 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
|
|||
{
|
||||
for (i = 0; i < NUM_TEXTURE_BUNDLES; i++)
|
||||
{
|
||||
if (i == TB_LIGHTMAP)
|
||||
image_t *img;
|
||||
|
||||
if (pStage->bundle[i].image[0])
|
||||
{
|
||||
R_BindAnimatedImageToTMU( &pStage->bundle[i], i);
|
||||
}
|
||||
else if (pStage->bundle[i].image[0])
|
||||
{
|
||||
GL_BindToTMU( tr.whiteImage, i);
|
||||
switch(i)
|
||||
{
|
||||
case TB_LIGHTMAP:
|
||||
R_BindAnimatedImageToTMU( &pStage->bundle[TB_LIGHTMAP], i);
|
||||
break;
|
||||
|
||||
case TB_DIFFUSEMAP:
|
||||
case TB_SPECULARMAP:
|
||||
case TB_SHADOWMAP:
|
||||
case TB_CUBEMAP:
|
||||
default:
|
||||
GL_BindToTMU( tr.whiteImage, i);
|
||||
break;
|
||||
|
||||
case TB_NORMALMAP:
|
||||
case TB_DELUXEMAP:
|
||||
GL_BindToTMU( tr.greyImage, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1299,15 +1255,32 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
|
|||
{
|
||||
for (i = 0; i < NUM_TEXTURE_BUNDLES; i++)
|
||||
{
|
||||
if (i == TB_LIGHTMAP)
|
||||
image_t *img;
|
||||
|
||||
if (pStage->bundle[i].image[0])
|
||||
{
|
||||
R_BindAnimatedImageToTMU( &pStage->bundle[TB_DELUXEMAP], i);
|
||||
}
|
||||
else if (pStage->bundle[i].image[0])
|
||||
{
|
||||
GL_BindToTMU( tr.whiteImage, i);
|
||||
switch(i)
|
||||
{
|
||||
case TB_LIGHTMAP:
|
||||
R_BindAnimatedImageToTMU( &pStage->bundle[TB_DELUXEMAP], i);
|
||||
break;
|
||||
|
||||
case TB_DIFFUSEMAP:
|
||||
case TB_SPECULARMAP:
|
||||
case TB_SHADOWMAP:
|
||||
case TB_CUBEMAP:
|
||||
default:
|
||||
GL_BindToTMU( tr.whiteImage, i);
|
||||
break;
|
||||
|
||||
case TB_NORMALMAP:
|
||||
case TB_DELUXEMAP:
|
||||
GL_BindToTMU( tr.greyImage, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue