28 lines
699 B
C++
28 lines
699 B
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
#include <algorithm>
|
|
|
|
class DeltaTimer {
|
|
public:
|
|
DeltaTimer() noexcept;
|
|
|
|
// Calcula delta en segundos y actualiza el contador interno
|
|
float tick() noexcept;
|
|
|
|
// Devuelve el delta estimado desde el último tick sin actualizar el contador
|
|
float peek() const noexcept;
|
|
|
|
// Reinicia el contador al valor actual o al valor pasado (en performance counter ticks)
|
|
void reset(Uint64 counter = 0) noexcept;
|
|
|
|
// Escala el tiempo retornado por tick/peek, por defecto 1.0f
|
|
void setTimeScale(float scale) noexcept;
|
|
float getTimeScale() const noexcept;
|
|
|
|
private:
|
|
Uint64 last_counter_;
|
|
double perf_freq_;
|
|
float time_scale_;
|
|
};
|