1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-10 21:40:15 +00:00

Fix the frame update not getting called on the first frame

This commit is contained in:
scrawl 2013-05-13 20:08:12 +02:00
parent e2620a1edf
commit ac4fa1941d
3 changed files with 13 additions and 1 deletions

View File

@ -428,6 +428,10 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
MWBase::Environment::get().getWorld()->changeToInteriorCell (mCellName, pos);
}
Ogre::FrameEvent event;
event.timeSinceLastEvent = 0;
event.timeSinceLastFrame = 0;
frameRenderingQueued(event);
mOgre->getRoot()->addFrameListener (this);
// scripts

View File

@ -18,7 +18,8 @@ OcclusionQuery::OcclusionQuery(OEngine::Render::OgreRenderer* renderer, SceneNod
mSunTotalAreaQuery(0), mSunVisibleAreaQuery(0), mActiveQuery(0),
mDoQuery(0), mSunVisibility(0),
mWasVisible(false),
mActive(false)
mActive(false),
mFirstFrame(true)
{
mRendering = renderer;
mSunNode = sunNode;
@ -147,6 +148,12 @@ void OcclusionQuery::renderQueueEnded(uint8 queueGroupId, const String& invocati
void OcclusionQuery::update(float duration)
{
if (mFirstFrame)
{
// GLHardwareOcclusionQuery::isStillOutstanding doesn't seem to like getting called when nothing has been rendered yet
mFirstFrame = false;
return;
}
if (!mSupported) return;
mWasVisible = false;

View File

@ -59,6 +59,7 @@ namespace MWRender
bool mWasVisible;
bool mActive;
bool mFirstFrame;
bool mSupported;
bool mDoQuery;