diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-23 20:28:57 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-03-23 20:28:57 +0100 |
| commit | dace7dca77e9539b5cb459f79c1154d11b3030fe (patch) | |
| tree | fbd3bc83e15c7b8d7e41dc351a7a50cfc0164c2f /drw.h | |
first version of wlock
Diffstat (limited to 'drw.h')
| -rw-r--r-- | drw.h | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -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 |