]> git.defcon.no Git - avrfbosd/blob - draw.h
Demo updated to use new clear_screen()
[avrfbosd] / draw.h
1 #ifndef DRAW_H
2 #define DRAW_H
3
4 #include <stdint.h>
5 #include <avr/pgmspace.h>
6 #include "video_properties.h"
7
8 #define c_BLACK 0
9 #define c_WHITE 1
10 #define c_INVERT 2
11 #define c_NONE -1
12
13
14 void sp(uint8_t x, uint8_t y, uint8_t color);
15
16 void set_pixel(uint8_t x, uint8_t y, uint8_t color);
17 // TODO: may need unsigned char get_pixel(uint8_t x, uint8_t y);
18
19 void fill(uint8_t color);
20 // TODO: may need void shift(uint8_t distance, uint8_t direction);
21
22 void draw_line(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t c);
23 void draw_row(uint8_t x, uint8_t y0, uint8_t y1, uint8_t c);
24 void draw_col(uint8_t y, uint8_t x0, uint8_t x1, uint8_t c);
25
26 void _draw_rect(uint8_t x0, uint8_t y0, uint8_t w, uint8_t h, int8_t c, int8_t fc);
27 void _draw_circle(uint8_t x0, uint8_t y0, uint8_t radius, int8_t c, int8_t fc);
28
29 void draw_rect(uint8_t x0, uint8_t y0, uint8_t w, uint8_t h, uint8_t c);
30 void fill_rect(uint8_t x0, uint8_t y0, uint8_t w, uint8_t h, uint8_t c);
31 void draw_circle(uint8_t x0, uint8_t y0, uint8_t radius, char c);
32 void fill_circle(uint8_t x0, uint8_t y0, uint8_t radius, char c);
33
34 // TODO: WILL need void draw_bitmap(uint8_t x, uint8_t y, const unsigned char * bmp, uint16_t i = 0, uint8_t width = 0, uint8_t lines = 0);
35 // TODO draw_bitmap() will be useful for printing text, as printing text
36 // TODO is drawing font elements, and font elements are ... bitmaps.
37 void draw_8bpp_bitmap( uint8_t pos_x, uint8_t pos_y, uint8_t width, uint8_t height, const uint8_t* image );
38 void pgm_draw_8bpp_bitmap( uint8_t pos_x, uint8_t pos_y, uint8_t width, uint8_t height, const uint8_t* image );
39
40 void draw_char ( uint8_t pos_x, uint8_t pos_y, uint8_t ch);
41 void draw_string ( uint8_t pos_x, uint8_t pos_y, const char *text);
42
43 void clear_screen( void );
44
45 #endif