diff options
-rwxr-xr-x | build.sh | 29 | ||||
-rw-r--r-- | src/disgrace.c | 5 | ||||
-rw-r--r-- | src/ungrateful.h | 232 |
3 files changed, 147 insertions, 119 deletions
@@ -4,7 +4,7 @@ cc="gcc" ld="gcc" ar="ar" -cflags="-std=c99 -fPIC -Wall -Wextra -g -Wno-error -pedantic -lm -ffast-math" +cflags="-std=c99 -fPIC -Wall -Wno-unused-function -Wextra -g -Wno-error -pedantic -lm -ffast-math" proc=$(nproc) @@ -38,11 +38,23 @@ if [[ $? -ne 0 ]]; then exit fi +echo "[BUILD] cynic.c" + +$cc $cflags -Isrc/ \ + -c -o obj/disgrace.o \ + -g src/disgrace.c + +if [[ $? -ne 0 ]]; then + exit +fi + $ar rcs lib/libungrateful.a obj/ungrateful.o $ar rcs lib/libcynic.a obj/cynic.o +$ar rcs lib/libdisgrace.a obj/disgrace.o cp src/ungrateful.h include/ungrateful.h cp src/cynic.h include/cynic.h +cp src/disgrace.h include/disgrace.h # ------------ Tests from here # @@ -82,6 +94,21 @@ for test in tests/cyn/*.c; do fi done +echo "---- Disgrace tests ----" + +for test in tests/d/*.c; do + fname=$(basename -- "$test") + fname="${fname%.*}" + + echo "[BUILD] $test" + + $cc $cflags -o bin/$fname $test -Llib/ -Iinclude/ -lungrateful -lcynic -ldisgrace & + + if [[ $(jobs -r -p | wc -l) -ge $proc ]]; then + wait + fi +done + wait echo "---- Compiled ----" diff --git a/src/disgrace.c b/src/disgrace.c index cf81b75..b5e5666 100644 --- a/src/disgrace.c +++ b/src/disgrace.c @@ -41,8 +41,9 @@ b32 d_init(void) { return true; } -#error "Linux todo" -#include "d_udp_linux.c" +// #error "Linux todo" +// #include "d_udp_linux.c" + #else #error "unknown platform" diff --git a/src/ungrateful.h b/src/ungrateful.h index ba78eca..f9b2234 100644 --- a/src/ungrateful.h +++ b/src/ungrateful.h @@ -269,129 +269,129 @@ extern wchar* un_wstring_from_cstring(u8 *utf8_string, Allocator alloc); #define un_m_lerpr un_m_lerpf #endif -extern UN_INLINE float un_m_lerpf(float a, float b, float t); -extern UN_INLINE double un_m_lerpd(double a, double b, double t); +extern float un_m_lerpf(float a, float b, float t); +extern double un_m_lerpd(double a, double b, double t); /* 2d float */ -extern UN_INLINE float2 un_m_add2f(float2 a, float2 b); -extern UN_INLINE float2 un_m_sub2f(float2 a, float2 b); -extern UN_INLINE float2 un_m_add_scalar2f(float2 a, float scalar); -extern UN_INLINE float2 un_m_sub_scalar2f(float2 a, float scalar); -extern UN_INLINE float2 un_m_mul_scalar2f(float2 a, float scalar); -extern UN_INLINE float2 un_m_div_scalar2f(float2 a, float scalar); +extern float2 un_m_add2f(float2 a, float2 b); +extern float2 un_m_sub2f(float2 a, float2 b); +extern float2 un_m_add_scalar2f(float2 a, float scalar); +extern float2 un_m_sub_scalar2f(float2 a, float scalar); +extern float2 un_m_mul_scalar2f(float2 a, float scalar); +extern float2 un_m_div_scalar2f(float2 a, float scalar); -extern UN_INLINE float un_m_dot2f(float2 a, float2 b); -extern UN_INLINE float2 un_m_hadamard2f(float2 a, float2 b); -extern UN_INLINE float2 un_m_project2f(float2 a, float2 onto); -extern UN_INLINE float2 un_m_reflect2f(float2 a, float2 normal); -extern UN_INLINE float2 un_m_cross2f(float2 a); +extern float un_m_dot2f(float2 a, float2 b); +extern float2 un_m_hadamard2f(float2 a, float2 b); +extern float2 un_m_project2f(float2 a, float2 onto); +extern float2 un_m_reflect2f(float2 a, float2 normal); +extern float2 un_m_cross2f(float2 a); -extern UN_INLINE float2 un_m_normalize2f(float2 a); -extern UN_INLINE float un_m_magnitude2f(float2 a); -extern UN_INLINE float un_m_magnitude_sqr2f(float2 a); -extern UN_INLINE float un_m_distance2f(float2 a, float2 b); -extern UN_INLINE float un_m_distance_sqr2f(float2 a, float2 b); +extern float2 un_m_normalize2f(float2 a); +extern float un_m_magnitude2f(float2 a); +extern float un_m_magnitude_sqr2f(float2 a); +extern float un_m_distance2f(float2 a, float2 b); +extern float un_m_distance_sqr2f(float2 a, float2 b); /* 3d float */ -extern UN_INLINE float3 un_m_add3f(float3 a, float3 b); -extern UN_INLINE float3 un_m_sub3f(float3 a, float3 b); -extern UN_INLINE float3 un_m_add_scalar3f(float3 a, float scalar); -extern UN_INLINE float3 un_m_sub_scalar3f(float3 a, float scalar); -extern UN_INLINE float3 un_m_mul_scalar3f(float3 a, float scalar); -extern UN_INLINE float3 un_m_div_scalar3f(float3 a, float scalar); +extern float3 un_m_add3f(float3 a, float3 b); +extern float3 un_m_sub3f(float3 a, float3 b); +extern float3 un_m_add_scalar3f(float3 a, float scalar); +extern float3 un_m_sub_scalar3f(float3 a, float scalar); +extern float3 un_m_mul_scalar3f(float3 a, float scalar); +extern float3 un_m_div_scalar3f(float3 a, float scalar); -extern UN_INLINE float un_m_dot3f(float3 a, float3 b); -extern UN_INLINE float3 un_m_hadamard3f(float3 a, float3 b); -extern UN_INLINE float3 un_m_project3f(float3 a, float3 onto); -extern UN_INLINE float3 un_m_reflect3f(float3 a, float3 normal); -extern UN_INLINE float3 un_m_cross3f(float3 a, float3 b); +extern float un_m_dot3f(float3 a, float3 b); +extern float3 un_m_hadamard3f(float3 a, float3 b); +extern float3 un_m_project3f(float3 a, float3 onto); +extern float3 un_m_reflect3f(float3 a, float3 normal); +extern float3 un_m_cross3f(float3 a, float3 b); -extern UN_INLINE float3 un_m_normalize3f(float3 a); -extern UN_INLINE float un_m_magnitude3f(float3 a); -extern UN_INLINE float un_m_magnitude_sqr3f(float3 a); -extern UN_INLINE float un_m_distance3f(float3 a, float3 b); -extern UN_INLINE float un_m_distance_sqr3f(float3 a, float3 b); +extern float3 un_m_normalize3f(float3 a); +extern float un_m_magnitude3f(float3 a); +extern float un_m_magnitude_sqr3f(float3 a); +extern float un_m_distance3f(float3 a, float3 b); +extern float un_m_distance_sqr3f(float3 a, float3 b); /* 4d float */ -extern UN_INLINE float4 un_m_add4f(float4 a, float4 b); -extern UN_INLINE float4 un_m_sub4f(float4 a, float4 b); -extern UN_INLINE float4 un_m_add_scalar4f(float4 a, float scalar); -extern UN_INLINE float4 un_m_sub_scalar4f(float4 a, float scalar); -extern UN_INLINE float4 un_m_mul_scalar4f(float4 a, float scalar); -extern UN_INLINE float4 un_m_div_scalar4f(float4 a, float scalar); +extern float4 un_m_add4f(float4 a, float4 b); +extern float4 un_m_sub4f(float4 a, float4 b); +extern float4 un_m_add_scalar4f(float4 a, float scalar); +extern float4 un_m_sub_scalar4f(float4 a, float scalar); +extern float4 un_m_mul_scalar4f(float4 a, float scalar); +extern float4 un_m_div_scalar4f(float4 a, float scalar); -extern UN_INLINE float un_m_dot4f(float4 a, float4 b); -extern UN_INLINE float4 un_m_hadamard4f(float4 a, float4 b); -extern UN_INLINE float4 un_m_project4f(float4 a, float4 onto); -extern UN_INLINE float4 un_m_reflect4f(float4 a, float4 normal); +extern float un_m_dot4f(float4 a, float4 b); +extern float4 un_m_hadamard4f(float4 a, float4 b); +extern float4 un_m_project4f(float4 a, float4 onto); +extern float4 un_m_reflect4f(float4 a, float4 normal); -extern UN_INLINE float4 un_m_normalize4f(float4 a); -extern UN_INLINE float un_m_magnitude4f(float4 a); -extern UN_INLINE float un_m_magnitude_sqr4f(float4 a); -extern UN_INLINE float un_m_distance4f(float4 a, float4 b); -extern UN_INLINE float un_m_distance_sqr4f(float4 a, float4 b); +extern float4 un_m_normalize4f(float4 a); +extern float un_m_magnitude4f(float4 a); +extern float un_m_magnitude_sqr4f(float4 a); +extern float un_m_distance4f(float4 a, float4 b); +extern float un_m_distance_sqr4f(float4 a, float4 b); /* 2d double */ -extern UN_INLINE double2 un_m_add2d(double2 a, double2 b); -extern UN_INLINE double2 un_m_sub2d(double2 a, double2 b); +extern double2 un_m_add2d(double2 a, double2 b); +extern double2 un_m_sub2d(double2 a, double2 b); -extern UN_INLINE double2 un_m_add_scalar2d(double2 a, double scalar); -extern UN_INLINE double2 un_m_sub_scalar2d(double2 a, double scalar); -extern UN_INLINE double2 un_m_mul_scalar2d(double2 a, double scalar); -extern UN_INLINE double2 un_m_div_scalar2d(double2 a, double scalar); +extern double2 un_m_add_scalar2d(double2 a, double scalar); +extern double2 un_m_sub_scalar2d(double2 a, double scalar); +extern double2 un_m_mul_scalar2d(double2 a, double scalar); +extern double2 un_m_div_scalar2d(double2 a, double scalar); -extern UN_INLINE double un_m_dot2d(double2 a, double2 b); -extern UN_INLINE double2 un_m_hadamard2d(double2 a, double2 b); -extern UN_INLINE double2 un_m_project2d(double2 a, double2 onto); -extern UN_INLINE double2 un_m_reflect2d(double2 a, double2 normal); -extern UN_INLINE double2 un_m_cross2d(double2 a); +extern double un_m_dot2d(double2 a, double2 b); +extern double2 un_m_hadamard2d(double2 a, double2 b); +extern double2 un_m_project2d(double2 a, double2 onto); +extern double2 un_m_reflect2d(double2 a, double2 normal); +extern double2 un_m_cross2d(double2 a); -extern UN_INLINE double2 un_m_normalize2d(double2 a); -extern UN_INLINE double un_m_magnitude2d(double2 a); -extern UN_INLINE double un_m_magnitude_sqr2d(double2 a); -extern UN_INLINE double un_m_distance2d(double2 a, double2 b); -extern UN_INLINE double un_m_distance_sqr2d(double2 a, double2 b); +extern double2 un_m_normalize2d(double2 a); +extern double un_m_magnitude2d(double2 a); +extern double un_m_magnitude_sqr2d(double2 a); +extern double un_m_distance2d(double2 a, double2 b); +extern double un_m_distance_sqr2d(double2 a, double2 b); /* 3d double */ -extern UN_INLINE double3 un_m_add3d(double3 a, double3 b); -extern UN_INLINE double3 un_m_sub3d(double3 a, double3 b); +extern double3 un_m_add3d(double3 a, double3 b); +extern double3 un_m_sub3d(double3 a, double3 b); -extern UN_INLINE double3 un_m_add_scalar3d(double3 a, double scalar); -extern UN_INLINE double3 un_m_sub_scalar3d(double3 a, double scalar); -extern UN_INLINE double3 un_m_mul_scalar3d(double3 a, double scalar); -extern UN_INLINE double3 un_m_div_scalar3d(double3 a, double scalar); +extern double3 un_m_add_scalar3d(double3 a, double scalar); +extern double3 un_m_sub_scalar3d(double3 a, double scalar); +extern double3 un_m_mul_scalar3d(double3 a, double scalar); +extern double3 un_m_div_scalar3d(double3 a, double scalar); -extern UN_INLINE double un_m_dot3d(double3 a, double3 b); -extern UN_INLINE double3 un_m_hadamard3d(double3 a, double3 b); -extern UN_INLINE double3 un_m_project3d(double3 a, double3 onto); -extern UN_INLINE double3 un_m_reflect3d(double3 a, double3 normal); -extern UN_INLINE double3 un_m_cross3d(double3 a, double3 b); +extern double un_m_dot3d(double3 a, double3 b); +extern double3 un_m_hadamard3d(double3 a, double3 b); +extern double3 un_m_project3d(double3 a, double3 onto); +extern double3 un_m_reflect3d(double3 a, double3 normal); +extern double3 un_m_cross3d(double3 a, double3 b); -extern UN_INLINE double3 un_m_normalize3d(double3 a); -extern UN_INLINE double un_m_magnitude3d(double3 a); -extern UN_INLINE double un_m_magnitude_sqr3d(double3 a); -extern UN_INLINE double un_m_distance3d(double3 a, double3 b); -extern UN_INLINE double un_m_distance_sqr3d(double3 a, double3 b); +extern double3 un_m_normalize3d(double3 a); +extern double un_m_magnitude3d(double3 a); +extern double un_m_magnitude_sqr3d(double3 a); +extern double un_m_distance3d(double3 a, double3 b); +extern double un_m_distance_sqr3d(double3 a, double3 b); /* 4d double */ -extern UN_INLINE double4 un_m_add4d(double4 a, double4 b); -extern UN_INLINE double4 un_m_sub4d(double4 a, double4 b); +extern double4 un_m_add4d(double4 a, double4 b); +extern double4 un_m_sub4d(double4 a, double4 b); -extern UN_INLINE double4 un_m_add_scalar4d(double4 a, double scalar); -extern UN_INLINE double4 un_m_sub_scalar4d(double4 a, double scalar); -extern UN_INLINE double4 un_m_mul_scalar4d(double4 a, double scalar); -extern UN_INLINE double4 un_m_div_scalar4d(double4 a, double scalar); +extern double4 un_m_add_scalar4d(double4 a, double scalar); +extern double4 un_m_sub_scalar4d(double4 a, double scalar); +extern double4 un_m_mul_scalar4d(double4 a, double scalar); +extern double4 un_m_div_scalar4d(double4 a, double scalar); -extern UN_INLINE double un_m_dot4d(double4 a, double4 b); -extern UN_INLINE double4 un_m_hadamard4d(double4 a, double4 b); -extern UN_INLINE double4 un_m_project4d(double4 a, double4 onto); -extern UN_INLINE double4 un_m_reflect4d(double4 a, double4 normal); +extern double un_m_dot4d(double4 a, double4 b); +extern double4 un_m_hadamard4d(double4 a, double4 b); +extern double4 un_m_project4d(double4 a, double4 onto); +extern double4 un_m_reflect4d(double4 a, double4 normal); -extern UN_INLINE double4 un_m_normalize4d(double4 a); -extern UN_INLINE double un_m_magnitude4d(double4 a); -extern UN_INLINE double un_m_magnitude_sqr4d(double4 a); -extern UN_INLINE double un_m_distance4d(double4 a, double4 b); -extern UN_INLINE double un_m_distance_sqr4d(double4 a, double4 b); +extern double4 un_m_normalize4d(double4 a); +extern double un_m_magnitude4d(double4 a); +extern double un_m_magnitude_sqr4d(double4 a); +extern double un_m_distance4d(double4 a, double4 b); +extern double un_m_distance_sqr4d(double4 a, double4 b); #if defined(UN_DOUBLE_PRECISION) @@ -554,15 +554,15 @@ extern double2 un_m_complex_muld(double2 a, double2 b); /* ---- splines ---- */ -extern UN_INLINE float un_m_bezierf(float a, float q0, float q1, float b, float t); -extern UN_INLINE float2 un_m_bezier2f(float2 a, float2 q0, float2 q1, float2 b, float t); -extern UN_INLINE float3 un_m_bezier3f(float3 a, float3 q0, float3 q1, float3 b, float t); -extern UN_INLINE float4 un_m_bezier4f(float4 a, float4 q0, float4 q1, float4 b, float t); +extern float un_m_bezierf(float a, float q0, float q1, float b, float t); +extern float2 un_m_bezier2f(float2 a, float2 q0, float2 q1, float2 b, float t); +extern float3 un_m_bezier3f(float3 a, float3 q0, float3 q1, float3 b, float t); +extern float4 un_m_bezier4f(float4 a, float4 q0, float4 q1, float4 b, float t); -extern UN_INLINE double un_m_bezierd(double a, double q0, double q1, double b, double t); -extern UN_INLINE double2 un_m_bezier2d(double2 a, double2 q0, double2 q1, double2 b, double t); -extern UN_INLINE double3 un_m_bezier3d(double3 a, double3 q0, double3 q1, double3 b, double t); -extern UN_INLINE double4 un_m_bezier4d(double4 a, double4 q0, double4 q1, double4 b, double t); +extern double un_m_bezierd(double a, double q0, double q1, double b, double t); +extern double2 un_m_bezier2d(double2 a, double2 q0, double2 q1, double2 b, double t); +extern double3 un_m_bezier3d(double3 a, double3 q0, double3 q1, double3 b, double t); +extern double4 un_m_bezier4d(double4 a, double4 q0, double4 q1, double4 b, double t); #if defined(UN_DOUBLE_PRECISION) #define un_m_bezierr un_m_bezierd @@ -578,19 +578,19 @@ extern UN_INLINE double4 un_m_bezier4d(double4 a, double4 q0, double4 q1, double /* ---- easing ---- */ -extern UN_INLINE float un_m_ease_isinef(float t); -extern UN_INLINE float un_m_ease_iosinef(float t); -extern UN_INLINE float un_m_ease_osinef(float t); -extern UN_INLINE float un_m_ease_iquadf(float t); -extern UN_INLINE float un_m_ease_ioquadf(float t); -extern UN_INLINE float un_m_ease_oquadf(float t); +extern float un_m_ease_isinef(float t); +extern float un_m_ease_iosinef(float t); +extern float un_m_ease_osinef(float t); +extern float un_m_ease_iquadf(float t); +extern float un_m_ease_ioquadf(float t); +extern float un_m_ease_oquadf(float t); -extern UN_INLINE double un_m_ease_isined(double t); -extern UN_INLINE double un_m_ease_iosined(double t); -extern UN_INLINE double un_m_ease_osined(double t); -extern UN_INLINE double un_m_ease_iquadd(double t); -extern UN_INLINE double un_m_ease_ioquadd(double t); -extern UN_INLINE double un_m_ease_oquadd(double t); +extern double un_m_ease_isined(double t); +extern double un_m_ease_iosined(double t); +extern double un_m_ease_osined(double t); +extern double un_m_ease_iquadd(double t); +extern double un_m_ease_ioquadd(double t); +extern double un_m_ease_oquadd(double t); #if defined(UN_DOUBLE_PRECISION) #define un_m_ease_isiner un_m_ease_isined |