#ifndef __CANVAS_H__
#define __CANVAS_H__

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <time.h>
#include <unistd.h>

#define CLEAR_HEIGHT 50
#define TARGET_FPS 60
#define ANIMATION_TIMEOUT (1000*1000/TARGET_FPS)

typedef struct Canvas Canvas;
struct Canvas {
    int     width;
    int     height;
    char**  cells; // width*height table
};

Canvas* canvas_create(int width, int height);
void canvas_destroy(Canvas* canvas);

void canvas_clear(Canvas* canvas);
void canvas_present(Canvas* canvas);

void canvas_cell(Canvas* canvas, int x, int y, char c);
void canvas_text(Canvas* canvas, int x, int y, char* string);
void canvas_rect(Canvas* canvas, int x, int y, int w, int h);

// Animation
void clear_screen();

#endif
