|
|
@@ -27,8 +27,9 @@ namespace engine {
|
|
|
}
|
|
|
|
|
|
game_dispatch::game_dispatch(std::shared_ptr<graphics::renderer> renderer)
|
|
|
- : renderer(renderer), batch_renderer(make_renderer(1.f)),
|
|
|
- screen_size(env::screen_size()), minimum_frame_duration(env::fps::v60),
|
|
|
+ : screen_size(env::screen_size()), renderer(renderer),
|
|
|
+ batch_renderer(make_renderer(screen_size)),
|
|
|
+ minimum_frame_duration(env::fps::v60),
|
|
|
text_engine_(new text_engine("font", renderer->manager())),
|
|
|
counter(new fps_counter(text_engine_)), scenes(),
|
|
|
current_timestamp(env::clock::now()), curr_scene() {}
|
|
|
@@ -105,7 +106,9 @@ namespace engine {
|
|
|
}
|
|
|
|
|
|
std::shared_ptr<graphics::renderer>
|
|
|
- game_dispatch::make_renderer(float scale) const {
|
|
|
+ game_dispatch::make_renderer(math::vec2 const & bounds) const {
|
|
|
+ math::vec2 const factor = screen_size / bounds;
|
|
|
+ float const scale = std::min(factor[0], factor[1]);
|
|
|
return std::make_shared<graphics::batch_renderer>(
|
|
|
renderer.get(), math::matrix::scalar(make_vector(scale, scale, 1.f)));
|
|
|
}
|