diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-20 21:43:39 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-20 21:44:32 +0200 |
commit | 767668381e1b2f76e5035e69a3d7d6f318fe2f67 (patch) | |
tree | 0c0589ed33d9af7aa3ba24dc1826060199fc0239 /main | |
parent | e4e66dd842e4a0ad38fbe1da7b651ab5c5d20f51 (diff) |
simplify some camera stuff
Diffstat (limited to 'main')
-rw-r--r-- | main/app.hpp | 4 | ||||
-rw-r--r-- | main/camera.cpp | 3 | ||||
-rw-r--r-- | main/draw.cpp | 10 | ||||
-rw-r--r-- | main/update.cpp | 2 |
4 files changed, 7 insertions, 12 deletions
diff --git a/main/app.hpp b/main/app.hpp index 5da7713d..883316be 100644 --- a/main/app.hpp +++ b/main/app.hpp @@ -35,12 +35,12 @@ private: using dpi_policy = Platform::Implementation::Sdl2DpiScalingPolicy; using tile_atlas_ = std::shared_ptr<tile_atlas>; - void update(float dt); + void update(double dt); void do_key(KeyEvent::Key k, KeyEvent::Modifiers m, bool pressed, bool repeated); void do_mouse_click(global_coords pos, int button); - void do_camera(float dt); + void do_camera(double dt); void reset_camera_offset(); void recalc_cursor_tile(); void recalc_viewport(Vector2i size); diff --git a/main/camera.cpp b/main/camera.cpp index be22d89c..248b1c5d 100644 --- a/main/camera.cpp +++ b/main/camera.cpp @@ -3,10 +3,9 @@ namespace floormat { -void app::do_camera(float dt_) +void app::do_camera(double dt) { constexpr int pixels_per_second = 768; - const auto dt = (double)dt_; auto camera_offset = _shader.camera_offset(); if (keys[key::camera_up]) diff --git a/main/draw.cpp b/main/draw.cpp index 439899b6..a9517004 100644 --- a/main/draw.cpp +++ b/main/draw.cpp @@ -10,13 +10,10 @@ void app::drawEvent() { if (const float dt = timeline.previousFrameDuration(); dt > 0) { - constexpr float RC = 0.5f; + constexpr float RC = 0.1f; const float alpha = dt/(dt + RC); - if (_frame_time > 0) - _frame_time = _frame_time*(1-alpha) + alpha*dt; - else - _frame_time = dt; + _frame_time = _frame_time*(1-alpha) + alpha*dt; } else { @@ -25,14 +22,13 @@ void app::drawEvent() } { - const float dt = std::clamp(timeline.previousFrameDuration(), 1e-6f, 1e-1f); + const auto dt = std::clamp((double)timeline.previousFrameDuration(), 1e-6, 1e-1); update(dt); } _shader.set_tint({1, 1, 1, 1}); { - //GL::defaultFramebuffer.clear(GL::FramebufferClear::Color); _framebuffer.clear(GL::FramebufferClear::Color); _framebuffer.bind(); draw_msaa(); diff --git a/main/update.cpp b/main/update.cpp index 4346f7af..2321fe18 100644 --- a/main/update.cpp +++ b/main/update.cpp @@ -21,7 +21,7 @@ void app::do_mouse_click(const global_coords pos, int button) _editor.click_at_tile(pos, button); } -void app::update(float dt) +void app::update(double dt) { do_camera(dt); draw_ui(); |