summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AnimationObject.c12
-rw-r--r--AnimationObject.h9
-rw-r--r--graphics.c19
3 files changed, 40 insertions, 0 deletions
diff --git a/AnimationObject.c b/AnimationObject.c
index 16489c3..87fe324 100644
--- a/AnimationObject.c
+++ b/AnimationObject.c
@@ -1,5 +1,6 @@
#include "AnimationObject.h"
#include <math.h>
+#include <stdlib.h>
ARGB
AO_CheckerPattern(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv) {
@@ -64,3 +65,14 @@ AO_Line(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* p
return pixel;
}
+
+ARGB
+AO_HorSegment(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv) {
+ struct AO_HorSegment hs = *(struct AO_HorSegment*)priv;
+
+ if (abs(r) <= hs.width && hs.left <= c && c <= hs.right) {
+ ARGB_set(&pixel, hs.color);
+ }
+
+ return pixel;
+}
diff --git a/AnimationObject.h b/AnimationObject.h
index 95aa115..16f0b0e 100644
--- a/AnimationObject.h
+++ b/AnimationObject.h
@@ -44,4 +44,13 @@ struct AO_Line {
ARGB AO_Line(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);
+struct AO_HorSegment {
+ i32 left;
+ i32 right;
+ double width;
+ color color;
+};
+
+ARGB AO_HorSegment(const Animation* anim, u32 frameIndex, ARGB pixel, i32 r, i32 c, void* priv);
+
#endif /* _ANIMATION_OBJECT */
diff --git a/graphics.c b/graphics.c
index 931c486..553474c 100644
--- a/graphics.c
+++ b/graphics.c
@@ -107,6 +107,25 @@ main() {
};
Animation_pushEvent(&anim, 30, 110, AM_MoveLinear, &ml2);
+ // Segment
+ struct AO_HorSegment ls1 = {
+ .left = -40, .right = 40,
+ .width = 3, .color = 0xFFA0A0A0,
+ };
+ struct AM_MoveSpin ms3 = {
+ .theta = 3.14159 / 10,
+ .centerRow = 0, .centerCol = 0,
+
+ .callback = AO_HorSegment, .priv = &ls1,
+ };
+ struct AM_MoveLinear ml6 = {
+ .startRow = 0, .startCol = 0,
+ .dRow = 4, .dCol = 4,
+
+ .callback = AM_MoveSpin, .priv = &ms3,
+ };
+ Animation_pushEvent(&anim, 0, 120, AM_MoveLinear, &ml6);
+
Animation_render(&anim);
fclose(fbclc);