diff --git a/include/openspace/engine/syncengine.h b/include/openspace/engine/syncengine.h
index 50daf2248d..3adc64aabb 100644
--- a/include/openspace/engine/syncengine.h
+++ b/include/openspace/engine/syncengine.h
@@ -34,6 +34,10 @@ namespace openspace {
class Syncable;
class SyncBuffer;
+/**
+* Manages a collection of Syncables and ensures they are synchronized
+* over SGCT nodes.
+*/
class SyncEngine {
public:
diff --git a/include/openspace/rendering/renderengine.h b/include/openspace/rendering/renderengine.h
index 680ac01263..a08421b872 100644
--- a/include/openspace/rendering/renderengine.h
+++ b/include/openspace/rendering/renderengine.h
@@ -31,6 +31,9 @@
#include
#include
+#include
+
+
#include
namespace ghoul {
@@ -49,6 +52,7 @@ namespace openspace {
// Forward declare to minimize dependencies
class Camera;
class SyncBuffer;
+
class Scene;
class Renderer;
class RaycasterManager;
@@ -115,9 +119,6 @@ public:
bool doesPerformanceMeasurements() const;
performance::PerformanceManager* performanceManager();
- void serialize(SyncBuffer* syncBuffer);
- void deserialize(SyncBuffer* syncBuffer, bool useDoubleBuffering);
-
float globalBlackOutFactor();
void setGlobalBlackOutFactor(float factor);
void setNAaSamples(int nAaSamples);
@@ -188,12 +189,17 @@ public:
void startFading(int direction, float fadeDuration);
void sortScreenspaceRenderables();
+
// This is temporary until a proper screenspace solution is found ---abock
- struct {
+ struct OnScreenInformation{
glm::vec2 _position;
unsigned int _size;
int _node;
- } _onScreenInformation;
+ };
+
+ SyncData _onScreenInformation;
+
+ std::vector getSyncables();
private:
void setRenderer(std::unique_ptr renderer);
diff --git a/src/engine/openspaceengine.cpp b/src/engine/openspaceengine.cpp
index 598a500e8f..36ef7ff861 100644
--- a/src/engine/openspaceengine.cpp
+++ b/src/engine/openspaceengine.cpp
@@ -510,7 +510,7 @@ bool OpenSpaceEngine::initialize() {
#endif
_syncEngine->addSyncables(Time::ref().getSyncables());
- _syncEngine->addSyncables(_renderEngine->camera()->getSyncables());
+ _syncEngine->addSyncables(_renderEngine->getSyncables());
LINFO("Finished initializing");
return true;
@@ -958,7 +958,7 @@ void OpenSpaceEngine::encode() {
_syncEngine->encode(_syncBuffer.get());
_scriptEngine->serialize(_syncBuffer.get());
- _renderEngine->serialize(_syncBuffer.get());
+ //_renderEngine->serialize(_syncBuffer.get());
_syncBuffer->write();
}
@@ -972,7 +972,7 @@ void OpenSpaceEngine::decode() {
_syncEngine->decode(_syncBuffer.get());
_scriptEngine->deserialize(_syncBuffer.get());
- _renderEngine->deserialize(_syncBuffer.get(), _settingsEngine->useDoubleBuffering());
+ //_renderEngine->deserialize(_syncBuffer.get(), _settingsEngine->useDoubleBuffering());
}
}
diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp
index a8cb7b8e36..5ab34ae81b 100644
--- a/src/rendering/renderengine.cpp
+++ b/src/rendering/renderengine.cpp
@@ -526,20 +526,6 @@ void RenderEngine::setSceneGraph(Scene* sceneGraph) {
_sceneGraph = sceneGraph;
}
-void RenderEngine::serialize(SyncBuffer* syncBuffer) {
- syncBuffer->encode(_onScreenInformation._node);
- syncBuffer->encode(_onScreenInformation._position.x);
- syncBuffer->encode(_onScreenInformation._position.y);
- syncBuffer->encode(_onScreenInformation._size);
-}
-
-void RenderEngine::deserialize(SyncBuffer* syncBuffer, bool useDoubleBuffering) {
- syncBuffer->decode(_onScreenInformation._node);
- syncBuffer->decode(_onScreenInformation._position.x);
- syncBuffer->decode(_onScreenInformation._position.y);
- syncBuffer->decode(_onScreenInformation._size);
-}
-
Camera* RenderEngine::camera() const {
return _mainCamera;
}
@@ -1700,6 +1686,12 @@ void RenderEngine::renderScreenLog() {
}
}
+std::vector RenderEngine::getSyncables(){
+ std::vector syncables = _mainCamera->getSyncables();
+ syncables.push_back(&_onScreenInformation);
+ return syncables;
+}
+
void RenderEngine::sortScreenspaceRenderables() {
std::sort(
_screenSpaceRenderables.begin(),