#ifndef __RENDERER_H__ #define __RENDERER_H__ #include "gui.h" #include "display_utils.h" #include "font.h" struct renderer_t { display_t *display; uint16_t translate_x; uint16_t translate_y; uint16_t render_area_width; uint16_t render_area_height; }; renderer_t renderer_create(display_t *display); void renderer_clear(renderer_t *renderer); void renderer_render(renderer_t *renderer); size2d_t renderer_write_string(renderer_t *renderer, uint16_t x, uint16_t y, uint16_t length, font_t *font, char *text, display_pixel_t color); size2d_t renderer_write_char(renderer_t *renderer, uint16_t x, uint16_t y, font_t *font, char c, display_pixel_t color); void renderer_render_rectangle(renderer_t *renderer, uint16_t x, uint16_t y, uint16_t width, uint16_t height, display_pixel_t color); void renderer_render_border(renderer_t *renderer, uint16_t x, uint16_t y, uint16_t width, uint16_t height, display_pixel_t color); void renderer_translate(renderer_t *renderer, uint16_t x, uint16_t y); void renderer_clear_translate(renderer_t *renderer); void renderer_set_draw_area(renderer_t *renderer, uint16_t width, uint16_t height); void renderer_reset_draw_area(renderer_t *renderer); #endif // __RENDERER_H__