shithub: blie

ref: 0e8796746fad950ab61be075de5638fdcbd6fc32
dir: /blie.h/

View raw version
typedef struct Layer Layer;
typedef struct Editor Editor;

extern int bliedebug;

struct Layer {
	char *name;
	char *label;
	Drawop op;
	Editor *editor;
	void *data;
};

enum { UP, DOWN };

void addlayer(char *name);
void movelayer(Layer*, int);
void savelayermeta(Layer*);
int foreachlayer(void (*f)(Layer*, int, void*), void*);

struct Editor {
	char *name;
	Memimage *(*composite)(Layer*, Memimage*);
	Memimage *(*raw)(Layer*);
	Memimage *(*mask)(Layer*);
	Memimage *(*overlay)(Layer*);
	void (*input)(Layer*, Event);
	int (*savedata)(Layer*);
};

extern Editor p9image;

void loadeditors(void);
int addeditor(Editor*);
Editor *geteditor(char*);

Memimage* ecomposite(Layer*, Memimage*);
Memimage* gencomposite(Memimage*, Memimage*, Memimage*, Drawop);
Memimage* gencanvas(Memimage*);
Memimage* dupmemimage(Memimage*);