Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Nikolay Korolev 2020-06-22 14:07:49 +03:00
commit fe77b2ac53
4 changed files with 14 additions and 8 deletions

View File

@ -3561,7 +3561,7 @@ CCamera::CalculateDerivedValues(void)
{ {
m_cameraMatrix = Invert(m_matrix); m_cameraMatrix = Invert(m_matrix);
float hfov = DEGTORAD(CDraw::GetFOV()/2.0f); float hfov = DEGTORAD(CDraw::GetScaledFOV()/2.0f);
float c = cos(hfov); float c = cos(hfov);
float s = sin(hfov); float s = sin(hfov);

View File

@ -111,7 +111,7 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w)
#define SCREEN_WIDTH ((float)RsGlobal.width) #define SCREEN_WIDTH ((float)RsGlobal.width)
#define SCREEN_HEIGHT ((float)RsGlobal.height) #define SCREEN_HEIGHT ((float)RsGlobal.height)
#define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio()) #define SCREEN_ASPECT_RATIO (CDraw::GetAspectRatio())
#define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetFOV() * 0.5f))) #define SCREEN_VIEWWINDOW (Tan(DEGTORAD(CDraw::GetScaledFOV() * 0.5f)))
// This scales from PS2 pixel coordinates to the real resolution // This scales from PS2 pixel coordinates to the real resolution
#define SCREEN_STRETCH_X(a) ((a) * (float) SCREEN_WIDTH / DEFAULT_SCREEN_WIDTH) #define SCREEN_STRETCH_X(a) ((a) * (float) SCREEN_WIDTH / DEFAULT_SCREEN_WIDTH)

View File

@ -6,6 +6,7 @@
#ifdef ASPECT_RATIO_SCALE #ifdef ASPECT_RATIO_SCALE
float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO; float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO;
float CDraw::ms_fScaledFOV = 45.0f;
#endif #endif
float CDraw::ms_fNearClipZ; float CDraw::ms_fNearClipZ;
@ -61,8 +62,7 @@ void
CDraw::SetFOV(float fov) CDraw::SetFOV(float fov)
{ {
#ifdef ASPECT_RATIO_SCALE #ifdef ASPECT_RATIO_SCALE
ms_fFOV = ConvertFOV(fov); ms_fScaledFOV = ConvertFOV(fov);
#else
ms_fFOV = fov;
#endif #endif
ms_fFOV = fov;
} }

View File

@ -16,14 +16,15 @@ private:
static float ms_fNearClipZ; static float ms_fNearClipZ;
static float ms_fFarClipZ; static float ms_fFarClipZ;
static float ms_fFOV; static float ms_fFOV;
public:
static float ms_fLODDistance; // set but unused?
#ifdef ASPECT_RATIO_SCALE #ifdef ASPECT_RATIO_SCALE
// we use this variable to scale a lot of 2D elements // we use this variable to scale a lot of 2D elements
// so better cache it // so better cache it
static float ms_fAspectRatio; static float ms_fAspectRatio;
// similar thing for 3D rendering
static float ms_fScaledFOV;
#endif #endif
public:
static float ms_fLODDistance; // set but unused?
static uint8 FadeValue; static uint8 FadeValue;
static uint8 FadeRed; static uint8 FadeRed;
@ -37,6 +38,11 @@ public:
static void SetFOV(float fov); static void SetFOV(float fov);
static float GetFOV(void) { return ms_fFOV; } static float GetFOV(void) { return ms_fFOV; }
#ifdef ASPECT_RATIO_SCALE
static float GetScaledFOV(void) { return ms_fScaledFOV; }
#else
static float GetScaledFOV(void) { return ms_fFOV; }
#endif
static float FindAspectRatio(void); static float FindAspectRatio(void);
#ifdef ASPECT_RATIO_SCALE #ifdef ASPECT_RATIO_SCALE