summaryrefslogtreecommitdiffstats
path: root/src/renderer/Draw.h
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2021-07-17 23:03:57 +0200
committerSergeanur <s.anureev@yandex.ua>2021-07-17 23:03:57 +0200
commitc937bdbfea8f522d14d7a41f24372bddf5bdafcc (patch)
treeeb8f97f6cf9fac31d7ab90388af232d51cc9c137 /src/renderer/Draw.h
parentMerge pull request #1219 from withmorten/miami-ini (diff)
downloadre3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.tar
re3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.tar.gz
re3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.tar.bz2
re3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.tar.lz
re3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.tar.xz
re3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.tar.zst
re3-c937bdbfea8f522d14d7a41f24372bddf5bdafcc.zip
Diffstat (limited to 'src/renderer/Draw.h')
-rw-r--r--src/renderer/Draw.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/renderer/Draw.h b/src/renderer/Draw.h
new file mode 100644
index 00000000..b96fa813
--- /dev/null
+++ b/src/renderer/Draw.h
@@ -0,0 +1,70 @@
+#pragma once
+
+enum eAspectRatio
+{
+ // Make sure these work the same as FrontEndMenuManager.m_PrefsUseWideScreen
+ // without widescreen support
+ AR_AUTO,
+ AR_4_3,
+ AR_5_4,
+ AR_16_10,
+ AR_16_9,
+ AR_21_9,
+
+ AR_MAX,
+};
+
+class CDraw
+{
+private:
+ static float ms_fNearClipZ;
+ static float ms_fFarClipZ;
+ static float ms_fFOV;
+ // we use this variable to scale a lot of 2D elements
+ // so better cache it
+ static float ms_fAspectRatio;
+#ifdef ASPECT_RATIO_SCALE
+ // similar thing for 3D rendering
+ static float ms_fScaledFOV;
+#endif
+public:
+ static float ms_fLODDistance; // set but unused?
+
+ static uint8 FadeValue;
+ static uint8 FadeRed;
+ static uint8 FadeGreen;
+ static uint8 FadeBlue;
+
+#ifdef PROPER_SCALING
+ static bool ms_bProperScaling;
+#endif
+#ifdef FIX_RADAR
+ static bool ms_bFixRadar;
+#endif
+#ifdef FIX_SPRITES
+ static bool ms_bFixSprites;
+#endif
+
+ static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; }
+ static float GetNearClipZ(void) { return ms_fNearClipZ; }
+ static void SetFarClipZ(float farclip) { ms_fFarClipZ = farclip; }
+ static float GetFarClipZ(void) { return ms_fFarClipZ; }
+
+ static void SetFOV(float fov);
+ 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 CalculateAspectRatio(void);
+#ifdef ASPECT_RATIO_SCALE
+ static float ConvertFOV(float fov);
+#endif
+ static float GetAspectRatio(void) { return ms_fAspectRatio; }
+ static void SetAspectRatio(float ratio) { ms_fAspectRatio = ratio; }
+#ifdef PROPER_SCALING
+ static float ScaleY(float y);
+#endif
+};