diff options
author | reduz <reduzio@gmail.com> | 2022-02-03 22:16:58 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-02-06 13:34:41 +0100 |
commit | 8c7268664da7ef98f802ec90fa2ba17b4d695847 (patch) | |
tree | b8f3bb21e79375402ceb68ed981693eb5189592d /core/math/vector2i.h | |
parent | fd0d2dcabf5b7418691b693cd01baecbb69fdeb9 (diff) | |
download | redot-engine-8c7268664da7ef98f802ec90fa2ba17b4d695847.tar.gz |
Fix integer vector mul/div operators and bindings.
* Vector2i and Vector3i mul/div by a float results in Vector2 and Vector3 respectively.
* Create specializations to allow proper bindings.
This fixes #44408 and supersedes #44441 and keeps the same rule of int <op> float returnig float, like with scalars.
Diffstat (limited to 'core/math/vector2i.h')
-rw-r--r-- | core/math/vector2i.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/core/math/vector2i.h b/core/math/vector2i.h index 446e05f5dd..707c8c9490 100644 --- a/core/math/vector2i.h +++ b/core/math/vector2i.h @@ -119,19 +119,21 @@ struct _NO_DISCARD_ Vector2i { } }; -_FORCE_INLINE_ Vector2i operator*(const int32_t &p_scalar, const Vector2i &p_vector) { +// Multiplication operators required to workaround issues with LLVM using implicit conversion. + +_FORCE_INLINE_ Vector2i operator*(const int32_t p_scalar, const Vector2i &p_vector) { return p_vector * p_scalar; } -_FORCE_INLINE_ Vector2i operator*(const int64_t &p_scalar, const Vector2i &p_vector) { +_FORCE_INLINE_ Vector2i operator*(const int64_t p_scalar, const Vector2i &p_vector) { return p_vector * p_scalar; } -_FORCE_INLINE_ Vector2i operator*(const float &p_scalar, const Vector2i &p_vector) { +_FORCE_INLINE_ Vector2i operator*(const float p_scalar, const Vector2i &p_vector) { return p_vector * p_scalar; } -_FORCE_INLINE_ Vector2i operator*(const double &p_scalar, const Vector2i &p_vector) { +_FORCE_INLINE_ Vector2i operator*(const double p_scalar, const Vector2i &p_vector) { return p_vector * p_scalar; } |