Initial commit: client source
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#include "StdAfx.h"
|
||||
#include "GrpRatioInstance.h"
|
||||
#include "../eterBase/Timer.h"
|
||||
|
||||
CGraphicRatioInstance::CGraphicRatioInstance()
|
||||
{
|
||||
m_baseTime = 0;
|
||||
m_blendTime = 0;
|
||||
}
|
||||
|
||||
CGraphicRatioInstance::~CGraphicRatioInstance()
|
||||
{
|
||||
}
|
||||
|
||||
void CGraphicRatioInstance::Clear()
|
||||
{
|
||||
m_curRatio = 0.0f;
|
||||
m_srcRatio = 0.0f;
|
||||
m_dstRatio = 0.0f;
|
||||
|
||||
m_baseTime = 0;
|
||||
m_blendTime = 0;
|
||||
}
|
||||
|
||||
void CGraphicRatioInstance::SetRatioReference(const float& c_rRatio)
|
||||
{
|
||||
m_curRatio = c_rRatio;
|
||||
m_srcRatio = m_curRatio;
|
||||
m_dstRatio = m_curRatio;
|
||||
}
|
||||
|
||||
void CGraphicRatioInstance::BlendRatioReference(DWORD blendTime, const float& c_rDstRatio)
|
||||
{
|
||||
m_baseTime = GetTime();
|
||||
m_blendTime = blendTime;
|
||||
|
||||
m_srcRatio = m_curRatio;
|
||||
m_dstRatio = c_rDstRatio;
|
||||
}
|
||||
|
||||
void CGraphicRatioInstance::Update()
|
||||
{
|
||||
DWORD curTime = GetTime();
|
||||
DWORD elapsedTime = curTime - m_baseTime;
|
||||
|
||||
if (elapsedTime < m_blendTime)
|
||||
{
|
||||
float diff = m_dstRatio - m_srcRatio;
|
||||
float rate = elapsedTime / float(m_blendTime);
|
||||
m_curRatio = diff * rate + m_srcRatio;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_curRatio = m_dstRatio;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD CGraphicRatioInstance::GetTime()
|
||||
{
|
||||
return CTimer::Instance().GetCurrentMillisecond();
|
||||
}
|
||||
|
||||
const float& CGraphicRatioInstance::GetCurrentRatioReference() const
|
||||
{
|
||||
return m_curRatio;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user