display.h (1107B)
1 #ifndef TA_DISPLAY_H
2 #define TA_DISPLAY_H
3
4 #include <stdint.h>
5 #include <stdbool.h>
6 #include <stddef.h>
7
8 typedef enum {
9 TA_DISPLAY_PIXEL_FORMAT_8,
10 TA_DISPLAY_PIXEL_FORMAT_16,
11 TA_DISPLAY_PIXEL_FORMAT_32
12 } ta_display_pixel_format;
13
14 typedef struct {
15 uint16_t width, height;
16 uint8_t bpp;
17 size_t size;
18 void *buffers[2];
19 ta_display_pixel_format format;
20 bool sprite_mode;
21 } ta_display_t;
22
23 typedef struct {
24 uint16_t x, y;
25 uint16_t width, height;
26 uint16_t draw_width, draw_height;
27 ta_display_pixel_format format;
28 uint8_t pixels[];
29 } ta_display_sprite;
30
31 typedef struct {
32 ta_display_sprite **sprites;
33 uint8_t count;
34 uint8_t capacity;
35 } ta_display_sprites_t;
36
37 extern ta_display_t *ta_display;
38 extern ta_display_sprites_t *ta_display_sprites;
39
40 bool ta_display_init(void);
41 void ta_display_deinit(void);
42 ta_display_sprite *ta_display_sprite_create(uint16_t width, uint16_t height);
43 bool ta_display_sprite_add(ta_display_sprite *sprite);
44 void ta_display_sprite_free(ta_display_sprite *sprite);
45 void ta_display_sprites_clear(void);
46
47 #endif // TA_DISPLAY_H