From 9bf045e026eeb67b3c38f8e3805918e79d5dd5b5 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sun, 30 Oct 2016 16:55:12 +0200 Subject: [PATCH] vec broadcast helper --- include/cglm-vec-ext.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/cglm-vec-ext.h b/include/cglm-vec-ext.h index 5692e55..a5d54cd 100644 --- a/include/cglm-vec-ext.h +++ b/include/cglm-vec-ext.h @@ -50,4 +50,20 @@ glm_vec4_mulv(vec4 a, vec4 b, vec4 d) { #endif } +CGLM_INLINE +void +glm_vec_broadcast(float val, vec3 d) { + d[0] = d[1] = d[2] = val; +} + +CGLM_INLINE +void +glm_vec4_broadcast(float val, vec3 d) { +#if defined( __SSE__ ) || defined( __SSE2__ ) + _mm_store_ps(d, _mm_set1_ps(val)); +#else + d[0] = d[1] = d[2] = d[3] = val; +#endif +} + #endif /* cglm_vec_ext_h */