diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-21 00:58:49 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-21 00:58:49 +1000 |
commit | 4b0bc220e4da1173f742a4973939b139bef562db (patch) | |
tree | 0ff66d5957575fa814fc10b8cd93e3dd378f45dc /source/rendering | |
parent | 607be749451aa40e3619e7ceab0927d1fcec8233 (diff) |
Support for changing the game's timescale
Context-specific (like per-world) timescales can also be added later
Diffstat (limited to 'source/rendering')
-rw-r--r-- | source/rendering/StarEnvironmentPainter.cpp | 7 | ||||
-rw-r--r-- | source/rendering/StarEnvironmentPainter.hpp | 3 | ||||
-rw-r--r-- | source/rendering/StarWorldPainter.cpp | 6 | ||||
-rw-r--r-- | source/rendering/StarWorldPainter.hpp | 1 |
4 files changed, 8 insertions, 9 deletions
diff --git a/source/rendering/StarEnvironmentPainter.cpp b/source/rendering/StarEnvironmentPainter.cpp index aa2763b..816281b 100644 --- a/source/rendering/StarEnvironmentPainter.cpp +++ b/source/rendering/StarEnvironmentPainter.cpp @@ -29,16 +29,13 @@ EnvironmentPainter::EnvironmentPainter(RendererPtr renderer) { m_renderer = move(renderer); m_textureGroup = make_shared<AssetTextureGroup>(m_renderer->createTextureGroup(TextureGroupSize::Large)); m_timer = 0; - m_lastTime = 0; m_rayPerlin = PerlinF(1, RayPerlinFrequency, RayPerlinAmplitude, 0, 2.0f, 2.0f, Random::randu64()); } -void EnvironmentPainter::update() { +void EnvironmentPainter::update(float dt) { // Allows the rays to change alpha with time. - int64_t currentTime = Time::monotonicMilliseconds(); - m_timer += (currentTime - m_lastTime) / 1000.0; + m_timer += dt; m_timer = std::fmod(m_timer, Constants::pi * 100000.0); - m_lastTime = currentTime; } void EnvironmentPainter::renderStars(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky) { diff --git a/source/rendering/StarEnvironmentPainter.hpp b/source/rendering/StarEnvironmentPainter.hpp index 3a90b69..4b9fdb8 100644 --- a/source/rendering/StarEnvironmentPainter.hpp +++ b/source/rendering/StarEnvironmentPainter.hpp @@ -17,7 +17,7 @@ class EnvironmentPainter { public: EnvironmentPainter(RendererPtr renderer); - void update(); + void update(float dt); void renderStars(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky); void renderDebrisFields(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky); @@ -67,7 +67,6 @@ private: AssetTextureGroupPtr m_textureGroup; double m_timer; - int64_t m_lastTime; PerlinF m_rayPerlin; uint64_t m_starsHash; diff --git a/source/rendering/StarWorldPainter.cpp b/source/rendering/StarWorldPainter.cpp index e033ee1..d89cfe1 100644 --- a/source/rendering/StarWorldPainter.cpp +++ b/source/rendering/StarWorldPainter.cpp @@ -45,14 +45,16 @@ WorldCamera& WorldPainter::camera() { return m_camera; } +void WorldPainter::update(float dt) { + m_environmentPainter->update(dt); +} + void WorldPainter::render(WorldRenderData& renderData, function<void()> lightWaiter) { m_camera.setScreenSize(m_renderer->screenSize()); m_camera.setTargetPixelRatio(Root::singleton().configuration()->get("zoomLevel").toFloat()); m_assets = Root::singleton().assets(); - m_environmentPainter->update(); - m_tilePainter->setup(m_camera, renderData); // Stars, Debris Fields, Sky, and Orbiters diff --git a/source/rendering/StarWorldPainter.hpp b/source/rendering/StarWorldPainter.hpp index 0ae6a7d..ce7f1d8 100644 --- a/source/rendering/StarWorldPainter.hpp +++ b/source/rendering/StarWorldPainter.hpp @@ -23,6 +23,7 @@ public: WorldCamera& camera(); + void update(float dt); void render(WorldRenderData& renderData, function<void()> lightWaiter); void adjustLighting(WorldRenderData& renderData); |