mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-20 04:34:48 +00:00
prevents an infinite while loop by putting a cap of 4MS on occlusion queries.
This commit is contained in:
parent
8390c4159f
commit
4f3be25699
|
|
@ -124,9 +124,16 @@ GFXD3D9OcclusionQuery::OcclusionQueryStatus GFXD3D9OcclusionQuery::getStatus( bo
|
|||
DWORD dwOccluded = 0;
|
||||
|
||||
if ( block )
|
||||
{
|
||||
{
|
||||
while( ( hRes = mQuery->GetData( &dwOccluded, sizeof(DWORD), D3DGETDATA_FLUSH ) ) == S_FALSE )
|
||||
;
|
||||
{
|
||||
//If we're stalled out, proceed with worst-case scenario -BJR
|
||||
if(GFX->mFrameTime->getElapsedMs()>4)
|
||||
{
|
||||
this->end();
|
||||
return NotOccluded;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -804,7 +804,7 @@ inline bool GFXDevice::beginScene()
|
|||
|
||||
// Send the start of frame signal.
|
||||
getDeviceEventSignal().trigger( GFXDevice::deStartOfFrame );
|
||||
|
||||
mFrameTime->reset();
|
||||
return beginSceneInternal();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@
|
|||
#include "math/util/frustum.h"
|
||||
#endif
|
||||
|
||||
#ifndef _PLATFORM_PLATFORMTIMER_H_
|
||||
#include "platform/platformTimer.h"
|
||||
#endif
|
||||
|
||||
class FontRenderBatcher;
|
||||
class GFont;
|
||||
|
|
@ -743,6 +746,7 @@ public:
|
|||
virtual void endScene();
|
||||
virtual void beginField();
|
||||
virtual void endField();
|
||||
PlatformTimer *mFrameTime;
|
||||
|
||||
virtual GFXTexHandle & getFrontBuffer(){ return mFrontBuffer[mCurrentFrontBufferIdx]; }
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue