mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-05 03:24:56 +08:00
ref: soft: replace RI.{vieworg,viewangles,pvsorigin} by ref_viewpass_t fields
This commit is contained in:
@@ -100,7 +100,7 @@ static void R_BeamComputeNormal( const vec3_t vStartPos, const vec3_t vNextPos,
|
||||
VectorSubtract( vStartPos, vNextPos, vTangentY );
|
||||
|
||||
// vDirToBeam = vector from viewer origin to beam
|
||||
VectorSubtract( vStartPos, RI.vieworg, vDirToBeam );
|
||||
VectorSubtract( vStartPos, RI.rvp.vieworigin, vDirToBeam );
|
||||
|
||||
// get a vector that is perpendicular to us and perpendicular to the beam.
|
||||
// this is used to fatten the beam.
|
||||
@@ -1000,7 +1000,7 @@ static void R_BeamDraw( BEAM *pbeam, float frametime )
|
||||
float flDistance;
|
||||
|
||||
// fade the beam if the player's not looking at the source
|
||||
VectorSubtract( RI.vieworg, pbeam->source, localDir );
|
||||
VectorSubtract( RI.rvp.vieworigin, pbeam->source, localDir );
|
||||
flDot = DotProduct( delta, localDir );
|
||||
VectorScale( delta, flDot, vecProjection );
|
||||
VectorSubtract( localDir, vecProjection, tmp );
|
||||
|
||||
@@ -650,7 +650,7 @@ void R_RenderWorld( void )
|
||||
RI.currententity = CL_GetEntityByIndex( 0 );
|
||||
// RI.currententity->frame = (int)(gp_cl->time*2);
|
||||
|
||||
VectorCopy( RI.vieworg, tr.modelorg );
|
||||
VectorCopy( RI.rvp.vieworigin, tr.modelorg );
|
||||
RI.currentmodel = WORLDMODEL;
|
||||
r_pcurrentvertbase = RI.currentmodel->vertexes;
|
||||
|
||||
|
||||
@@ -877,7 +877,7 @@ static void D_TurbulentSurf( surf_t *s )
|
||||
// TODO: store once at start of frame
|
||||
RI.currententity = s->entity; // FIXME: make this passed in to
|
||||
// R_RotateBmodel ()
|
||||
VectorSubtract( RI.vieworg, RI.currententity->origin,
|
||||
VectorSubtract( RI.rvp.vieworigin, RI.currententity->origin,
|
||||
local_modelorg );
|
||||
TransformVector( local_modelorg, transformed_modelorg );
|
||||
|
||||
@@ -940,7 +940,7 @@ static void D_AlphaSurf( surf_t *s )
|
||||
// TODO: store once at start of frame
|
||||
RI.currententity = s->entity; // FIXME: make this passed in to
|
||||
// R_RotateBmodel ()
|
||||
VectorSubtract( RI.vieworg, RI.currententity->origin, local_modelorg );
|
||||
VectorSubtract( RI.rvp.vieworigin, RI.currententity->origin, local_modelorg );
|
||||
TransformVector( local_modelorg, transformed_modelorg );
|
||||
|
||||
R_RotateBmodel(); // FIXME: don't mess with the frustum,
|
||||
@@ -1021,7 +1021,7 @@ static void D_SolidSurf( surf_t *s )
|
||||
// TODO: store once at start of frame
|
||||
RI.currententity = s->entity; // FIXME: make this passed in to
|
||||
// R_RotateBmodel ()
|
||||
VectorSubtract( RI.vieworg, RI.currententity->origin, local_modelorg );
|
||||
VectorSubtract( RI.rvp.vieworigin, RI.currententity->origin, local_modelorg );
|
||||
TransformVector( local_modelorg, transformed_modelorg );
|
||||
|
||||
R_RotateBmodel(); // FIXME: don't mess with the frustum,
|
||||
@@ -1123,7 +1123,7 @@ void D_DrawSurfaces( void )
|
||||
surf_t *s;
|
||||
|
||||
// currententity = NULL; //&r_worldentity;
|
||||
VectorSubtract( RI.vieworg, vec3_origin, tr.modelorg );
|
||||
VectorSubtract( RI.rvp.vieworigin, vec3_origin, tr.modelorg );
|
||||
TransformVector( tr.modelorg, transformed_modelorg );
|
||||
VectorCopy( transformed_modelorg, world_transformed_modelorg );
|
||||
|
||||
@@ -1148,7 +1148,7 @@ void D_DrawSurfaces( void )
|
||||
D_DrawflatSurfaces();
|
||||
|
||||
// RI.currententity = NULL; //&r_worldentity;
|
||||
VectorSubtract( RI.vieworg, vec3_origin, tr.modelorg );
|
||||
VectorSubtract( RI.rvp.vieworigin, vec3_origin, tr.modelorg );
|
||||
R_TransformFrustum();
|
||||
}
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ extern viddef_t vid;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ref_viewpass_t rvp;
|
||||
const ref_viewpass_t rvp;
|
||||
|
||||
qboolean drawWorld; // ignore world for drawing PlayerModel
|
||||
qboolean isSkyVisible; // sky is visible
|
||||
@@ -137,9 +137,6 @@ typedef struct
|
||||
|
||||
mleaf_t *viewleaf;
|
||||
mleaf_t *oldviewleaf;
|
||||
vec3_t pvsorigin;
|
||||
vec3_t vieworg; // locked vieworigin
|
||||
vec3_t viewangles;
|
||||
vec3_t vforward;
|
||||
vec3_t vright;
|
||||
vec3_t vup;
|
||||
|
||||
@@ -172,7 +172,7 @@ static int R_TransEntityCompare( const cl_entity_t **a, const cl_entity_t **b )
|
||||
{
|
||||
VectorAverage( ent1->model->mins, ent1->model->maxs, org );
|
||||
VectorAdd( ent1->origin, org, org );
|
||||
VectorSubtract( RI.vieworg, org, vecLen );
|
||||
VectorSubtract( RI.rvp.vieworigin, org, vecLen );
|
||||
dist1 = DotProduct( vecLen, vecLen );
|
||||
}
|
||||
else
|
||||
@@ -182,7 +182,7 @@ static int R_TransEntityCompare( const cl_entity_t **a, const cl_entity_t **b )
|
||||
{
|
||||
VectorAverage( ent2->model->mins, ent2->model->maxs, org );
|
||||
VectorAdd( ent2->origin, org, org );
|
||||
VectorSubtract( RI.vieworg, org, vecLen );
|
||||
VectorSubtract( RI.rvp.vieworigin, org, vecLen );
|
||||
dist2 = DotProduct( vecLen, vecLen );
|
||||
}
|
||||
else
|
||||
@@ -392,10 +392,10 @@ R_SetupFrustum
|
||||
void R_SetupFrustum( void )
|
||||
{
|
||||
// build the transformation matrix for the given view angles
|
||||
AngleVectors( RI.viewangles, RI.vforward, RI.vright, RI.vup );
|
||||
AngleVectors( RI.rvp.viewangles, RI.vforward, RI.vright, RI.vup );
|
||||
|
||||
{
|
||||
VectorCopy( RI.vieworg, RI.cullorigin );
|
||||
VectorCopy( RI.rvp.vieworigin, RI.cullorigin );
|
||||
VectorCopy( RI.vforward, RI.cull_vforward );
|
||||
VectorCopy( RI.vright, RI.cull_vright );
|
||||
VectorCopy( RI.vup, RI.cull_vup );
|
||||
@@ -440,10 +440,10 @@ R_SetupModelviewMatrix
|
||||
static void R_SetupModelviewMatrix( matrix4x4 m )
|
||||
{
|
||||
Matrix4x4_CreateModelview( m );
|
||||
Matrix4x4_ConcatRotate( m, -RI.viewangles[2], 1, 0, 0 );
|
||||
Matrix4x4_ConcatRotate( m, -RI.viewangles[0], 0, 1, 0 );
|
||||
Matrix4x4_ConcatRotate( m, -RI.viewangles[1], 0, 0, 1 );
|
||||
Matrix4x4_ConcatTranslate( m, -RI.vieworg[0], -RI.vieworg[1], -RI.vieworg[2] );
|
||||
Matrix4x4_ConcatRotate( m, -RI.rvp.viewangles[2], 1, 0, 0 );
|
||||
Matrix4x4_ConcatRotate( m, -RI.rvp.viewangles[0], 0, 1, 0 );
|
||||
Matrix4x4_ConcatRotate( m, -RI.rvp.viewangles[1], 0, 0, 1 );
|
||||
Matrix4x4_ConcatTranslate( m, -RI.rvp.vieworigin[0], -RI.rvp.vieworigin[1], -RI.rvp.vieworigin[2] );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -481,7 +481,7 @@ R_FindViewLeaf
|
||||
void R_FindViewLeaf( void )
|
||||
{
|
||||
RI.oldviewleaf = RI.viewleaf;
|
||||
RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.pvsorigin, WORLDMODEL->nodes );
|
||||
RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.rvp.vieworigin, WORLDMODEL->nodes );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -492,7 +492,7 @@ R_SetupFrame
|
||||
static void R_SetupFrame( void )
|
||||
{
|
||||
// setup viewplane dist
|
||||
RI.viewplanedist = DotProduct( RI.vieworg, RI.vforward );
|
||||
RI.viewplanedist = DotProduct( RI.rvp.vieworigin, RI.vforward );
|
||||
|
||||
// if( !gl_nosort->value )
|
||||
{
|
||||
@@ -832,7 +832,7 @@ static void R_DrawBEntitiesOnList( void )
|
||||
continue; // no part in a visible leaf
|
||||
|
||||
VectorCopy( RI.currententity->origin, r_entorigin );
|
||||
VectorSubtract( RI.vieworg, r_entorigin, tr.modelorg );
|
||||
VectorSubtract( RI.rvp.vieworigin, r_entorigin, tr.modelorg );
|
||||
// VectorSubtract (r_origin, RI.currententity->origin, modelorg);
|
||||
r_pcurrentvertbase = RI.currentmodel->vertexes;
|
||||
|
||||
@@ -944,7 +944,7 @@ void R_DrawBrushModel( cl_entity_t *pent )
|
||||
|
||||
alphaspans = true;
|
||||
VectorCopy( RI.currententity->origin, r_entorigin );
|
||||
VectorSubtract( RI.vieworg, r_entorigin, tr.modelorg );
|
||||
VectorSubtract( RI.rvp.vieworigin, r_entorigin, tr.modelorg );
|
||||
// VectorSubtract (r_origin, RI.currententity->origin, modelorg);
|
||||
r_pcurrentvertbase = RI.currentmodel->vertexes;
|
||||
|
||||
@@ -1053,7 +1053,7 @@ static void R_MarkLeaves( void )
|
||||
tr.visframecount++;
|
||||
r_oldviewcluster = r_viewcluster;
|
||||
|
||||
gEngfuncs.R_FatPVS( RI.pvsorigin, r_pvs_radius->value, RI.visbytes, false, false );
|
||||
gEngfuncs.R_FatPVS( RI.rvp.vieworigin, r_pvs_radius->value, RI.visbytes, false, false );
|
||||
vis = RI.visbytes;
|
||||
|
||||
for( i = 0; i < WORLDMODEL->numleafs; i++ )
|
||||
@@ -1166,10 +1166,6 @@ void R_SetupRefParams( const ref_viewpass_t *rvp )
|
||||
RI.drawOrtho = FBitSet( rvp->flags, RF_DRAW_OVERVIEW );
|
||||
else
|
||||
RI.drawOrtho = false;
|
||||
|
||||
VectorCopy( rvp->vieworigin, RI.vieworg );
|
||||
VectorCopy( rvp->viewangles, RI.viewangles );
|
||||
VectorCopy( rvp->vieworigin, RI.pvsorigin );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1535,7 +1531,7 @@ int CL_FxBlend( cl_entity_t *e )
|
||||
case kRenderFxHologram:
|
||||
case kRenderFxDistort:
|
||||
VectorCopy( e->origin, tmp );
|
||||
VectorSubtract( tmp, RI.vieworg, tmp );
|
||||
VectorSubtract( tmp, RI.rvp.vieworigin, tmp );
|
||||
dist = DotProduct( tmp, RI.vforward );
|
||||
|
||||
// turn off distance fade
|
||||
|
||||
@@ -288,14 +288,14 @@ void R_SetupFrameQ( void )
|
||||
|
||||
|
||||
// build the transformation matrix for the given view angles
|
||||
VectorCopy( RI.vieworg, tr.modelorg );
|
||||
VectorCopy( RI.rvp.vieworigin, tr.modelorg );
|
||||
|
||||
// AngleVectors (RI.viewangles, RI.vforward, RI.vright, RI.vup);
|
||||
// AngleVectors (RI.rvp.viewangles, RI.vforward, RI.vright, RI.vup);
|
||||
|
||||
// current viewleaf
|
||||
if( RI.drawWorld )
|
||||
{
|
||||
RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.vieworg, WORLDMODEL->nodes );
|
||||
RI.viewleaf = gEngfuncs.Mod_PointInLeaf( RI.rvp.vieworigin, WORLDMODEL->nodes );
|
||||
r_viewcluster = RI.viewleaf->cluster;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,9 +72,9 @@ void GAME_EXPORT CL_DrawParticles( double frametime, particle_t *cl_active_parti
|
||||
size = partsize; // get initial size of particle
|
||||
|
||||
// scale up to keep particles from disappearing
|
||||
size += ( p->org[0] - RI.vieworg[0] ) * RI.cull_vforward[0];
|
||||
size += ( p->org[1] - RI.vieworg[1] ) * RI.cull_vforward[1];
|
||||
size += ( p->org[2] - RI.vieworg[2] ) * RI.cull_vforward[2];
|
||||
size += ( p->org[0] - RI.rvp.vieworigin[0] ) * RI.cull_vforward[0];
|
||||
size += ( p->org[1] - RI.rvp.vieworigin[1] ) * RI.cull_vforward[1];
|
||||
size += ( p->org[2] - RI.rvp.vieworigin[2] ) * RI.cull_vforward[2];
|
||||
|
||||
if( size < 20.0f )
|
||||
size = partsize;
|
||||
|
||||
@@ -65,10 +65,10 @@ static float R_SpriteGlowBlend( vec3_t origin, int rendermode, int renderfx, flo
|
||||
float dist, brightness;
|
||||
vec3_t glowDist;
|
||||
|
||||
VectorSubtract( origin, RI.vieworg, glowDist );
|
||||
VectorSubtract( origin, RI.rvp.vieworigin, glowDist );
|
||||
dist = VectorLength( glowDist );
|
||||
|
||||
pmtrace_t *tr = gEngfuncs.EV_VisTraceLine( RI.vieworg, origin, r_traceglow.value ? PM_GLASS_IGNORE : ( PM_GLASS_IGNORE | PM_STUDIO_IGNORE ));
|
||||
pmtrace_t *tr = gEngfuncs.EV_VisTraceLine( RI.rvp.vieworigin, origin, r_traceglow.value ? PM_GLASS_IGNORE : ( PM_GLASS_IGNORE | PM_STUDIO_IGNORE ));
|
||||
if(( 1.0f - tr->fraction ) * dist > 8.0f )
|
||||
return 0.0f;
|
||||
|
||||
@@ -235,7 +235,7 @@ void R_DrawSpriteModel( cl_entity_t *e )
|
||||
VectorSubtract( origin, v_forward, origin );
|
||||
break;
|
||||
case SPR_FACING_UPRIGHT:
|
||||
VectorSet( v_right, origin[1] - RI.vieworg[1], -( origin[0] - RI.vieworg[0] ), 0.0f );
|
||||
VectorSet( v_right, origin[1] - RI.rvp.vieworigin[1], -( origin[0] - RI.rvp.vieworigin[0] ), 0.0f );
|
||||
VectorSet( v_up, 0.0f, 0.0f, 1.0f );
|
||||
VectorNormalize( v_right );
|
||||
break;
|
||||
|
||||
@@ -420,7 +420,7 @@ pfnGetViewInfo
|
||||
static void pfnGetViewInfo( float *origin, float *upv, float *rightv, float *forwardv )
|
||||
{
|
||||
if( origin )
|
||||
VectorCopy( RI.vieworg, origin );
|
||||
VectorCopy( RI.rvp.vieworigin, origin );
|
||||
if( forwardv )
|
||||
VectorCopy( RI.vforward, forwardv );
|
||||
if( rightv )
|
||||
@@ -2572,7 +2572,7 @@ R_StudioSetChromeOrigin
|
||||
*/
|
||||
static void R_StudioSetChromeOrigin( void )
|
||||
{
|
||||
VectorCopy( RI.vieworg, g_studio.chrome_origin );
|
||||
VectorCopy( RI.rvp.vieworigin, g_studio.chrome_origin );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -78,9 +78,9 @@ void R_SetUpWorldTransform( void )
|
||||
aliasoldworldtransform[i][0] = aliasworldtransform[i][2] = s_alias_up[i];
|
||||
}
|
||||
|
||||
aliasworldtransform[0][3] = -RI.vieworg[0];
|
||||
aliasworldtransform[1][3] = -RI.vieworg[1];
|
||||
aliasworldtransform[2][3] = -RI.vieworg[2];
|
||||
aliasworldtransform[0][3] = -RI.rvp.vieworigin[0];
|
||||
aliasworldtransform[1][3] = -RI.rvp.vieworigin[1];
|
||||
aliasworldtransform[2][3] = -RI.rvp.vieworigin[2];
|
||||
|
||||
// aliasoldworldtransform[0][3] = RI.currententity->oldorigin[0]-r_origin[0];
|
||||
// aliasoldworldtransform[1][3] = RI.currententity->oldorigin[1]-r_origin[1];
|
||||
|
||||
Reference in New Issue
Block a user