diff --git a/src/graphics/engine/text.cpp b/src/graphics/engine/text.cpp index ee91bed0..f255ef9a 100644 --- a/src/graphics/engine/text.cpp +++ b/src/graphics/engine/text.cpp @@ -1115,7 +1115,7 @@ void CText::DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::I CachedFont* CText::GetOrOpenFont(FontType font, float size) { Math::IntPoint windowSize = m_engine->GetWindowSize(); - int pointSize = static_cast(size * (windowSize.Length() / REFERENCE_SIZE.Length())); + int pointSize = static_cast(size * (glm::length(glm::vec2(windowSize)) / glm::length(glm::vec2(REFERENCE_SIZE)))); if (m_lastCachedFont != nullptr && m_lastFontType == font && diff --git a/src/math/intpoint.h b/src/math/intpoint.h index 370cf19a..61e459b4 100644 --- a/src/math/intpoint.h +++ b/src/math/intpoint.h @@ -28,6 +28,8 @@ #include #include +#include + // Math module namespace namespace Math { @@ -38,124 +40,9 @@ namespace Math * * Analog of WinAPI's POINT struct. */ -struct IntPoint -{ - //! X coord - int x; - //! Y coord - int y; - IntPoint(int aX = 0, int aY = 0) : x(aX), y(aY) {} - - inline bool operator==(const IntPoint& p) const - { - return x == p.x && y == p.y; - } - - inline bool operator!=(const IntPoint& p) const - { - return !operator==(p); - } - - inline float Length() const - { - return sqrtf(x*x + y*y); - } - - //! Sets the zero point: (0,0) - inline void LoadZero() - { - x = y = 0.0f; - } - - //! Returns the struct cast to \c int* array; use with care! - inline int* Array() - { - return reinterpret_cast(this); - } - - //! Returns the struct cast to const int* array; use with care! - inline const int* Array() const - { - return reinterpret_cast(this); - } - - //! Returns the inverted point - inline IntPoint operator-() const - { - return IntPoint(-x, -y); - } - - //! Adds the given point - inline const IntPoint& operator+=(const IntPoint &right) - { - x += right.x; - y += right.y; - return *this; - } - - //! Adds two points - inline friend const IntPoint operator+(const IntPoint &left, const IntPoint &right) - { - return IntPoint(left.x + right.x, left.y + right.y); - } - - //! Subtracts the given point - inline const IntPoint& operator-=(const IntPoint &right) - { - x -= right.x; - y -= right.y; - return *this; - } - - //! Subtracts two points - inline friend const IntPoint operator-(const IntPoint &left, const IntPoint &right) - { - return IntPoint(left.x - right.x, left.y - right.y); - } - - //! Multiplies by given scalar - inline const IntPoint& operator*=(const float &right) - { - x *= right; - y *= right; - return *this; - } - - //! Multiplies point by scalar - inline friend const IntPoint operator*(const float &left, const IntPoint &right) - { - return IntPoint(left * right.x, left * right.y); - } - - //! Multiplies point by scalar - inline friend const IntPoint operator*(const IntPoint &left, const int &right) - { - return IntPoint(left.x * right, left.y * right); - } - - //! Divides by given scalar - inline const IntPoint& operator/=(const float &right) - { - x /= right; - y /= right; - return *this; - } - - //! Divides point by scalar - inline friend const IntPoint operator/(const IntPoint &left, const int &right) - { - return IntPoint(left.x / right, left.y / right); - } - - //! Returns a string "[x, y]" - inline std::string ToString() const - { - std::stringstream s; - s << "[" << x << ", " << y << "]"; - return s.str(); - } -}; +// Temporary type alias +using IntPoint = glm::ivec2; } // namespace Math