Initial (terrible) commit
This commit is contained in:
parent
29943037d3
commit
858c6c2532
2 changed files with 65 additions and 0 deletions
52
include/hexagram/anim.h
Normal file
52
include/hexagram/anim.h
Normal file
|
@ -0,0 +1,52 @@
|
|||
#ifndef _HEXAGRAM_ANIM_H
|
||||
#define _HEXAGRAM_ANIM_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <hexagram/gauge.h>
|
||||
#include <hexagram/dial.h>
|
||||
|
||||
typedef enum {
|
||||
HEXAGRAM_ANIM_MOVE = 1 << 0,
|
||||
HEXAGRAM_ANIM_ALPHA = 1 << 1,
|
||||
HEXAGRAM_ANIM_RADIUS = 1 << 2
|
||||
} hexagram_anim_flags;
|
||||
|
||||
typedef struct _hexagram_anim_action {
|
||||
int flags;
|
||||
|
||||
union {
|
||||
hexagram_gauge *gauge;
|
||||
hexagram_dial *dial;
|
||||
};
|
||||
|
||||
struct {
|
||||
struct {
|
||||
double x, y;
|
||||
};
|
||||
|
||||
double alpha;
|
||||
double radius;
|
||||
} from, to;
|
||||
} hexagram_anim_action;
|
||||
|
||||
typedef struct _hexagram_anim_stop {
|
||||
hexagram_anim_action *actions;
|
||||
size_t actionc;
|
||||
double duration_s;
|
||||
} hexagram_anim_stop;
|
||||
|
||||
typedef struct _hexagram_anim {
|
||||
hexagram_anim_stop *stops;
|
||||
size_t count, current;
|
||||
struct timeval start, now;
|
||||
} hexagram_anim;
|
||||
|
||||
void hexagram_anim_init(hexagram_anim *anim);
|
||||
|
||||
int hexagram_anim_step(hexagram_anim *anim, cairo_t *bg, cairo_t *fg);
|
||||
|
||||
double hexagram_anim_duration(hexagram_anim *anim);
|
||||
|
||||
#endif /* _HEXAGRAM_ANIM_H */
|
13
src/anim.c
Normal file
13
src/anim.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#include <hexagram/anim.h>
|
||||
|
||||
void hexagram_anim_init(hexagram_anim *anim) {
|
||||
anim->current = 0;
|
||||
|
||||
gettimeofday(&anim->start, NULL);
|
||||
}
|
||||
|
||||
int hexagram_anim_step(hexagram_anim *anim, cairo_t *bg, cairo_t *fg) {
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue