canvas.h 667 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <stdint.h>
  3. typedef enum {
  4. ColorWhite = 0x00,
  5. ColorBlack = 0x01,
  6. } Color;
  7. typedef struct Canvas Canvas;
  8. typedef const uint8_t* Font;
  9. struct _CanvasApi;
  10. typedef struct _CanvasApi CanvasApi;
  11. typedef struct {
  12. Font primary;
  13. Font secondary;
  14. } Fonts;
  15. struct {
  16. Canvas canvas;
  17. Fonts* fonts;
  18. uint8_t (*width)(CanvasApi* canvas);
  19. uint8_t (*height)(CanvasApi* canvas);
  20. void (*clear)(CanvasApi* canvas);
  21. void (*canvas_color_set)(CanvasApi* canvas, Color color);
  22. void (*canvas_font_set)(CanvasApi* canvas, Font font);
  23. void (*draw_str)(CanvasApi* canvas, uint8_t x, uint8_t y, const char* str);
  24. } _CanvasApi;