New Options:
CGLM_SSE4_DOT
: Enable SSE4 dot productCGLM_SSE3_DOT
: Enable SSE3 dot product
New Functions:
glm_persp_move_far()
extend frustum's far distancevoid glm_vec4_cubic(float s, vec4 dest)
fills vec4 as [s^3, s^2, s, 1.0]float glm_mat4_rmc(vec4 r, mat4 m, vec4 c)
multiplies row vector, matrix and column vector and returns scalar. This is good helper to get SMC result easily for curves.float glm_smc(float s, mat4 m, vec4 c)
calculates SMC multiplication by usingglm_mat4_rmc()
andglm_vec4_cubic()
float glm_bezier()
cubic bezier equationfloat glm_hermite()
cubic hermite equationfloat glm_decasteljau()
solve cubic bezier equation using decasteljau
New glmm (SIMD) functions:
glmm_vhadds(v)
horizontal add, returns registerglmm_hadd(v)
horizontal add, returns scalarglmm_vdots(a, b)
dot product, single lane contain dot product to convert result to scalarglmm_vdot(a, b)
dot product, all lanes contain dot product to use result with other vector operations
Improvements:
glmm_
functions are moved to platform specific headers.- Now some glmm_ functions supports NEON
- CGLM_SIMD_x86, CGLM_SIMD_ARM and CGLM_SIMD are defined if it is supported.