From c0556f76fc5c8271c2eaa7ca91ad1c92c691d8bc Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 12 Jul 2023 22:57:53 +0200 Subject: Δt calculation and usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/World/Clouds.cpp | 5 +++-- src/World/Clouds.hpp | 3 ++- src/World/World.cpp | 11 +++-------- src/World/World.hpp | 2 -- 4 files changed, 8 insertions(+), 13 deletions(-) (limited to 'src/World') diff --git a/src/World/Clouds.cpp b/src/World/Clouds.cpp index 36f2441..2e0f76c 100644 --- a/src/World/Clouds.cpp +++ b/src/World/Clouds.cpp @@ -1,4 +1,5 @@ #include "Clouds.hpp" +#include "../Time.hpp" #include "../Math/MVP.hpp" #include "../Math/Perlin.hpp" #include "../Math/AABB.hpp" @@ -33,8 +34,8 @@ Clouds::Clouds(Real ascept, Real fov, Real near, Real far, Vector<3, F32> sky_co m_program.unbind(); } -void Clouds::update(U64 time) { - m_x_offset += time / 5000.0; +void Clouds::update(const Time& time) { + m_x_offset += 5.0 * time.delta(); } void Clouds::render(const GFX::Camera& camera) const { diff --git a/src/World/Clouds.hpp b/src/World/Clouds.hpp index b2d5a10..35e7155 100644 --- a/src/World/Clouds.hpp +++ b/src/World/Clouds.hpp @@ -1,5 +1,6 @@ #pragma once +#include "../Time.hpp" #include "../GFX/Binder.hpp" #include "../GFX/Shading/Program.hpp" #include "../GFX/Shading/Uniform.hpp" @@ -11,7 +12,7 @@ class Clouds { public: Clouds(Real ascept, Real fov, Real near, Real far, Vector<3, F32> sky_color, Vector<3, F32> sun_direction); - void update(U64 time); + void update(const Time& time); void render(const GFX::Camera& camera) const; private: constexpr static U32 CloudMatrixSize = 128; diff --git a/src/World/World.cpp b/src/World/World.cpp index de80afe..8685e8a 100644 --- a/src/World/World.cpp +++ b/src/World/World.cpp @@ -1,5 +1,6 @@ #include "World.hpp" #include "Generation/ChunkMeshing.hpp" +#include "../Time.hpp" namespace MC::World { @@ -71,9 +72,9 @@ void World::load_finished_chunks_from_queue() { void World::request_generation(ChunkIndex index, Real priority) { m_queue.add(index, priority, [=]() -> GenerationResult { - auto start = timestamp(); + auto start = Time::now(); auto chunk = m_generator.generate(index.x, index.y); - return {chunk, timestamp() - start}; + return {chunk, Time::now() - start}; }); } @@ -89,12 +90,6 @@ World::ChunkData& World::get(ChunkIndex index) { return entry->second; } -U64 World::timestamp() { - auto time = std::chrono::system_clock::now().time_since_epoch(); - auto ms = std::chrono::duration_cast(time); - return ms.count(); -} - void World::try_to_create_mesh_for_chunk(ChunkData& data) { auto index = data.index; diff --git a/src/World/World.hpp b/src/World/World.hpp index ef8b7af..8a11dbe 100644 --- a/src/World/World.hpp +++ b/src/World/World.hpp @@ -47,8 +47,6 @@ private: ChunkData& get(ChunkIndex index); - static U64 timestamp(); - U8 m_view_distance_radius = 10; struct GenerationResult { -- cgit 1.4.1