#ifndef DRW_H #define DRW_H #include #include #include FT_FREETYPE_H #include FT_BITMAP_H #include "wayland.h" /* type definitions */ typedef struct { uint32_t *data; unsigned width; unsigned height; unsigned 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 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