diff options
author | nathansmith <nathansmith@posteo.com> | 2025-04-26 14:49:59 +0000 |
---|---|---|
committer | nathansmith <nathansmith@posteo.com> | 2025-04-26 14:49:59 +0000 |
commit | cbc1dfa2fcafb283cea5d87092db1a9b786c962c (patch) | |
tree | 969a12b9d37f4bda2aed8a984fe2ac96d0c55d6f /src/libsldj | |
parent | c2cf22bbfb26f0f778ded8be82ddb16816b8c8f0 (diff) | |
download | sldj-cbc1dfa2fcafb283cea5d87092db1a9b786c962c.tar.gz sldj-cbc1dfa2fcafb283cea5d87092db1a9b786c962c.tar.bz2 sldj-cbc1dfa2fcafb283cea5d87092db1a9b786c962c.zip |
Downgraded to makefile lol
Diffstat (limited to 'src/libsldj')
-rw-r--r-- | src/libsldj/Makefile | 11 | ||||
-rw-r--r-- | src/libsldj/util.c | 2 | ||||
-rw-r--r-- | src/libsldj/util.h | 68 |
3 files changed, 80 insertions, 1 deletions
diff --git a/src/libsldj/Makefile b/src/libsldj/Makefile new file mode 100644 index 0000000..fc15314 --- /dev/null +++ b/src/libsldj/Makefile @@ -0,0 +1,11 @@ +TARGET = libsldj.so +SOURCES = $(shell find -name "*.c") +OBJECTS = $(SOURCES:.c=.o) + +%.o: %.c + $(CC) -c -fPIC -o $@ $< +$(TARGET): $(OBJECTS) + $(CC) -shared -o $(TARGET) $(OBJECTS) +clean: + rm *.o + rm $(TARGET) diff --git a/src/libsldj/util.c b/src/libsldj/util.c index 61def55..b7e445c 100644 --- a/src/libsldj/util.c +++ b/src/libsldj/util.c @@ -1,2 +1,2 @@ -#include "libsldj/util.h" +#include "util.h" diff --git a/src/libsldj/util.h b/src/libsldj/util.h new file mode 100644 index 0000000..566ba8d --- /dev/null +++ b/src/libsldj/util.h @@ -0,0 +1,68 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <math.h> + +#ifndef UTIL_H +#define UTIL_H + +#define SET_BIT(b, n) (b | (0x1 << n)) +#define CLEAR_BIT(b, n) (b & ~(0x1 << n)) +#define IS_BIT_SET(b, n) ((b >> n) & 0x1) +#define TOGGLE_BIT(b, n) (b ^ (0x1 << n)) +#define HAS_FLAG(v, f) ((v & f) == f) + +// Fast math macros. +#define SLDJ_SQRT(number) sldjSqrtTable[(uint16_t)(number)] + +#define SLDJ_SIN(number) sldjSinTable[(uint16_t)(number)] +#define SLDJ_COS(number) sldjCosTable[(uint16_t)(number)] +#define SLDJ_TAN(number) sldjTanTable[(uint16_t)(number)] + +#define SLDJ_HYPOT2(x, y) (SLDJ_SQRT(x * x + y * y)) +#define SLDJ_HYPOT3(x, y, z) (SLDJ_SQRT(x * x + y * y + z * z)) + +#define SLDJ_RANDOM16(seed) (seed = (75 * seed + 74) % 65537) +#define SLDJ_RANDOM32(seed) (seed = (1664525 * seed + 1013904223) % 4294967296) + +// Stuff stolen from raylib/raymath +#ifndef RL_COLOR_TYPE +#define RL_COLOR_TYPE +typedef struct Color { + unsigned char r; + unsigned char g; + unsigned char b; + unsigned char a; +} Color; +#endif + +#ifndef PI + #define PI 3.14159265358979323846f +#endif + +#ifndef DEG2RAD + #define DEG2RAD (PI/180.0f) +#endif + +#ifndef RAD2DEG + #define RAD2DEG (180.0f/PI) +#endif + +// Used for sending information to a scanner. +typedef struct SldjContext { + uint16_t viewportWidth; + uint16_t viewportHeight; + uint8_t targetFps; + uint16_t xCount; + uint16_t yCount; +} SldjContext; + +// Tables. +extern float sldjSqrtTable[65536]; + +extern float sldjSinTable[361]; +extern float sldjCosTable[361]; +extern float sldjTanTable[361]; + +#endif + |