mirror of
https://github.com/guezoloic/t3dsr.git
synced 2026-01-25 07:34:23 +00:00
feat: change return type for ptr functions
This commit is contained in:
@@ -7,6 +7,7 @@ file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS src/*.c)
|
|||||||
file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS src/*.h)
|
file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS src/*.h)
|
||||||
|
|
||||||
add_executable(main ${SOURCES} ${HEADERS})
|
add_executable(main ${SOURCES} ${HEADERS})
|
||||||
|
target_link_libraries(main m)
|
||||||
|
|
||||||
# ==== tests ====
|
# ==== tests ====
|
||||||
enable_testing()
|
enable_testing()
|
||||||
@@ -16,5 +17,6 @@ list(FILTER SOURCES EXCLUDE REGEX ".*src/main\\.c$")
|
|||||||
|
|
||||||
if(TEST_SOURCES)
|
if(TEST_SOURCES)
|
||||||
add_executable(tests ${TEST_SOURCES} ${SOURCES})
|
add_executable(tests ${TEST_SOURCES} ${SOURCES})
|
||||||
|
target_link_libraries(tests m)
|
||||||
add_test(NAME tests COMMAND tests)
|
add_test(NAME tests COMMAND tests)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
15
src/main.c
15
src/main.c
@@ -3,18 +3,5 @@
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
Vec4f_t vec = vec4f(1.f, 2.f, 8.f, 4.f);
|
return 0;
|
||||||
printf("%f %f %f %f\n", vec.x, vec.y, vec.z, vec.w);
|
|
||||||
|
|
||||||
Vec4f_t vec2 = vec4f_clone(&vec);
|
|
||||||
printf("%f %f %f %f\n", vec2.x, vec2.y, vec2.z, vec2.w);
|
|
||||||
|
|
||||||
Vec4f_t vec3 = vec4f_add(vec, vec2);
|
|
||||||
printf("%f %f %f %f\n", vec3.x, vec3.y, vec3.z, vec3.w);
|
|
||||||
|
|
||||||
Vec4f_t vec4 = vec4f_sub(vec, vec3);
|
|
||||||
printf("%f %f %f %f\n", vec4.x, vec4.y, vec4.z, vec4.w);
|
|
||||||
|
|
||||||
Vec4f_t vec5 = vec4f_scale(vec4, 5.f);
|
|
||||||
printf("%f %f %f %f\n", vec5.x, vec5.y, vec5.z, vec5.w);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ Vec4f_t vec4f_zero(void)
|
|||||||
return vec4f_scalar(0.f);
|
return vec4f_scalar(0.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_add_r(Vec4f_t *__restrict out, Vec4f_t a)
|
Vec4f_t* vec4f_add_r(Vec4f_t *__restrict out, Vec4f_t a)
|
||||||
{
|
{
|
||||||
#if defined (SIMD_X86)
|
#if defined (SIMD_X86)
|
||||||
__m128 va = _mm_load_ps(a.data);
|
__m128 va = _mm_load_ps(a.data);
|
||||||
@@ -70,7 +70,7 @@ Vec4f_t vec4f_add_r(Vec4f_t *__restrict out, Vec4f_t a)
|
|||||||
out->data[i] += a.data[i];
|
out->data[i] += a.data[i];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return *out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_add(Vec4f_t a, Vec4f_t b)
|
Vec4f_t vec4f_add(Vec4f_t a, Vec4f_t b)
|
||||||
@@ -79,7 +79,7 @@ Vec4f_t vec4f_add(Vec4f_t a, Vec4f_t b)
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_sub_r(Vec4f_t *__restrict out, Vec4f_t a)
|
Vec4f_t* vec4f_sub_r(Vec4f_t *__restrict out, Vec4f_t a)
|
||||||
{
|
{
|
||||||
#if defined (SIMD_X86)
|
#if defined (SIMD_X86)
|
||||||
__m128 va = _mm_load_ps(out->data);
|
__m128 va = _mm_load_ps(out->data);
|
||||||
@@ -98,7 +98,7 @@ Vec4f_t vec4f_sub_r(Vec4f_t *__restrict out, Vec4f_t a)
|
|||||||
out->data[i] -= a.data[i];
|
out->data[i] -= a.data[i];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return *out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_sub(Vec4f_t a, Vec4f_t b)
|
Vec4f_t vec4f_sub(Vec4f_t a, Vec4f_t b)
|
||||||
@@ -107,7 +107,7 @@ Vec4f_t vec4f_sub(Vec4f_t a, Vec4f_t b)
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_scale_r(Vec4f_t *__restrict out, float scalar)
|
Vec4f_t* vec4f_scale_r(Vec4f_t *__restrict out, float scalar)
|
||||||
{
|
{
|
||||||
#if defined (SIMD_X86)
|
#if defined (SIMD_X86)
|
||||||
__m128 va = _mm_load_ps(out->data);
|
__m128 va = _mm_load_ps(out->data);
|
||||||
@@ -125,7 +125,7 @@ Vec4f_t vec4f_scale_r(Vec4f_t *__restrict out, float scalar)
|
|||||||
out->data[i] *= scalar;
|
out->data[i] *= scalar;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return *out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_scale(Vec4f_t a, float scalar)
|
Vec4f_t vec4f_scale(Vec4f_t a, float scalar)
|
||||||
@@ -163,12 +163,12 @@ float vec4f_dot(Vec4f_t a, Vec4f_t b)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_norm_r(Vec4f_t *__restrict v)
|
Vec4f_t* vec4f_norm_r(Vec4f_t *__restrict v)
|
||||||
{
|
{
|
||||||
float length = vec4f_len(*v);
|
float length = vec4f_len(*v);
|
||||||
if (length < FLT_EPSILON) *v = vec4f_zero();
|
if (length < FLT_EPSILON) *v = vec4f_zero();
|
||||||
vec4f_scale_r(v, 1.f / length);
|
vec4f_scale_r(v, 1.f / length);
|
||||||
return *v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_norm(Vec4f_t v)
|
Vec4f_t vec4f_norm(Vec4f_t v)
|
||||||
@@ -177,7 +177,7 @@ Vec4f_t vec4f_norm(Vec4f_t v)
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_lerp_r(Vec4f_t *__restrict a, Vec4f_t b, float t)
|
Vec4f_t* vec4f_lerp_r(Vec4f_t *__restrict a, Vec4f_t b, float t)
|
||||||
{
|
{
|
||||||
t = fmaxf(0.f, fminf(t, 1.f));
|
t = fmaxf(0.f, fminf(t, 1.f));
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ Vec4f_t vec4f_lerp_r(Vec4f_t *__restrict a, Vec4f_t b, float t)
|
|||||||
a->z += t * (b.z - a->z);
|
a->z += t * (b.z - a->z);
|
||||||
a->w += t * (b.w - a->w);
|
a->w += t * (b.w - a->w);
|
||||||
|
|
||||||
return *a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec4f_t vec4f_lerp(Vec4f_t a, Vec4f_t b, float t)
|
Vec4f_t vec4f_lerp(Vec4f_t a, Vec4f_t b, float t)
|
||||||
|
|||||||
Reference in New Issue
Block a user