Files
Tahgibu/source/core/Frame.hpp
T
2026-09-29 23:35:03 -03:00

29 lines
795 B
C++

#pragma once
#include <optional>
#include "core/Constants.hpp"
namespace tahgibu {
// Un frame de la animación. Solo guarda cuánto dura: usa los FPS base del
// proyecto, salvo que tenga FPS propios (override).
class Frame {
public:
// Fuerza el valor al rango [kMinFps, kMaxFps]. Valores no finitos (NaN, inf)
// devuelven kDefaultFps.
static float clampFps(float fps) noexcept;
bool hasFpsOverride() const noexcept { return fpsOverride_.has_value(); }
void setFpsOverride(float fps) noexcept; // aplica clampFps
void clearFpsOverride() noexcept { fpsOverride_.reset(); }
float effectiveFps(float baseFps) const noexcept;
double durationSeconds(float baseFps) const noexcept;
private:
std::optional<float> fpsOverride_;
};
} // namespace tahgibu