#include "math/rect.h"
#include "math/triangle.h"
-typedef struct camera_t camera_t;
+typedef struct Camera Camera;
-camera_t *create_camera_from_renderer(SDL_Renderer *renderer);
-void destroy_camera(camera_t *camera);
+Camera *create_camera(SDL_Renderer *renderer,
+ Sprite_font *font);
+void destroy_camera(Camera *camera);
-int camera_clear_background(camera_t *camera,
- color_t color);
+int camera_clear_background(Camera *camera,
+ Color color);
-int camera_fill_rect(camera_t *camera,
- rect_t rect,
- color_t color);
+int camera_fill_rect(Camera *camera,
+ Rect rect,
+ Color color);
-int camera_draw_rect(camera_t * camera,
- rect_t rect,
- color_t color);
+int camera_draw_rect(Camera * camera,
+ Rect rect,
+ Color color);
-int camera_draw_triangle(camera_t *camera,
- triangle_t t,
- color_t color);
+int camera_draw_triangle(Camera *camera,
+ Triangle t,
+ Color color);
-int camera_fill_triangle(camera_t *camera,
- triangle_t t,
- color_t color);
+int camera_fill_triangle(Camera *camera,
+ Triangle t,
+ Color color);
-int camera_render_text(camera_t *camera,
+int camera_render_text(Camera *camera,
const char *text,
- vec_t position,
- sprite_font_t *font);
+ Vec size,
+ Color color,
+ Vec position);
-void camera_center_at(camera_t *camera, point_t position);
+int camera_render_debug_text(Camera *camera,
+ const char *text,
+ Vec position);
-void camera_toggle_debug_mode(camera_t *camera);
-void camera_disable_debug_mode(camera_t *camera);
+int camera_render_debug_rect(Camera *camera,
+ Rect rect,
+ Color color);
-void camera_toggle_blackwhite_mode(camera_t *camera);
+void camera_center_at(Camera *camera, Point position);
-int camera_is_point_visible(const camera_t *camera, point_t p);
+void camera_toggle_debug_mode(Camera *camera);
+void camera_disable_debug_mode(Camera *camera);
-rect_t camera_view_port(const camera_t *camera);
+void camera_toggle_blackwhite_mode(Camera *camera);
+
+int camera_is_point_visible(const Camera *camera, Point p);
+int camera_is_text_visible(const Camera *camera,
+ Vec size,
+ Vec position,
+ const char *text);
+
+Rect camera_view_port(const Camera *camera);
#endif // CAMERA_H_