76 lines
1.5 KiB
C++
76 lines
1.5 KiB
C++
|
|
#include "StdAfx.h"
|
|||
|
|
#include "EtOcclusionMng.h"
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
CEtOcclusionMng::CEtOcclusionMng(void)
|
|||
|
|
{
|
|||
|
|
m_nAllocCount = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CEtOcclusionMng::~CEtOcclusionMng(void)
|
|||
|
|
{
|
|||
|
|
SAFE_DELETE_PVEC( m_vecOcclusionQuery );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int CEtOcclusionMng::AllocOcclusion()
|
|||
|
|
{
|
|||
|
|
int nAllocIndex;
|
|||
|
|
|
|||
|
|
nAllocIndex = m_nAllocCount;
|
|||
|
|
if( nAllocIndex >= ( int )m_vecOcclusionQuery.size() )
|
|||
|
|
{
|
|||
|
|
CEtOcclusionQuery *pQuery = new CEtOcclusionQuery();
|
|||
|
|
// pQuery->SetAsyncType( true );
|
|||
|
|
m_vecOcclusionQuery.push_back( pQuery );
|
|||
|
|
}
|
|||
|
|
m_nAllocCount++;
|
|||
|
|
|
|||
|
|
return nAllocIndex;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtOcclusionMng::BeginOcclusion( int nIndex )
|
|||
|
|
{
|
|||
|
|
ASSERT( nIndex >= 0 && nIndex < ( int )m_vecOcclusionQuery.size() );
|
|||
|
|
if( nIndex < 0 || nIndex >= ( int )m_vecOcclusionQuery.size() )
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
m_vecOcclusionQuery[ nIndex ]->Begin();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtOcclusionMng::EndOcclusion( int nIndex )
|
|||
|
|
{
|
|||
|
|
ASSERT( nIndex >= 0 && nIndex < ( int )m_vecOcclusionQuery.size() );
|
|||
|
|
if( nIndex < 0 || nIndex >= ( int )m_vecOcclusionQuery.size() )
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
m_vecOcclusionQuery[ nIndex ]->End();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DWORD CEtOcclusionMng::ResultOcclusion( int nIndex )
|
|||
|
|
{
|
|||
|
|
ASSERT( nIndex >= 0 && nIndex < ( int )m_vecOcclusionQuery.size() );
|
|||
|
|
if( nIndex < 0 || nIndex >= ( int )m_vecOcclusionQuery.size() )
|
|||
|
|
{
|
|||
|
|
return 0xffffffff;
|
|||
|
|
}
|
|||
|
|
DWORD dwResult;
|
|||
|
|
if( m_vecOcclusionQuery[ nIndex ]->GetResult( dwResult ) )
|
|||
|
|
{
|
|||
|
|
return dwResult;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
// <20><>Ŭ<EFBFBD><C5AC><EFBFBD><EFBFBD> üũ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD> <20>Ѵ<EFBFBD>.
|
|||
|
|
return 0xffffffff;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEtOcclusionMng::FlushBuffer()
|
|||
|
|
{
|
|||
|
|
SAFE_DELETE_PVEC( m_vecOcclusionQuery );
|
|||
|
|
}
|