typedef struct LatticeWindow LatticeWindow;

typedef enum {
    WINDOW_INIT,
    WINDOW_OPEN,
    WINDOW_SHOULD_CLOSE,
    WINDOW_CLOSED,
    // put new states here
    NUM_WINDOW_STATES
} WindowState;

LatticeWindow *CreateWindow(unsigned int width, unsigned int height);
void DestroyWindow(LatticeWindow *window);
WindowState GetWindowState(LatticeWindow *window);
void DrawFrame(LatticeWindow *window, void *buf,
               unsigned int width, unsigned int height);
