delta time for loader
This commit is contained in:
@@ -24,6 +24,11 @@ TimePoint::TimePoint(std::string s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TimePoint TimePoint::now()
|
||||||
|
{
|
||||||
|
return TimePoint(boost::posix_time::microsec_clock::local_time());
|
||||||
|
}
|
||||||
|
|
||||||
std::string TimePoint::toString() const
|
std::string TimePoint::toString() const
|
||||||
{
|
{
|
||||||
std::stringstream stream;
|
std::stringstream stream;
|
||||||
@@ -32,4 +37,9 @@ std::string TimePoint::toString() const
|
|||||||
stream.imbue(std::locale(std::locale::classic(), facet));
|
stream.imbue(std::locale(std::locale::classic(), facet));
|
||||||
stream << m_time;
|
stream << m_time;
|
||||||
return stream.str();
|
return stream.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t TimePoint::deltaMS(const TimePoint& other) const
|
||||||
|
{
|
||||||
|
return (m_time - other.m_time).total_milliseconds();
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,8 @@ public:
|
|||||||
//TimePoint(time_t t);
|
//TimePoint(time_t t);
|
||||||
TimePoint(std::string s);
|
TimePoint(std::string s);
|
||||||
|
|
||||||
|
static TimePoint now();
|
||||||
|
|
||||||
std::string toString() const;
|
std::string toString() const;
|
||||||
|
|
||||||
inline bool operator==(const TimePoint& rhs){ return m_time == rhs.m_time; }
|
inline bool operator==(const TimePoint& rhs){ return m_time == rhs.m_time; }
|
||||||
@@ -20,7 +22,9 @@ public:
|
|||||||
inline bool operator<=(const TimePoint& rhs){ return m_time <= rhs.m_time; }
|
inline bool operator<=(const TimePoint& rhs){ return m_time <= rhs.m_time; }
|
||||||
inline bool operator>=(const TimePoint& rhs){ return m_time >= rhs.m_time; }
|
inline bool operator>=(const TimePoint& rhs){ return m_time >= rhs.m_time; }
|
||||||
|
|
||||||
inline float operator-(const TimePoint& rhs){ return (m_time - rhs.m_time).total_milliseconds() / 1000.0f; }
|
inline float operator-(const TimePoint& rhs){ return deltaMS(rhs) / 1000.0f; }
|
||||||
|
|
||||||
|
size_t deltaMS(const TimePoint& other) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::posix_time::ptime m_time;
|
boost::posix_time::ptime m_time;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
TimePoint utility::durationStart()
|
TimePoint utility::durationStart()
|
||||||
{
|
{
|
||||||
return TimePoint(boost::posix_time::microsec_clock::local_time());
|
return TimePoint::now();
|
||||||
}
|
}
|
||||||
|
|
||||||
float utility::duration(const TimePoint& start)
|
float utility::duration(const TimePoint& start)
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ QtOverlay::QtOverlay(QWidget* parent)
|
|||||||
|
|
||||||
void QtOverlay::start()
|
void QtOverlay::start()
|
||||||
{
|
{
|
||||||
|
m_timePoint = TimePoint::now();
|
||||||
m_timer->start(FRAME_DELAY_MS);
|
m_timer->start(FRAME_DELAY_MS);
|
||||||
show();
|
show();
|
||||||
}
|
}
|
||||||
@@ -46,7 +47,16 @@ void QtOverlay::stop()
|
|||||||
|
|
||||||
void QtOverlay::animate()
|
void QtOverlay::animate()
|
||||||
{
|
{
|
||||||
m_count += FRAME_DELAY_MS;
|
TimePoint t = TimePoint::now();
|
||||||
|
size_t dt = t.deltaMS(m_timePoint);
|
||||||
|
|
||||||
|
if (dt < 5)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_timePoint = t;
|
||||||
|
m_count += dt;
|
||||||
|
|
||||||
QPoint center = geometry().center();
|
QPoint center = geometry().center();
|
||||||
update(QRect(center.x() - m_size / 2, center.y() - m_size / 2, m_size, m_size));
|
update(QRect(center.x() - m_size / 2, center.y() - m_size / 2, m_size, m_size));
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
#include "qt/utility/QtThreadedFunctor.h"
|
#include "qt/utility/QtThreadedFunctor.h"
|
||||||
|
#include "utility/TimePoint.h"
|
||||||
|
|
||||||
class QTimer;
|
class QTimer;
|
||||||
|
|
||||||
@@ -49,6 +50,8 @@ private:
|
|||||||
|
|
||||||
size_t m_count;
|
size_t m_count;
|
||||||
size_t m_size;
|
size_t m_size;
|
||||||
|
|
||||||
|
TimePoint m_timePoint;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user