aboutsummaryrefslogtreecommitdiffstats
path: root/7_2/include/drawable.h
diff options
context:
space:
mode:
authorjustanothercatgirl <sotov2070@gmail.com>2024-10-17 17:38:07 +0300
committerjustanothercatgirl <sotov2070@gmail.com>2024-10-17 17:38:07 +0300
commit82ec99f51b2b3b7a7b36b43b22df07ec503158b8 (patch)
tree4b308e68145ff124c50c7a5d4ebec8f0060d35e6 /7_2/include/drawable.h
parent5d294755542190ac5135af8e120e313b55828625 (diff)
task7 initial commit
Diffstat (limited to '7_2/include/drawable.h')
-rw-r--r--7_2/include/drawable.h42
1 files changed, 42 insertions, 0 deletions
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