diff --git a/src/texture_cache.cpp b/src/texture_cache.cpp index 9abdf5d9..32c4d4c8 100644 --- a/src/texture_cache.cpp +++ b/src/texture_cache.cpp @@ -3,10 +3,10 @@ #include #include -void TextureEntry::doAnimation(const uint64_t ts_now) { +void TextureEntry::doAnimation(const int64_t ts_now) { if (frame_duration.size() > 1) { // is animation do { // why is this loop so ugly - const uint64_t duration = getDuration(); + const int64_t duration = getDuration(); if (ts_now - timestamp_last_rendered >= duration) { timestamp_last_rendered += duration; next(); @@ -21,7 +21,7 @@ void TextureEntry::doAnimation(const uint64_t ts_now) { TextureEntry generateTestAnim(TextureUploaderI& tu) { TextureEntry new_entry; - new_entry.timestamp_last_rendered = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); + new_entry.timestamp_last_rendered = getNowMS(); new_entry.current_texture = 0; for (size_t i = 0; i < 4; i++) { // hack @@ -55,6 +55,6 @@ TextureEntry generateTestAnim(TextureUploaderI& tu) { } uint64_t getNowMS(void) { - return std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); + return std::chrono::duration_cast(std::chrono::steady_clock::now().time_since_epoch()).count(); } diff --git a/src/texture_cache.hpp b/src/texture_cache.hpp index bbd9a74f..a736264f 100644 --- a/src/texture_cache.hpp +++ b/src/texture_cache.hpp @@ -16,7 +16,7 @@ struct TextureEntry { bool rendered_this_frame {false}; // or flipped for animations - uint64_t timestamp_last_rendered {0}; // ms + int64_t timestamp_last_rendered {0}; // ms TextureEntry(void) = default; TextureEntry(const TextureEntry& other) : @@ -50,7 +50,7 @@ struct TextureEntry { current_texture = (current_texture + 1) % frame_duration.size(); } - void doAnimation(const uint64_t ts_now); + void doAnimation(const int64_t ts_now); template TextureType getID(void) {