aboutsummaryrefslogtreecommitdiff
path: root/src/vga.h
blob: e6642f708f46578864385af172f424d8908ac74c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef _VGA_H
#define _VGA_H

/* palette index to be used as transparent color */
#define TRANSPARENT 16

typedef struct {
    uint16_t x;
    uint16_t y;
    uint16_t w;
    uint16_t h;
} Rect;

uint8_t open_framebuffer();
void close_framebuffer();

uint8_t set_mode(uint8_t mode);
void wait_vsync();

/* the palette is expected to be 8 bit per color, and will be converted to VGA's 6 bit per color */
void set_palette(const uint8_t *palette);

void blit(const uint8_t *sprite, const Rect *dst);
/* in src w is sprite width, h is sprite height */
void blitrc(const uint8_t *sprite, const Rect *src, const Rect *dst);
void blit_erase(uint8_t c);
void blit_update();

/* read from back buffer into memory */
void read_buffer(uint8_t *dst, const Rect *src);
#endif /* _VGA_H */