66 lines
1.2 KiB
C++
66 lines
1.2 KiB
C++
#include "StdAfx.h"
|
|
#include "GrpColorInstance.h"
|
|
#include "../eterBase/Timer.h"
|
|
|
|
CGraphicColorInstance::CGraphicColorInstance()
|
|
{
|
|
m_baseTime=0;
|
|
m_blendTime=0;
|
|
}
|
|
|
|
CGraphicColorInstance::~CGraphicColorInstance()
|
|
{
|
|
}
|
|
|
|
void CGraphicColorInstance::Clear()
|
|
{
|
|
m_srcColor.Clear();
|
|
m_dstColor.Clear();
|
|
m_curColor.Clear();
|
|
|
|
m_baseTime=0;
|
|
m_blendTime=0;
|
|
}
|
|
|
|
void CGraphicColorInstance::SetColorReference(const CGraphicColor & c_rSrcColor)
|
|
{
|
|
m_srcColor = c_rSrcColor;
|
|
m_dstColor = c_rSrcColor;
|
|
m_curColor = c_rSrcColor;
|
|
}
|
|
|
|
void CGraphicColorInstance::BlendColorReference(DWORD blendTime, const CGraphicColor& c_rDstColor)
|
|
{
|
|
m_baseTime = GetCurrentTime();
|
|
m_blendTime = blendTime;
|
|
|
|
m_srcColor = m_curColor;
|
|
m_dstColor = c_rDstColor;
|
|
}
|
|
|
|
void CGraphicColorInstance::Update()
|
|
{
|
|
DWORD curTime = GetCurrentTime();
|
|
DWORD elapsedTime = curTime - m_baseTime;
|
|
|
|
if (elapsedTime < m_blendTime)
|
|
{
|
|
m_curColor.Blend(elapsedTime/float(m_blendTime), m_srcColor, m_dstColor);
|
|
}
|
|
else
|
|
{
|
|
m_curColor=m_dstColor;
|
|
}
|
|
}
|
|
|
|
DWORD CGraphicColorInstance::GetCurrentTime()
|
|
{
|
|
return CTimer::Instance().GetCurrentMillisecond();
|
|
}
|
|
|
|
const CGraphicColor& CGraphicColorInstance::GetCurrentColorReference() const
|
|
{
|
|
return m_curColor;
|
|
}
|
|
|