Files
Webcam/include/engine/core/clock.h
2026-06-22 11:49:35 +02:00

71 lines
1.4 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#ifndef __NCLOCK__
#define __NCLOCK__
#include "memory/nshared_ptr.h"
#include "container/smart_median_average.h"
namespace GS {
namespace Core {
/*!
@short Clock
@author Emmanuel Julien (ejulien@nworks.fr)
*/
class Clock : public SharedObject
{
bool pause;
int fixed_delta; ///< Fixed dt (ms).
int _gtick, gtick; ///< System's global tick counter.
int clock_scale; ///< System clock scale factor (x1000).
int dt_clock; ///< Delta frame.
int dt_error;
SmartMedianAverage <int> dt_clock_filter;
public:
void Reset();
void Update();
void Pause(bool = true);
/// Sync to current hardware clock (skipping unaccounted dt_clock).
void EatDeltaClock();
float Getf() const;
float GetDeltaf() const;
void SetScalef(float = 1.f);
float GetScalef() const;
/// Set fixed delta clock in seconds.
void SetFixedDeltaFramef(float = -1.0);
int GetDelta() const { return dt_clock; }
void SetScale(int k = 1000) { clock_scale = k; }
int GetScale() const { return clock_scale; }
int Get() const { return gtick; }
Clock();
};
typedef SharedPtr <Clock> sClock;
} // Core
} // GS
#endif // __NCLOCK__