mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
[sw] Clean up R_SetSkyFrame a little
Move the constant data into R_InitSky so it doesn't get calculated every frame (doesn't make much difference of course, but...)
This commit is contained in:
parent
d8a4c8dbe9
commit
6c29904b1d
4 changed files with 17 additions and 14 deletions
|
@ -75,6 +75,8 @@ extern float d_sdivzstepu, d_tdivzstepu, d_zistepu;
|
|||
extern float d_sdivzstepv, d_tdivzstepv, d_zistepv;
|
||||
extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin;
|
||||
|
||||
extern float d_skyoffs;
|
||||
|
||||
extern fixed16_t sadjust, tadjust;
|
||||
extern fixed16_t bbextents, bbextentt;
|
||||
|
||||
|
|
|
@ -93,6 +93,8 @@ D_SetupFrame (void)
|
|||
d_scalemip[i] = basemip[i] * d_mipscale->value;
|
||||
|
||||
d_drawspans = D_DrawSpans8;
|
||||
|
||||
d_skyoffs = r_skytime * r_skyspeed;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#define SKY_SPAN_SHIFT 5
|
||||
#define SKY_SPAN_MAX (1 << SKY_SPAN_SHIFT)
|
||||
|
||||
float d_skyoffs;
|
||||
|
||||
static void
|
||||
D_Sky_uv_To_st (int u, int v, fixed16_t *s, fixed16_t *t)
|
||||
|
@ -59,9 +60,8 @@ D_Sky_uv_To_st (int u, int v, fixed16_t *s, fixed16_t *t)
|
|||
end[2] *= 3;
|
||||
VectorNormalize (end);
|
||||
|
||||
temp = r_skytime * r_skyspeed; // TODO: add D_SetupFrame & set this there
|
||||
*s = (int) ((temp + 6 * (SKYSIZE / 2 - 1) * end[0]) * 0x10000);
|
||||
*t = (int) ((temp + 6 * (SKYSIZE / 2 - 1) * end[1]) * 0x10000);
|
||||
*s = (int) ((d_skyoffs + 6 * (SKYSIZE / 2 - 1) * end[0]) * 0x10000);
|
||||
*t = (int) ((d_skyoffs + 6 * (SKYSIZE / 2 - 1) * end[1]) * 0x10000);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
static int iskyspeed = 8;
|
||||
static int iskyspeed2 = 2;
|
||||
static float r_skyperiod;
|
||||
float r_skyspeed;
|
||||
|
||||
float r_skytime;
|
||||
|
@ -64,6 +65,13 @@ R_InitSky (texture_t *mt)
|
|||
int i, j;
|
||||
byte *src;
|
||||
|
||||
int g = GreatestCommonDivisor (iskyspeed, iskyspeed2);
|
||||
int s1 = iskyspeed / g;
|
||||
int s2 = iskyspeed2 / g;
|
||||
r_skyperiod = SKYSIZE * s1 * s2;
|
||||
|
||||
r_skyspeed = iskyspeed;
|
||||
|
||||
src = (byte *) mt + mt->offsets[0];
|
||||
|
||||
for (i = 0; i < 128; i++) {
|
||||
|
@ -174,17 +182,8 @@ R_GenSkyTile (void *pdest)
|
|||
void
|
||||
R_SetSkyFrame (void)
|
||||
{
|
||||
int g, s1, s2;
|
||||
float temp;
|
||||
|
||||
r_skyspeed = iskyspeed;
|
||||
|
||||
g = GreatestCommonDivisor (iskyspeed, iskyspeed2);
|
||||
s1 = iskyspeed / g;
|
||||
s2 = iskyspeed2 / g;
|
||||
temp = SKYSIZE * s1 * s2;
|
||||
|
||||
r_skytime = vr_data.realtime - ((int) (vr_data.realtime / temp) * temp);
|
||||
r_skytime = vr_data.realtime;
|
||||
r_skytime -= trunc (vr_data.realtime / r_skyperiod) * r_skyperiod;
|
||||
|
||||
r_skymade = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue