ref: gl: migrate to new way to get lightstyles and dlights
This commit is contained in:
parent
9ed55776a9
commit
bb4e64ea58
6 changed files with 17 additions and 13 deletions
|
@ -578,7 +578,6 @@ static void R_AliasDynamicLight( cl_entity_t *ent, alight_t *plight )
|
||||||
float add, radius, total;
|
float add, radius, total;
|
||||||
colorVec light;
|
colorVec light;
|
||||||
uint lnum;
|
uint lnum;
|
||||||
dlight_t *dl;
|
|
||||||
|
|
||||||
if( !plight || !ent )
|
if( !plight || !ent )
|
||||||
return;
|
return;
|
||||||
|
@ -694,7 +693,7 @@ static void R_AliasDynamicLight( cl_entity_t *ent, alight_t *plight )
|
||||||
|
|
||||||
for( lnum = 0; lnum < MAX_DLIGHTS; lnum++ )
|
for( lnum = 0; lnum < MAX_DLIGHTS; lnum++ )
|
||||||
{
|
{
|
||||||
dl = gEngfuncs.GetDynamicLight( lnum );
|
const dlight_t *dl = &tr.dlights[lnum];
|
||||||
|
|
||||||
if( dl->die < g_alias.time || !r_dynamic->value )
|
if( dl->die < g_alias.time || !r_dynamic->value )
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -257,6 +257,9 @@ typedef struct
|
||||||
movevars_t *movevars;
|
movevars_t *movevars;
|
||||||
color24 *palette;
|
color24 *palette;
|
||||||
cl_entity_t *viewent;
|
cl_entity_t *viewent;
|
||||||
|
lightstyle_t *lightstyles;
|
||||||
|
dlight_t *dlights;
|
||||||
|
dlight_t *elights;
|
||||||
byte *texgammatable;
|
byte *texgammatable;
|
||||||
uint *lightgammatable;
|
uint *lightgammatable;
|
||||||
uint *lineargammatable;
|
uint *lineargammatable;
|
||||||
|
|
|
@ -1304,6 +1304,9 @@ qboolean R_Init( void )
|
||||||
tr.lightgammatable = (uint *)ENGINE_GET_PARM( PARM_GET_LIGHTGAMMATABLE_PTR );
|
tr.lightgammatable = (uint *)ENGINE_GET_PARM( PARM_GET_LIGHTGAMMATABLE_PTR );
|
||||||
tr.screengammatable = (uint *)ENGINE_GET_PARM( PARM_GET_SCREENGAMMATABLE_PTR );
|
tr.screengammatable = (uint *)ENGINE_GET_PARM( PARM_GET_SCREENGAMMATABLE_PTR );
|
||||||
tr.lineargammatable = (uint *)ENGINE_GET_PARM( PARM_GET_LINEARGAMMATABLE_PTR );
|
tr.lineargammatable = (uint *)ENGINE_GET_PARM( PARM_GET_LINEARGAMMATABLE_PTR );
|
||||||
|
tr.lightstyles = (lightstyle_t *)ENGINE_GET_PARM( PARM_GET_LIGHTSTYLES_PTR );
|
||||||
|
tr.dlights = (dlight_t *)ENGINE_GET_PARM( PARM_GET_DLIGHTS_PTR );
|
||||||
|
tr.elights = (dlight_t *)ENGINE_GET_PARM( PARM_GET_ELIGHTS_PTR );
|
||||||
|
|
||||||
GL_SetDefaults();
|
GL_SetDefaults();
|
||||||
R_CheckVBO();
|
R_CheckVBO();
|
||||||
|
|
|
@ -34,10 +34,8 @@ CL_RunLightStyles
|
||||||
*/
|
*/
|
||||||
void CL_RunLightStyles( void )
|
void CL_RunLightStyles( void )
|
||||||
{
|
{
|
||||||
int i, k, flight, clight;
|
int i;
|
||||||
float l, lerpfrac, backlerp;
|
float frametime = (gp_cl->time - gp_cl->oldtime);
|
||||||
float frametime = (gp_cl->time - gp_cl->oldtime);
|
|
||||||
lightstyle_t *ls;
|
|
||||||
|
|
||||||
if( !WORLDMODEL )
|
if( !WORLDMODEL )
|
||||||
return;
|
return;
|
||||||
|
@ -53,7 +51,9 @@ void CL_RunLightStyles( void )
|
||||||
// 'm' is normal light, 'a' is no light, 'z' is double bright
|
// 'm' is normal light, 'a' is no light, 'z' is double bright
|
||||||
for( i = 0; i < MAX_LIGHTSTYLES; i++ )
|
for( i = 0; i < MAX_LIGHTSTYLES; i++ )
|
||||||
{
|
{
|
||||||
ls = gEngfuncs.GetLightStyle( i );
|
int k, flight, clight;
|
||||||
|
float l, lerpfrac, backlerp;
|
||||||
|
lightstyle_t *ls = &tr.lightstyles[i];
|
||||||
|
|
||||||
if( !gp_cl->paused && frametime <= 0.1f )
|
if( !gp_cl->paused && frametime <= 0.1f )
|
||||||
ls->time += frametime; // evaluate local time
|
ls->time += frametime; // evaluate local time
|
||||||
|
@ -161,7 +161,7 @@ void R_PushDlights( void )
|
||||||
|
|
||||||
for( i = 0; i < MAX_DLIGHTS; i++ )
|
for( i = 0; i < MAX_DLIGHTS; i++ )
|
||||||
{
|
{
|
||||||
dlight_t *l = gEngfuncs.GetDynamicLight( i );
|
dlight_t *l = &tr.dlights[i];
|
||||||
|
|
||||||
if( l->die < gp_cl->time || !l->radius )
|
if( l->die < gp_cl->time || !l->radius )
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -553,7 +553,7 @@ static void R_AddDynamicLights( const msurface_t *surf )
|
||||||
if( !FBitSet( surf->dlightbits, BIT( lnum )))
|
if( !FBitSet( surf->dlightbits, BIT( lnum )))
|
||||||
continue; // not lit by this light
|
continue; // not lit by this light
|
||||||
|
|
||||||
dl = gEngfuncs.GetDynamicLight( lnum );
|
dl = &tr.dlights[lnum];
|
||||||
|
|
||||||
// transform light origin to local bmodel space
|
// transform light origin to local bmodel space
|
||||||
if( !tr.modelviewIdentity )
|
if( !tr.modelviewIdentity )
|
||||||
|
@ -1659,7 +1659,7 @@ void R_DrawBrushModel( cl_entity_t *e )
|
||||||
// calculate dynamic lighting for bmodel
|
// calculate dynamic lighting for bmodel
|
||||||
for( k = 0; k < MAX_DLIGHTS; k++ )
|
for( k = 0; k < MAX_DLIGHTS; k++ )
|
||||||
{
|
{
|
||||||
l = gEngfuncs.GetDynamicLight( k );
|
l = &tr.dlights[k];
|
||||||
|
|
||||||
if( l->die < gp_cl->time || !l->radius )
|
if( l->die < gp_cl->time || !l->radius )
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1450,7 +1450,7 @@ static void R_StudioDynamicLight( cl_entity_t *ent, alight_t *plight )
|
||||||
|
|
||||||
for( lnum = 0; lnum < MAX_DLIGHTS; lnum++ )
|
for( lnum = 0; lnum < MAX_DLIGHTS; lnum++ )
|
||||||
{
|
{
|
||||||
dl = gEngfuncs.GetDynamicLight( lnum );
|
dl = &tr.dlights[lnum];
|
||||||
|
|
||||||
if( dl->die < g_studio.time || !r_dynamic->value )
|
if( dl->die < g_studio.time || !r_dynamic->value )
|
||||||
continue;
|
continue;
|
||||||
|
@ -1517,7 +1517,6 @@ static void R_StudioEntityLight( alight_t *lightinfo )
|
||||||
float lstrength[MAX_LOCALLIGHTS];
|
float lstrength[MAX_LOCALLIGHTS];
|
||||||
cl_entity_t *ent = RI.currententity;
|
cl_entity_t *ent = RI.currententity;
|
||||||
vec3_t mid, origin, pos;
|
vec3_t mid, origin, pos;
|
||||||
dlight_t *el;
|
|
||||||
|
|
||||||
g_studio.numlocallights = 0;
|
g_studio.numlocallights = 0;
|
||||||
|
|
||||||
|
@ -1533,7 +1532,7 @@ static void R_StudioEntityLight( alight_t *lightinfo )
|
||||||
|
|
||||||
for( lnum = 0; lnum < MAX_ELIGHTS; lnum++ )
|
for( lnum = 0; lnum < MAX_ELIGHTS; lnum++ )
|
||||||
{
|
{
|
||||||
el = gEngfuncs.GetEntityLight( lnum );
|
dlight_t *el = &tr.elights[lnum];
|
||||||
|
|
||||||
if( el->die < g_studio.time || el->radius <= 0.0f )
|
if( el->die < g_studio.time || el->radius <= 0.0f )
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Add table
Reference in a new issue