From 79d8bb40c593f6956b0562eb6c3c57f63462878c Mon Sep 17 00:00:00 2001 From: Joakim Kilby Date: Tue, 17 Feb 2015 08:21:49 +0100 Subject: [PATCH] added preSynchronization call to renderEngine in openspace engine. added call to updateCamera for current focus node. (Note that this causes master to be 1 frame ahead of slaves and should be changed) --- src/engine/openspaceengine.cpp | 6 ++++-- src/rendering/renderengine.cpp | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/engine/openspaceengine.cpp b/src/engine/openspaceengine.cpp index e980951dde..07246f784a 100644 --- a/src/engine/openspaceengine.cpp +++ b/src/engine/openspaceengine.cpp @@ -496,9 +496,11 @@ void OpenSpaceEngine::preSynchronization() { const double dt = sgct::Engine::instance()->getDt(); _interactionHandler.update(dt); - _interactionHandler.lockControls(); + //_interactionHandler.lockControls(); Time::ref().advanceTime(dt); + + _renderEngine.preSynchronization(); } } @@ -538,7 +540,7 @@ void OpenSpaceEngine::render() { void OpenSpaceEngine::postDraw() { if (sgct::Engine::instance()->isMaster()) - _interactionHandler.unlockControls(); + //_interactionHandler.unlockControls(); _renderEngine.postDraw(); } diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp index fef98db20f..0aeef5e88a 100644 --- a/src/rendering/renderengine.cpp +++ b/src/rendering/renderengine.cpp @@ -335,6 +335,8 @@ void RenderEngine::postSynchronizationPreDraw() // clear the abuffer before rendering the scene _abuffer->clear(); + //Allow focus node to update camera (enables camera-following) + //FIX LATER: THIS CAUSES MASTER NODE TO BE ONE FRAME AHEAD OF SLAVES if (const SceneGraphNode* node = OsEng.ref().interactionHandler().focusNode()){ node->updateCamera(_mainCamera); }