From 1d527dc2f00c15ef323939f25dabb82235ad4584 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sat, 14 Jul 2018 12:03:42 +0300 Subject: [PATCH 1/2] unalignned version for vec4_copy --- include/cglm/call/vec4.h | 4 ++++ include/cglm/vec4.h | 15 +++++++++++++++ src/vec4.c | 6 ++++++ 3 files changed, 25 insertions(+) diff --git a/include/cglm/call/vec4.h b/include/cglm/call/vec4.h index adcfc94..729a3f2 100644 --- a/include/cglm/call/vec4.h +++ b/include/cglm/call/vec4.h @@ -37,6 +37,10 @@ CGLM_EXPORT void glmc_vec4_copy(vec4 v, vec4 dest); +CGLM_EXPORT +void +glmc_vec4_ucopy(vec4 v, vec4 dest); + CGLM_EXPORT float glmc_vec4_dot(vec4 a, vec4 b); diff --git a/include/cglm/vec4.h b/include/cglm/vec4.h index fa9f82c..d8d6b0a 100644 --- a/include/cglm/vec4.h +++ b/include/cglm/vec4.h @@ -120,6 +120,21 @@ glm_vec4_copy(vec4 v, vec4 dest) { #endif } +/*! + * @brief copy all members of [a] to [dest] + * + * @param[in] v source + * @param[out] dest destination + */ +CGLM_INLINE +void +glm_vec4_ucopy(vec4 v, vec4 dest) { + dest[0] = v[0]; + dest[1] = v[1]; + dest[2] = v[2]; + dest[3] = v[3]; +} + /*! * @brief make vector zero * diff --git a/src/vec4.c b/src/vec4.c index fb22796..29ccc4d 100644 --- a/src/vec4.c +++ b/src/vec4.c @@ -38,6 +38,12 @@ glmc_vec4_copy(vec4 v, vec4 dest) { glm_vec4_copy(v, dest); } +CGLM_EXPORT +void +glmc_vec4_ucopy(vec4 v, vec4 dest) { + glm_vec4_ucopy(v, dest); +} + CGLM_EXPORT float glmc_vec4_dot(vec4 a, vec4 b) { From 373849992761ff09090a93683e40bdfdbee03059 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sat, 14 Jul 2018 12:12:15 +0300 Subject: [PATCH 2/2] update doc for vec4_ucopy --- docs/source/vec4.rst | 11 +++++++++++ include/cglm/vec4.h | 3 +++ 2 files changed, 14 insertions(+) diff --git a/docs/source/vec4.rst b/docs/source/vec4.rst index a1b7250..947a2da 100644 --- a/docs/source/vec4.rst +++ b/docs/source/vec4.rst @@ -24,6 +24,7 @@ Functions: 1. :c:func:`glm_vec4` #. :c:func:`glm_vec4_copy3` #. :c:func:`glm_vec4_copy` +#. :c:func:`glm_vec4_ucopy` #. :c:func:`glm_vec4_zero` #. :c:func:`glm_vec4_one` #. :c:func:`glm_vec4_dot` @@ -89,6 +90,16 @@ Functions documentation | *[in]* **v** source | *[in]* **dest** destination +.. c:function:: void glm_vec4_ucopy(vec4 v, vec4 dest) + + copy all members of [a] to [dest] + + | alignment is not required + + Parameters: + | *[in]* **v** source + | *[in]* **dest** destination + .. c:function:: void glm_vec4_zero(vec4 v) makes all members zero diff --git a/include/cglm/vec4.h b/include/cglm/vec4.h index d8d6b0a..d0221d4 100644 --- a/include/cglm/vec4.h +++ b/include/cglm/vec4.h @@ -25,6 +25,7 @@ CGLM_INLINE void glm_vec4(vec3 v3, float last, vec4 dest); CGLM_INLINE void glm_vec4_copy3(vec4 a, vec3 dest); CGLM_INLINE void glm_vec4_copy(vec4 v, vec4 dest); + CGLM_INLINE void glm_vec4_ucopy(vec4 v, vec4 dest); CGLM_INLINE float glm_vec4_dot(vec4 a, vec4 b); CGLM_INLINE float glm_vec4_norm2(vec4 v); CGLM_INLINE float glm_vec4_norm(vec4 vec); @@ -123,6 +124,8 @@ glm_vec4_copy(vec4 v, vec4 dest) { /*! * @brief copy all members of [a] to [dest] * + * alignment is not required + * * @param[in] v source * @param[out] dest destination */