mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 23:32:09 +00:00
[gl] Correct calculation of screen aspect
vrect_t's fields are ints, and it was vid.aspect that prevented the quotient being truncated. Fixes the rather squashed looking world.
This commit is contained in:
parent
6b38a17cf1
commit
3c93d555e3
2 changed files with 8 additions and 8 deletions
|
@ -400,7 +400,7 @@ R_SetupGL_Viewport_and_Perspective (void)
|
||||||
}
|
}
|
||||||
// printf ("glViewport(%d, %d, %d, %d)\n", glx + x, gly + y2, w, h);
|
// printf ("glViewport(%d, %d, %d, %d)\n", glx + x, gly + y2, w, h);
|
||||||
qfglViewport (x, y2, w, h);
|
qfglViewport (x, y2, w, h);
|
||||||
screenaspect = r_refdef.vrect.width / r_refdef.vrect.height;
|
screenaspect = r_refdef.vrect.width / (float) r_refdef.vrect.height;
|
||||||
MYgluPerspective (r_refdef.fov_y, screenaspect, r_nearclip->value,
|
MYgluPerspective (r_refdef.fov_y, screenaspect, r_nearclip->value,
|
||||||
r_farclip->value);
|
r_farclip->value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,16 +165,10 @@ SCR_CalcRefdef (void)
|
||||||
vrect_t vrect;
|
vrect_t vrect;
|
||||||
refdef_t *refdef = r_data->refdef;
|
refdef_t *refdef = r_data->refdef;
|
||||||
|
|
||||||
refdef->fov_y = CalcFov (refdef->fov_x, refdef->vrect.width,
|
|
||||||
refdef->vrect.height);
|
|
||||||
|
|
||||||
// force a background redraw
|
// force a background redraw
|
||||||
r_data->scr_fullupdate = 0;
|
r_data->scr_fullupdate = 0;
|
||||||
r_data->vid->recalc_refdef = 0;
|
r_data->vid->recalc_refdef = 0;
|
||||||
|
|
||||||
// bound field of view
|
|
||||||
Cvar_SetValue (scr_fov, bound (1, scr_fov->value, 170));
|
|
||||||
|
|
||||||
vrect.x = 0;
|
vrect.x = 0;
|
||||||
vrect.y = 0;
|
vrect.y = 0;
|
||||||
vrect.width = r_data->vid->width;
|
vrect.width = r_data->vid->width;
|
||||||
|
@ -185,6 +179,12 @@ SCR_CalcRefdef (void)
|
||||||
view_setgeometry (r_data->scr_view, refdef->vrect.x, refdef->vrect.y,
|
view_setgeometry (r_data->scr_view, refdef->vrect.x, refdef->vrect.y,
|
||||||
refdef->vrect.width, refdef->vrect.height);
|
refdef->vrect.width, refdef->vrect.height);
|
||||||
|
|
||||||
|
// bound field of view
|
||||||
|
Cvar_SetValue (scr_fov, bound (1, scr_fov->value, 170));
|
||||||
|
|
||||||
|
refdef->fov_y = CalcFov (refdef->fov_x, refdef->vrect.width,
|
||||||
|
refdef->vrect.height);
|
||||||
|
|
||||||
// notify the refresh of the change
|
// notify the refresh of the change
|
||||||
r_funcs->R_ViewChanged ();
|
r_funcs->R_ViewChanged ();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue