summaryrefslogtreecommitdiffstats
path: root/core/math/vector2i.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2022-02-03 22:16:58 +0100
committerRémi Verschelde <rverschelde@gmail.com>2022-02-06 13:34:41 +0100
commit8c7268664da7ef98f802ec90fa2ba17b4d695847 (patch)
treeb8f3bb21e79375402ceb68ed981693eb5189592d /core/math/vector2i.h
parentfd0d2dcabf5b7418691b693cd01baecbb69fdeb9 (diff)
downloadredot-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.h10
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;
}