48 lines
884 B
C
48 lines
884 B
C
|
#ifndef IC_EXPLORER_WINDOW_H
|
||
|
#define IC_EXPLORER_WINDOW_H
|
||
|
|
||
|
#include <SDL.h>
|
||
|
|
||
|
#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 */
|