From bdcea86ac6ae386bc8c5cf9080b17283bf2fec32 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Thu, 13 Oct 2016 23:44:02 +0300 Subject: [PATCH] move types to individual header * include cglm-common to all headers --- include/cglm-affine-mat-avx.h | 2 ++ include/cglm-affine-mat-sse2.h | 2 +- include/cglm-affine-mat.h | 3 ++- include/cglm-affine.h | 3 +-- include/cglm-cam.h | 15 ++++----------- include/cglm-common.h | 13 ++++++++----- include/cglm-euler.h | 2 +- include/cglm-mat-simd-avx.h | 2 ++ include/cglm-mat-simd-sse2.h | 1 + include/cglm-mat.h | 3 ++- include/cglm-mat3-simd-sse2.h | 1 + include/cglm-mat3.h | 2 +- include/cglm-opengl.h | 2 +- include/cglm-quat-simd.h | 1 + include/cglm-quat.h | 5 ++--- include/cglm-types.h | 25 +++++++++++++++++++++++++ include/cglm-util.h | 3 ++- include/cglm-vec.h | 3 +-- include/cglm.h | 15 +++------------ 19 files changed, 61 insertions(+), 42 deletions(-) create mode 100644 include/cglm-types.h diff --git a/include/cglm-affine-mat-avx.h b/include/cglm-affine-mat-avx.h index fc5f07c..0d9559a 100644 --- a/include/cglm-affine-mat-avx.h +++ b/include/cglm-affine-mat-avx.h @@ -9,7 +9,9 @@ #define cglm_affine_mat_avx_h #ifdef __AVX__ +#include "cglm-common.h" #include "cglm-intrin.h" + #include CGLM_INLINE diff --git a/include/cglm-affine-mat-sse2.h b/include/cglm-affine-mat-sse2.h index 4d3efc0..d709d03 100644 --- a/include/cglm-affine-mat-sse2.h +++ b/include/cglm-affine-mat-sse2.h @@ -9,8 +9,8 @@ #define cglm_affine_mat_sse2_h #if defined( __SSE__ ) || defined( __SSE2__ ) +#include "cglm-common.h" #include "cglm-intrin.h" -#include "cglm.h" CGLM_INLINE void diff --git a/include/cglm-affine-mat.h b/include/cglm-affine-mat.h index 1ec77de..2170300 100644 --- a/include/cglm-affine-mat.h +++ b/include/cglm-affine-mat.h @@ -8,11 +8,12 @@ #ifndef cglm_affine_mat_h #define cglm_affine_mat_h -#include "cglm.h" +#include "cglm-common.h" #include "cglm-mat.h" #include "cglm-mat3.h" #include "cglm-affine-mat-sse2.h" #include "cglm-affine-mat-avx.h" + #include CGLM_INLINE diff --git a/include/cglm-affine.h b/include/cglm-affine.h index 66ffbd9..9618028 100644 --- a/include/cglm-affine.h +++ b/include/cglm-affine.h @@ -8,10 +8,9 @@ #ifndef cglm_affine_h #define cglm_affine_h -#include "cglm.h" +#include "cglm-common.h" #include "cglm-vec.h" #include "cglm-affine-mat.h" -#include CGLM_INLINE void diff --git a/include/cglm-cam.h b/include/cglm-cam.h index 7872adf..dd92cad 100644 --- a/include/cglm-cam.h +++ b/include/cglm-cam.h @@ -5,18 +5,11 @@ * Full license can be found in the LICENSE file */ -/* - TODO: GLdouble vs float ? - */ +#ifndef cglm_vcam_h +#define cglm_vcam_h -#ifndef glm_vcam_h -#define glm_vcam_h - -#define _USE_MATH_DEFINES - -#include "cglm.h" +#include "cglm-common.h" #include "cglm-platform.h" -#include CGLM_INLINE void @@ -186,4 +179,4 @@ glm_lookat(vec3 eye, dest[3][3] = 1; } -#endif /* glm_vcam_h */ +#endif /* cglm_vcam_h */ diff --git a/include/cglm-common.h b/include/cglm-common.h index 8b5e909..8c2ecf6 100644 --- a/include/cglm-common.h +++ b/include/cglm-common.h @@ -5,17 +5,18 @@ * Full license can be found in the LICENSE file */ -#ifndef glm_common_h -#define glm_common_h +#ifndef cglm_common_h +#define cglm_common_h + +#define _USE_MATH_DEFINES /* for windows */ #include +#include #if defined(_WIN32) # define CGLM_INLINE __forceinline -# define CGLM_ALIGN(X) /* __declspec(align(X)) */ #else # define CGLM_INLINE static inline __attribute((always_inline)) -# define CGLM_ALIGN(X) __attribute((aligned(X))) #endif #define glm__memcpy(type, dest, src, size) \ @@ -46,4 +47,6 @@ #define glm__memzero(type, dest, size) glm__memset(type, dest, size, 0) -#endif /* glm_common_h */ +#include "cglm-types.h" + +#endif /* cglm_common_h */ diff --git a/include/cglm-euler.h b/include/cglm-euler.h index 4a77773..795630b 100644 --- a/include/cglm-euler.h +++ b/include/cglm-euler.h @@ -8,7 +8,7 @@ #ifndef cglm_euler_h #define cglm_euler_h -#include "cglm.h" +#include "cglm-common.h" /*! * @brief build rotation matrix from euler angles/yaw-pitch-roll (xyz) diff --git a/include/cglm-mat-simd-avx.h b/include/cglm-mat-simd-avx.h index ddaddf7..fca883c 100644 --- a/include/cglm-mat-simd-avx.h +++ b/include/cglm-mat-simd-avx.h @@ -9,7 +9,9 @@ #define cglm_mat_simd_avx_h #ifdef __AVX__ +#include "cglm-common.h" #include "cglm-intrin.h" + #include CGLM_INLINE diff --git a/include/cglm-mat-simd-sse2.h b/include/cglm-mat-simd-sse2.h index 4c002db..db42d3a 100644 --- a/include/cglm-mat-simd-sse2.h +++ b/include/cglm-mat-simd-sse2.h @@ -9,6 +9,7 @@ #define cglm_mat_sse_h #if defined( __SSE__ ) || defined( __SSE2__ ) +#include "cglm-common.h" #include "cglm-intrin.h" CGLM_INLINE diff --git a/include/cglm-mat.h b/include/cglm-mat.h index eeab990..1f32c06 100644 --- a/include/cglm-mat.h +++ b/include/cglm-mat.h @@ -13,9 +13,10 @@ #ifndef cglm_mat_h #define cglm_mat_h -#include "cglm.h" +#include "cglm-common.h" #include "cglm-mat-simd-sse2.h" #include "cglm-mat-simd-avx.h" + #include #define GLM_MAT4_IDENTITY_INIT {{1.0f, 0.0f, 0.0f, 0.0f}, \ diff --git a/include/cglm-mat3-simd-sse2.h b/include/cglm-mat3-simd-sse2.h index 4c6e7f4..e45c2ea 100644 --- a/include/cglm-mat3-simd-sse2.h +++ b/include/cglm-mat3-simd-sse2.h @@ -9,6 +9,7 @@ #define cglm_mat3_sse_h #if defined( __SSE__ ) || defined( __SSE2__ ) +#include "cglm-common.h" #include "cglm-intrin.h" CGLM_INLINE diff --git a/include/cglm-mat3.h b/include/cglm-mat3.h index 6d74b24..6ab98f9 100644 --- a/include/cglm-mat3.h +++ b/include/cglm-mat3.h @@ -8,7 +8,7 @@ #ifndef cglm_mat3_h #define cglm_mat3_h -#include "cglm.h" +#include "cglm-common.h" #include "cglm-mat3-simd-sse2.h" #define GLM_MAT3_IDENTITY_INIT {{1.0f, 0.0f, 0.0f}, \ diff --git a/include/cglm-opengl.h b/include/cglm-opengl.h index 24f369e..bdc4269 100644 --- a/include/cglm-opengl.h +++ b/include/cglm-opengl.h @@ -8,8 +8,8 @@ #ifndef cglm_mat_opengl_h #define cglm_mat_opengl_h +#include "cglm-common.h" #include "cglm-platform.h" -#include "cglm.h" CGLM_INLINE void diff --git a/include/cglm-quat-simd.h b/include/cglm-quat-simd.h index 23fd0a3..c5ddd50 100644 --- a/include/cglm-quat-simd.h +++ b/include/cglm-quat-simd.h @@ -8,6 +8,7 @@ #ifndef cglm_quat_simd_h #define cglm_quat_simd_h +#include "cglm-common.h" #include "cglm-intrin.h" CGLM_INLINE diff --git a/include/cglm-quat.h b/include/cglm-quat.h index 3b7b8f3..37f1a28 100644 --- a/include/cglm-quat.h +++ b/include/cglm-quat.h @@ -8,11 +8,10 @@ #ifndef cglm_quat_h #define cglm_quat_h -#include "cglm.h" -#include "cglm-vec.h" +#include "cglm-common.h" #include "cglm-intrin.h" #include "cglm-quat-simd.h" -#include +#include "cglm-vec.h" CGLM_INLINE void diff --git a/include/cglm-types.h b/include/cglm-types.h new file mode 100644 index 0000000..0171f8c --- /dev/null +++ b/include/cglm-types.h @@ -0,0 +1,25 @@ +/* + * Copyright (c), Recep Aslantas. + * + * MIT License (MIT), http://opensource.org/licenses/MIT + * Full license can be found in the LICENSE file + */ + +#ifndef cglm_types_h +#define cglm_types_h + +#if defined(_WIN32) +# define CGLM_ALIGN(X) /* __declspec(align(X)) */ +#else +# define CGLM_ALIGN(X) __attribute((aligned(X))) +#endif + +typedef float vec3[3]; +typedef CGLM_ALIGN(16) float vec4[4]; + +typedef vec3 mat3[3]; +typedef vec4 mat4[4]; + +typedef vec4 versor; + +#endif /* cglm_types_h */ diff --git a/include/cglm-util.h b/include/cglm-util.h index 999946b..fdd8c7d 100644 --- a/include/cglm-util.h +++ b/include/cglm-util.h @@ -8,7 +8,8 @@ #ifndef cglm_util_h #define cglm_util_h -#include "cglm.h" +#include "cglm-common.h" + #include #include diff --git a/include/cglm-vec.h b/include/cglm-vec.h index 31c4163..490e252 100644 --- a/include/cglm-vec.h +++ b/include/cglm-vec.h @@ -13,9 +13,8 @@ #ifndef cglm_vec_h #define cglm_vec_h -#include "cglm.h" +#include "cglm-common.h" #include "cglm-intrin.h" -#include /*! * @brief copy all members of [a] to [dest] diff --git a/include/cglm.h b/include/cglm.h index 8e1fbdd..9144165 100644 --- a/include/cglm.h +++ b/include/cglm.h @@ -5,19 +5,10 @@ * Full license can be found in the LICENSE file */ -#ifndef glm_h -#define glm_h +#ifndef cglm_h +#define cglm_h #include "cglm-common.h" - -typedef float vec3[3]; -typedef CGLM_ALIGN(16) float vec4[4]; - -typedef vec3 mat3[3]; -typedef vec4 mat4[4]; - -typedef vec4 versor; - #include "cglm-vec.h" #include "cglm-mat.h" #include "cglm-mat3.h" @@ -27,4 +18,4 @@ typedef vec4 versor; #include "cglm-quat.h" #include "cglm-euler.h" -#endif /* glm_h */ +#endif /* cglm_h */