summaryrefslogtreecommitdiff
path: root/drw.h
diff options
context:
space:
mode:
Diffstat (limited to 'drw.h')
-rw-r--r--drw.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/drw.h b/drw.h
new file mode 100644
index 0000000..2dab93d
--- /dev/null
+++ b/drw.h
@@ -0,0 +1,46 @@
+#ifndef DRW_H
+#define DRW_H
+
+#include <stdint.h>
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_BITMAP_H
+
+#include "wayland.h"
+
+/* type definitions */
+typedef struct {
+ uint32_t *tmp_data;
+ uint32_t *data;
+ unsigned width;
+ unsigned height;
+ uint64_t size;
+ struct wl_buffer *buffer;
+} Canvas;
+
+typedef struct {
+ FT_Library library;
+ FT_Face face;
+} Font;
+
+typedef struct {
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+ uint8_t a;
+} Color;
+
+/* exported functions */
+Canvas* create_drw(struct wl_shm *shm, unsigned width, unsigned height);
+void free_drw(Canvas *canvas);
+void drw_push(Canvas *canvas);
+
+void draw_rect(Canvas *canvas, unsigned x, unsigned y, unsigned width, unsigned height, uint32_t color);
+void draw_point(Canvas *canvas, unsigned x, unsigned y, uint32_t color);
+
+Font* create_font(const char *fontpath, unsigned size);
+void free_font(Font *font);
+unsigned draw_font(Canvas *canvas, Font *font, const char *text, unsigned x, unsigned y, uint32_t color);
+unsigned font_width(Font *font, const char *text);
+
+#endif