#ifndef RENDERER_COMMON_H #define RENDERER_COMMON_H #include #include #define FONT_WIDTH 16 #define FONT_HEIGHT 16 typedef struct { unsigned int x, y; unsigned int color; } RenderBase; typedef struct { RenderBase base; const char *text; void *font; // Opaque font pointer } RenderText; typedef struct { unsigned int x, y; unsigned int width, height; unsigned int color; } RenderObject; typedef struct Renderer Renderer; struct Renderer { volatile unsigned int *fb; unsigned int width; unsigned int height; unsigned int pitch; bool (*init)(Renderer *renderer); void (*clear_screen)(Renderer *renderer, unsigned int color); void (*draw_text)(Renderer *renderer, RenderText *text_obj); }; /** * Initializes the framebuffer (common across both renderers) */ bool renderer_init_common(Renderer *renderer); #endif // RENDERER_COMMON_H