#ifndef CAMERA_H
#define CAMERA_H

#include "common.h"

extern void     Camera_Init(void);
extern void     Camera_SetLevelBounds(const int level_width, const int level_height);
extern void     Camera_SetViewport(const int width, const int height);
extern void     Camera_SetFollowPosition(vector_t position);
extern vector_t Camera_GetFollowPosition(void);
extern void     Camera_Shake(void);
extern vector_t Camera_GetPosition(void);
extern void     Camera_Update(const float dt);
extern void     Camera_Draw(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect);
extern void     Camera_DrawEx(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect, const float angle, const SDL_Point *center, const SDL_RendererFlip flip);
extern void     Camera_DrawNotCulling(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect);
extern void     Camera_PlaySound(Mix_Chunk *sound, vector_t position);
extern void     Camera_Quit(void);

#endif
