Preparando la interfaz
This commit is contained in:
commit
66bedbb5f1
17 files changed
+876
No files matched your search
@@ -0,0 +1,28 @@
|
||||
#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
|
||||
Reference in new issue
Block a user