tuxanci2-engine
Game engine for tuxanci2
Log | Files | Refs | README | LICENSE

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