Navigation Menu

Skip to content

Commit

Permalink
Make cg_brighten more precise.
Browse files Browse the repository at this point in the history
  • Loading branch information
enneract committed Jun 27, 2015
1 parent 1d91c18 commit 5904b53
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 13 deletions.
Binary file added assets/gfx/gray_128.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/gfx/gray_16.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/gfx/gray_32.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/gfx/gray_64.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 34 additions & 1 deletion assets/scripts/system_effects.shader
Expand Up @@ -689,10 +689,43 @@ gfx/misc/nopower
}


gfx/brighten
gfx/brighten0 // x2
{
{
map *white
blendFunc GL_DST_COLOR GL_ONE
}
}

gfx/brighten1 // x1.5
{
{
map gfx/gray_128
blendFunc GL_DST_COLOR GL_ONE
}
}

gfx/brighten2 // x1.25
{
{
map gfx/gray_64
blendFunc GL_DST_COLOR GL_ONE
}
}

gfx/brighten3 // x1.125
{
{
map gfx/gray_32
blendFunc GL_DST_COLOR GL_ONE
}
}

gfx/brighten4 // x1.0625
{
{
map gfx/gray_16
blendFunc GL_DST_COLOR GL_ONE
}
}

35 changes: 26 additions & 9 deletions src/cgame/cg_draw.c
Expand Up @@ -4141,13 +4141,28 @@ static void CG_DrawHealthBars( void )
CG_Brighten
=================
*/
static void CG_Brighten( int iterations )
static void CG_Brighten( float target )
{
int i;

for( i = 0; i < iterations; i++ )
if( target <= 1 )
{
CG_DrawPic( 0, 0, 640, 480, cgs.media.brightenShader );
return;
}

repeat:
for( i = 0; i < NUM_BRIGHTEN_SHADERS; i++ )
{
float factor;

factor = 1.0 + pow( 2, -i );

if( target >= factor )
{
CG_DrawPic( 0, 0, 640, 480, cgs.media.brightenShaders[ i ] );
target /= factor;
goto repeat;
}
}
}

Expand Down Expand Up @@ -4192,11 +4207,6 @@ static void CG_DrawWarpOverlay( void )
{
trap_R_SetColor( NULL );

if( cg_brighten.integer < 2 )
{
CG_Brighten( MIN( 2 - cg_brighten.integer, 2 ) );
}

CG_DrawPic( 0, 0, 640, 480, cgs.media.warpOverlay );

if( cg.warpExitBlocked )
Expand Down Expand Up @@ -4232,7 +4242,14 @@ static void CG_Draw2D( void )
// (only 2D that can't be disabled)
CG_DrawLighting( );

CG_Brighten( cg_brighten.integer );
if( cg.warping && cg_brightenWraith.value >= cg_brighten.value )
{
CG_Brighten( cg_brightenWraith.value );
}
else
{
CG_Brighten( cg_brighten.value );
}

CG_DrawWarpOverlay( );

Expand Down
4 changes: 3 additions & 1 deletion src/cgame/cg_local.h
Expand Up @@ -1166,6 +1166,7 @@ typedef struct
qboolean warpExitBlocked;
} cg_t;

#define NUM_BRIGHTEN_SHADERS 5

// all of the model, shader, and sound references that are
// loaded at gamestate time are stored in cgMedia_t
Expand Down Expand Up @@ -1366,7 +1367,7 @@ typedef struct
qhandle_t warpingEnvironmentShader;
qhandle_t warpParticle;

qhandle_t brightenShader;
qhandle_t brightenShaders[ NUM_BRIGHTEN_SHADERS ];
} cgMedia_t;

typedef struct
Expand Down Expand Up @@ -1634,6 +1635,7 @@ extern vmCvar_t cg_hitSounds;
extern vmCvar_t cg_hitStats;

extern vmCvar_t cg_brighten;
extern vmCvar_t cg_brightenWraith;

//
// cg_main.c
Expand Down
9 changes: 7 additions & 2 deletions src/cgame/cg_main.c
Expand Up @@ -242,6 +242,7 @@ vmCvar_t cg_hitSounds;
vmCvar_t cg_hitStats;

vmCvar_t cg_brighten;
vmCvar_t cg_brightenWraith;

typedef struct
{
Expand Down Expand Up @@ -401,7 +402,8 @@ static cvarTable_t cvarTable[ ] =
{ &cg_hitSounds, "cg_hitSounds", "1", CVAR_ARCHIVE },
{ &cg_hitStats, "cg_hitStats", "0", CVAR_ARCHIVE },

{ &cg_brighten, "cg_brighten", "0", CVAR_ARCHIVE }
{ &cg_brighten, "cg_brighten", "0", CVAR_ARCHIVE },
{ &cg_brightenWraith, "cg_brightenWraith", "4", CVAR_ARCHIVE }
};

static int cvarTableSize = sizeof( cvarTable ) / sizeof( cvarTable[0] );
Expand Down Expand Up @@ -946,7 +948,10 @@ static void CG_RegisterGraphics( void )
cgs.media.warpingEnvironmentShader = trap_R_RegisterShader( "gfx/level1/warpingEnvironment" );
cgs.media.warpParticle = trap_R_RegisterShader( "gfx/level1/warpParticle1" );

cgs.media.brightenShader = trap_R_RegisterShader( "gfx/brighten" );
for( i = 0; i < NUM_BRIGHTEN_SHADERS; i++ )
{
cgs.media.brightenShaders[ i ] = trap_R_RegisterShader( va( "gfx/brighten%d", i ) );
}

CG_BuildableStatusParse( "ui/assets/human/buildstat.cfg", &cgs.humanBuildStat );
CG_BuildableStatusParse( "ui/assets/alien/buildstat.cfg", &cgs.alienBuildStat );
Expand Down

0 comments on commit 5904b53

Please sign in to comment.