diff --git a/kernel/graphics.h b/kernel/graphics.h new file mode 100644 index 0000000..84b2852 --- /dev/null +++ b/kernel/graphics.h @@ -0,0 +1,41 @@ +/* +Copyright (C) 2016-2019 The University of Notre Dame +This software is distributed under the GNU General Public License. +See the file LICENSE for details. +*/ + +#ifndef GRAPHICS_H +#define GRAPHICS_H + +#include "kernel/types.h" +#include "kernel/gfxstream.h" + +struct graphics_color { + uint8_t r; + uint8_t g; + uint8_t b; + uint8_t a; +}; + +extern struct graphics graphics_root; + +struct graphics *graphics_create_root(); +struct graphics *graphics_create(struct graphics *parent ); +struct graphics *graphics_addref(struct graphics *g ); +void graphics_delete(struct graphics *g); + +uint32_t graphics_width(struct graphics *g); +uint32_t graphics_height(struct graphics *g); +void graphics_fgcolor(struct graphics *g, struct graphics_color c); +void graphics_bgcolor(struct graphics *g, struct graphics_color c); +int graphics_clip(struct graphics *g, int x, int y, int w, int h); + +void graphics_scrollup(struct graphics *g, int x, int y, int w, int h, int dy); +void graphics_rect(struct graphics *g, int x, int y, int w, int h); +void graphics_clear(struct graphics *g, int x, int y, int w, int h); +void graphics_line(struct graphics *g, int x, int y, int w, int h); +void graphics_char(struct graphics *g, int x, int y, unsigned char c); +void graphics_string(struct graphics *g, int x, int y, const char *str, int length ); +int graphics_write(struct graphics *g, int *cmd, int length ); + +#endif