mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-01 16:42:16 +00:00
- Ensure the viewport's aspect ratio is factored into the HUD's aspect ratio.
* Fixes #617.
This commit is contained in:
parent
64c9ad73a7
commit
bd472acc16
1 changed files with 6 additions and 3 deletions
|
@ -47,6 +47,7 @@
|
||||||
#include "v_text.h"
|
#include "v_text.h"
|
||||||
#include "vm.h"
|
#include "vm.h"
|
||||||
#include "i_interface.h"
|
#include "i_interface.h"
|
||||||
|
#include "r_videoscale.h"
|
||||||
|
|
||||||
FGameTexture* CrosshairImage;
|
FGameTexture* CrosshairImage;
|
||||||
static int CrosshairNum;
|
static int CrosshairNum;
|
||||||
|
@ -366,9 +367,11 @@ void DStatusBarCore::SetScale()
|
||||||
double screenaspect = w / double(h);
|
double screenaspect = w / double(h);
|
||||||
double aspectscale = 1.0;
|
double aspectscale = 1.0;
|
||||||
|
|
||||||
|
double ViewportAspect = ViewportPixelAspect();
|
||||||
|
|
||||||
if ((horz == 320 && vert == 200) || (horz == 640 && vert == 400))
|
if ((horz == 320 && vert == 200) || (horz == 640 && vert == 400))
|
||||||
{
|
{
|
||||||
refaspect = 1.333;
|
refaspect = (4. / 3.);
|
||||||
if (!hud_aspectscale) aspectscale = 1 / 1.2;
|
if (!hud_aspectscale) aspectscale = 1 / 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,9 +386,9 @@ void DStatusBarCore::SetScale()
|
||||||
refw = h * refaspect;
|
refw = h * refaspect;
|
||||||
}
|
}
|
||||||
refw *= hud_scalefactor;
|
refw *= hud_scalefactor;
|
||||||
refh *= hud_scalefactor * aspectscale;
|
refh *= hud_scalefactor * aspectscale / ViewportAspect;
|
||||||
|
|
||||||
int sby = vert - int(RelTop * hud_scalefactor * aspectscale);
|
int sby = vert - int(RelTop * hud_scalefactor * aspectscale / ViewportAspect);
|
||||||
// Use full pixels for destination size.
|
// Use full pixels for destination size.
|
||||||
|
|
||||||
ST_X = xs_CRoundToInt((w - refw) / 2);
|
ST_X = xs_CRoundToInt((w - refw) / 2);
|
||||||
|
|
Loading…
Reference in a new issue