24 Apr 2011
This commit is contained in:
parent
3efa573411
commit
30b1c0cd63
|
@ -1637,7 +1637,7 @@ static void pfnFillRGBA( int x, int y, int width, int height, int r, int g, int
|
|||
|
||||
SPR_AdjustSize( (float *)&x, (float *)&y, (float *)&width, (float *)&height );
|
||||
|
||||
GL_SetRenderMode( kRenderTransTexture );
|
||||
GL_SetRenderMode( kRenderTransAdd );
|
||||
R_DrawStretchPic( x, y, width, height, 0, 0, 1, 1, cls.fillImage );
|
||||
pglColor4ub( 255, 255, 255, 255 );
|
||||
}
|
||||
|
|
|
@ -278,9 +278,12 @@ int R_ComputeFxBlend( cl_entity_t *e )
|
|||
break;
|
||||
}
|
||||
|
||||
// NOTE: never pass sprites with rendercolor '0 0 0' it's a stupid Valve Hammer Editor bug
|
||||
if( !e->curstate.rendercolor.r && !e->curstate.rendercolor.g && !e->curstate.rendercolor.b )
|
||||
e->curstate.rendercolor.r = e->curstate.rendercolor.g = e->curstate.rendercolor.b = 255;
|
||||
if( RI.currentmodel->type != mod_brush )
|
||||
{
|
||||
// NOTE: never pass sprites with rendercolor '0 0 0' it's a stupid Valve Hammer Editor bug
|
||||
if( !e->curstate.rendercolor.r && !e->curstate.rendercolor.g && !e->curstate.rendercolor.b )
|
||||
e->curstate.rendercolor.r = e->curstate.rendercolor.g = e->curstate.rendercolor.b = 255;
|
||||
}
|
||||
|
||||
// apply scale to studiomodels and sprites only
|
||||
if( e->model && e->model->type != mod_brush && !e->curstate.scale )
|
||||
|
@ -393,7 +396,7 @@ R_GetFarClip
|
|||
static float R_GetFarClip( void )
|
||||
{
|
||||
if( cl.worldmodel && RI.drawWorld )
|
||||
return RI.refdef.movevars->zmax + 1024.0f;
|
||||
return RI.refdef.movevars->zmax * 1.5f;
|
||||
return 2048.0f;
|
||||
}
|
||||
|
||||
|
|
|
@ -1207,6 +1207,7 @@ void R_DrawBrushModel( cl_entity_t *e )
|
|||
pglColor4ub( 255, 255, 255, e->curstate.renderamt );
|
||||
break;
|
||||
case kRenderTransColor:
|
||||
pglDisable( GL_TEXTURE_2D );
|
||||
pglColor4ub( e->curstate.rendercolor.r, e->curstate.rendercolor.g,
|
||||
e->curstate.rendercolor.b, e->curstate.renderamt );
|
||||
break;
|
||||
|
@ -1258,6 +1259,9 @@ void R_DrawBrushModel( cl_entity_t *e )
|
|||
for( i = 0; i < num_sorted; i++ )
|
||||
R_RenderBrushPoly( world.draw_surfaces[i] );
|
||||
|
||||
if( e->curstate.rendermode == kRenderTransColor )
|
||||
pglEnable( GL_TEXTURE_2D );
|
||||
|
||||
R_BlendLightmaps();
|
||||
R_RenderFullbrights();
|
||||
R_LoadIdentity(); // restore worldmatrix
|
||||
|
|
|
@ -885,6 +885,7 @@ void R_DrawSpriteModel( cl_entity_t *e )
|
|||
switch( e->curstate.rendermode )
|
||||
{
|
||||
case kRenderTransAlpha:
|
||||
case kRenderTransColor:
|
||||
case kRenderTransTexture:
|
||||
pglEnable( GL_BLEND );
|
||||
pglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||
|
@ -912,7 +913,7 @@ void R_DrawSpriteModel( cl_entity_t *e )
|
|||
// all sprites can have color
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
|
||||
// add basecolor
|
||||
// add basecolor (any rendermode can colored sprite)
|
||||
color[0] = (float)e->curstate.rendercolor.r * ( 1.0f / 255.0f );
|
||||
color[1] = (float)e->curstate.rendercolor.g * ( 1.0f / 255.0f );
|
||||
color[2] = (float)e->curstate.rendercolor.b * ( 1.0f / 255.0f );
|
||||
|
|
|
@ -1707,13 +1707,11 @@ static void R_StudioDrawPoints( void )
|
|||
if( flags & STUDIO_NF_TRANSPARENT )
|
||||
{
|
||||
GL_SetRenderMode( kRenderTransAlpha );
|
||||
if( glState.drawTrans ) pglDepthMask( GL_TRUE );
|
||||
alpha = 1.0f;
|
||||
}
|
||||
else if(( flags & STUDIO_NF_ADDITIVE ) || ( g_nFaceFlags & STUDIO_NF_CHROME ))
|
||||
{
|
||||
GL_SetRenderMode( kRenderTransAdd );
|
||||
if( !glState.drawTrans ) pglDepthMask( GL_FALSE );
|
||||
alpha = RI.currententity->curstate.renderamt * (1.0f / 255.0f);
|
||||
|
||||
if( g_nFaceFlags & STUDIO_NF_CHROME )
|
||||
|
@ -1735,9 +1733,8 @@ static void R_StudioDrawPoints( void )
|
|||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
alpha = 1.0f;
|
||||
}
|
||||
if( !glState.drawTrans )
|
||||
pglDepthMask( GL_TRUE );
|
||||
else pglDepthMask( GL_FALSE );
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(!( g_nFaceFlags & STUDIO_NF_CHROME ))
|
||||
|
@ -2206,6 +2203,9 @@ static void R_StudioSetupRenderer( int rendermode )
|
|||
g_iRenderMode = bound( 0, rendermode, kRenderTransInverse );
|
||||
pglShadeModel( GL_SMOOTH ); // enable gouraud shading
|
||||
GL_Cull( GL_FRONT );
|
||||
|
||||
// enable depthmask on studiomodels
|
||||
if( glState.drawTrans ) pglDepthMask( GL_TRUE );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2219,9 +2219,8 @@ static void R_StudioRestoreRenderer( void )
|
|||
pglTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
||||
pglShadeModel( GL_FLAT );
|
||||
|
||||
if( !glState.drawTrans )
|
||||
pglDepthMask( GL_TRUE );
|
||||
else pglDepthMask( GL_FALSE );
|
||||
// restore depthmask state for sprites etc
|
||||
if( glState.drawTrans ) pglDepthMask( GL_FALSE );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Reference in New Issue