summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--AnimationRender/FrameCallback.h2
-rw-r--r--FrameRender/FrameRender.h2
-rw-r--r--FrameRender/PixelCallback.h2
-rw-r--r--RGBImage/RGBImage.c (renamed from RGBImage.c)0
-rw-r--r--RGBImage/RGBImage.h (renamed from RGBImage.h)2
-rwxr-xr-xmake.sh52
-rw-r--r--renders/anim_graph_rotate.c (renamed from graphics.c)29
8 files changed, 70 insertions, 23 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5dece76
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+anim_*
+!renders/anim_*
+
+*.mp4
diff --git a/AnimationRender/FrameCallback.h b/AnimationRender/FrameCallback.h
index b3292bb..a48b4b6 100644
--- a/AnimationRender/FrameCallback.h
+++ b/AnimationRender/FrameCallback.h
@@ -2,7 +2,7 @@
#define _FRAME_CALLBACK
#include "../global.h"
-#include "../RGBImage.h"
+#include "../RGBImage/RGBImage.h"
struct FrameContext {
u32 frame;
diff --git a/FrameRender/FrameRender.h b/FrameRender/FrameRender.h
index 09037cb..3f2eeb1 100644
--- a/FrameRender/FrameRender.h
+++ b/FrameRender/FrameRender.h
@@ -2,7 +2,7 @@
#define _FRAME_RENDER
#include "../global.h"
-#include "../RGBImage.h"
+#include "../RGBImage/RGBImage.h"
#include "PixelCallback.h"
void RenderFrame(RGBImage buffer, const PixelCallback** callbacks, usize sizeCallbacks);
diff --git a/FrameRender/PixelCallback.h b/FrameRender/PixelCallback.h
index b0aee1f..a1ce740 100644
--- a/FrameRender/PixelCallback.h
+++ b/FrameRender/PixelCallback.h
@@ -2,7 +2,7 @@
#define _PIXEL_CALLBACK
#include "../global.h"
-#include "../RGBImage.h"
+#include "../RGBImage/RGBImage.h"
struct PixelContext {
i32 x;
diff --git a/RGBImage.c b/RGBImage/RGBImage.c
index 2896d72..2896d72 100644
--- a/RGBImage.c
+++ b/RGBImage/RGBImage.c
diff --git a/RGBImage.h b/RGBImage/RGBImage.h
index e2f9043..8980f7b 100644
--- a/RGBImage.h
+++ b/RGBImage/RGBImage.h
@@ -1,7 +1,7 @@
#ifndef _RGBIMAGE
#define _RGBIMAGE
-#include "global.h"
+#include "../global.h"
#include <stdio.h>
typedef uint8_t byte;
diff --git a/make.sh b/make.sh
new file mode 100755
index 0000000..b499eef
--- /dev/null
+++ b/make.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+: ${CC:=gcc}
+: ${CARGS:=-std=c99 -lm -O3}
+: ${FPS:=30}
+: ${PLAYER:=mpv}
+: ${PLAYERARGS:=--no-correct-pts --container-fps-override=\$FPS -}
+: ${RENDER:=ffmpeg}
+: ${RENDERARGS:=-r \$FPS -i - \$bin.mp4}
+
+binname() {
+ name="${1%%.c}"
+ echo "${name##*/}"
+}
+
+make_compile() {
+ bin="$(binname "$1")"
+ $(eval "echo \"$CC\"") $(eval "echo \"$CARGS\"") AnimationRender/*.c FrameRender/*.c RGBImage/*.c "$1" -o "$bin"
+}
+
+make_run() {
+ bin="$(binname "$1")"
+ "./$bin" | $(eval "echo \"$PLAYER\"") $(eval "echo \"$PLAYERARGS\"")
+}
+
+make_render() {
+ bin="$(binname "$1")"
+ "./$bin" | $(eval "echo \"$RENDER\"") $(eval "echo \"$RENDERARGS\"")
+}
+
+if [ ! -f "$2" ]
+then
+ echo "'$2' is not valid! Must be the path to a C file which contains main function."
+ exit 2
+fi
+
+case "$1" in
+ (compile)
+ make_compile "$2"
+ ;;
+ (run)
+ make_compile "$2"
+ make_run "$2"
+ ;;
+ (render)
+ make_compile "$2"
+ make_render "$2"
+ ;;
+ (*)
+ echo "Unrecognised action '$1'!"
+ exit 1
+esac
diff --git a/graphics.c b/renders/anim_graph_rotate.c
index 678a26e..e0b3a61 100644
--- a/graphics.c
+++ b/renders/anim_graph_rotate.c
@@ -1,22 +1,13 @@
-/* gcc -std=c99 *.c -lm && ./a.out | mpv --no-correct-pts --container-fps-override=30 -
- * gcc -std=c99 *.c -lm && ./a.out | ffmpeg -r 30 -i - output.mp4
- */
-
-#include "AnimationRender/AnimationRender.h"
-#include "AnimationRender/F_Draw.h"
-#include "AnimationRender/F_FrameRange.h"
-#include "AnimationRender/F_Interpolate.h"
-#include "AnimationRender/FrameCallback.h"
-#include "FrameRender/FrameRender.h"
-#include "FrameRender/P_Checker.h"
-#include "FrameRender/P_Circle.h"
-#include "FrameRender/P_Image.h"
-#include "FrameRender/P_LineSegment.h"
-#include "FrameRender/P_Square.h"
-#include "FrameRender/P_TransformCenter.h"
-#include "FrameRender/P_TransformRotate.h"
-#include "FrameRender/PixelCallback.h"
-#include "RGBImage.h"
+#include "../AnimationRender/AnimationRender.h"
+#include "../AnimationRender/F_Draw.h"
+#include "../AnimationRender/F_FrameRange.h"
+#include "../AnimationRender/F_Interpolate.h"
+#include "../AnimationRender/FrameCallback.h"
+#include "../FrameRender/P_Circle.h"
+#include "../FrameRender/P_LineSegment.h"
+#include "../FrameRender/P_Square.h"
+#include "../FrameRender/P_TransformCenter.h"
+#include "../FrameRender/PixelCallback.h"
#include <stdlib.h>
int