From 82ec99f51b2b3b7a7b36b43b22df07ec503158b8 Mon Sep 17 00:00:00 2001 From: justanothercatgirl Date: Thu, 17 Oct 2024 17:38:07 +0300 Subject: task7 initial commit --- 7_2/include/drawable.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 7_2/include/drawable.h (limited to '7_2/include/drawable.h') diff --git a/7_2/include/drawable.h b/7_2/include/drawable.h new file mode 100644 index 0000000..3d0caeb --- /dev/null +++ b/7_2/include/drawable.h @@ -0,0 +1,42 @@ +#ifndef JCG_DRAWABLE_H +#define JCG_DRAWABLE_H + +#define FILL_CHR '#' +#define SPACE_CHR ' ' + +// что угодно, на чём можно ''нарисовать'' +// должно иметь размер, размер пикселей, данные +// функция put записывает пиксель по координатам x, y на поле +// функция show выводит данные на экран/куда угодно ещё +struct drawable { + long x, y, pix_s; + void *data; + void (*put)(struct drawable *self, long x, long y); + void(*show)(const struct drawable *self); +}; + + +// конструктор +void drawable_init(struct drawable* self, + void(*put_f)(struct drawable *, long, long), + void(*show_f)(const struct drawable *), + long width, + long height, + long pix_s); +// деструктор +void drawable_destroy(struct drawable *self); +// конструктор для консольного поля +struct drawable drawable_plaintxt(long width, long height); +// конструктор для графического поля +struct drawable drawable_X11(long width, long height); + +// put для консольного drawable +void put_plaintxt(struct drawable *self, long x, long y); +// show для консольного drawable +void show_plaintxt(const struct drawable *self); +// put для графического drawable +void put_X11(struct drawable *self, long x, long y); +// show для графического drawable +void show_X11(const struct drawable *self); + +#endif // JCG_DRAWABLE_H -- cgit v1.2.3-70-g09d2