SDL_Rect view_port;
SDL_RenderGetViewport(camera->renderer, &view_port);
- const Vec2f scale = effective_scale(&view_port);
+ const Vec2f scale = camera->effective_scale;
const Vec2f screen_position = camera_point(camera, position);
- if (sprite_font_render_text(
- camera->font,
- camera->renderer,
- screen_position,
- vec(size.x * scale.x * camera->scale, size.y * scale.y * camera->scale),
- camera->blackwhite_mode ? color_desaturate(c) : c,
- text) < 0) {
- return -1;
- }
+ sprite_font_render_text(
+ &camera->font,
+ camera->renderer,
+ screen_position,
+ vec(size.x * scale.x * camera->scale, size.y * scale.y * camera->scale),
+ camera->blackwhite_mode ? color_desaturate(c) : c,
+ text);
return 0;
}
Vec2f position;
float scale;
SDL_Renderer *renderer;
- Sprite_font *font;
+ Sprite_font font;
+ Vec2f effective_scale;
} Camera;
Camera create_camera(SDL_Renderer *renderer,
Rect rect,
Color color);
-const Sprite_font *camera_font(const Camera *camera);
+
+ Vec2f effective_scale(const SDL_Rect *view_port);
+
#endif // CAMERA_H_