#ifndef IC_EXPLORER_WINDOW_H #define IC_EXPLORER_WINDOW_H #include #define AUTOMATIC_SCALE 0.0f #define MAX_ZOOM 2.0f #define ZOOM_TIME 750 #define WINDOW_STATE_NORMAL 0 #define WINDOW_STATE_ZOOMING_IN 1 #define WINDOW_STATE_ZOOMING_OUT 2 #define WINDOW_STATE_ZOOMED 3 typedef struct { float x; float y; } Point; typedef struct { SDL_Window *obj; SDL_Renderer *render; SDL_Texture *background; Point focus; Point targetFocus; Point startFocus; float zoom; int state; double nowTime; double lastTime; double delta; } Window; Window *windowNew(const char *title, int width, int height); void windowDelete(Window *window); void windowDraw(Window *window); void windowUpdate(Window *window); void windowZoomTo(Window *window, float x, float y); void windowZoomOut(Window *window); #endif /* IC_EXPLORER_WINDOW_H */