DragonNest/Common/EternityEngine/LostDeviceProcess.cpp

65 lines
2.8 KiB
C++
Raw Normal View History

2024-12-20 16:56:44 +08:00
<EFBFBD><EFBFBD>#include "StdAfx.h"
#include "LostDeviceProcess.h"
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
#endif
std::vector< CLostDeviceProcess * > CLostDeviceProcess::s_vecLostDevice;
CSyncLock CLostDeviceProcess::s_SyncLock;
extern CSyncLock *g_pEtRenderLock;
CLostDeviceProcess::CLostDeviceProcess(void)
{
ScopeLock<CSyncLock> Lock(s_SyncLock);
s_vecLostDevice.push_back( this );
}
CLostDeviceProcess::~CLostDeviceProcess(void)
{
ScopeLock<CSyncLock> Lock(s_SyncLock);
int i;
#ifndef _FINAL_BUILD
// <EFBFBD>T<EFBFBD> <EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ǵ<EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>(<EFBFBD> #<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. by mapping
int nLostCount = ( int )s_vecLostDevice.size();
#endif
for( i = 0; i < ( int )s_vecLostDevice.size(); i++ )
{
if( s_vecLostDevice[ i ] == this ) {
s_vecLostDevice.erase( s_vecLostDevice.begin() + i );
break;
}
}
}
void CLostDeviceProcess::OnLostDeviceList()
{
ScopeLock<CSyncLock> Lock1(g_pEtRenderLock);
ScopeLock<CSyncLock> Lock2(s_SyncLock);
int i;
for( i = 0; i < ( int )s_vecLostDevice.size(); i++ )
{
if( s_vecLostDevice[ i ] )
{
s_vecLostDevice[ i ]->OnLostDevice();
}
}
}
void CLostDeviceProcess::OnResetDeviceList()
{
ScopeLock<CSyncLock> Lock1(g_pEtRenderLock);
ScopeLock<CSyncLock> Lock2(s_SyncLock);
int i;
for( i = 0; i < ( int )s_vecLostDevice.size(); i++ )
{
if( s_vecLostDevice[ i ] )
{
s_vecLostDevice[ i ]->OnResetDevice();
}
}
}