aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild.sh29
-rw-r--r--src/disgrace.c5
-rw-r--r--src/ungrateful.h232
3 files changed, 147 insertions, 119 deletions
diff --git a/build.sh b/build.sh
index 82eb864..e67c3ab 100755
--- a/build.sh
+++ b/build.sh
@@ -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