mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-07 04:00:37 -06:00
Added configuration switch "DisableRenderingOnMaster" to disable rendering on the master node
This commit is contained in:
@@ -78,6 +78,8 @@ public:
|
||||
void setGlobalOpacity(float opacity);
|
||||
|
||||
void setSGCTRenderStatistics(bool visible);
|
||||
|
||||
void setDisableRenderingOnMaster(bool enabled);
|
||||
|
||||
/**
|
||||
* Returns the Lua library that contains all Lua functions available to affect the
|
||||
@@ -120,6 +122,8 @@ private:
|
||||
|
||||
bool _visualizeABuffer;
|
||||
ABufferVisualizer* _visualizer;
|
||||
|
||||
bool _disableMasterRendering = false;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
@@ -55,6 +55,7 @@ namespace configurationmanager {
|
||||
const std::string keyLogLevel = "Logging.LogLevel";
|
||||
const std::string keyLogImmediateFlush = "Logging.ImmediateFlush";
|
||||
const std::string keyLogs = "Logging.Logs";
|
||||
const std::string keyDisableMasterRendering = "DisableRenderingOnMaster";
|
||||
} // namespace configurationmanager
|
||||
|
||||
namespace scenegraph {
|
||||
|
||||
@@ -288,6 +288,11 @@ bool OpenSpaceEngine::initialize() {
|
||||
_scriptEngine->writeDocumentation(luaDocumentationFile, luaDocumentationType);
|
||||
}
|
||||
|
||||
bool disableMasterRendering = false;
|
||||
configurationManager()->getValue(
|
||||
constants::configurationmanager::keyDisableMasterRendering, disableMasterRendering);
|
||||
_renderEngine->setDisableRenderingOnMaster(disableMasterRendering);
|
||||
|
||||
|
||||
// Load scenegraph
|
||||
SceneGraph* sceneGraph = new SceneGraph;
|
||||
|
||||
@@ -470,24 +470,27 @@ namespace openspace {
|
||||
//Is this really necessary to store? @JK
|
||||
_mainCamera->setViewProjectionMatrix(projectionMatrix * viewMatrix);
|
||||
|
||||
// render the scene starting from the root node
|
||||
if (!_visualizeABuffer) {
|
||||
_abuffer->preRender();
|
||||
_sceneGraph->render({
|
||||
*_mainCamera,
|
||||
psc(),
|
||||
_doPerformanceMeasurements
|
||||
});
|
||||
_abuffer->postRender();
|
||||
// We only want to skip the rendering if we are the master and we want to
|
||||
// disable the rendering for the master
|
||||
if (!(OsEng.isMaster() && _disableMasterRendering)) {
|
||||
if (!_visualizeABuffer) {
|
||||
_abuffer->preRender();
|
||||
_sceneGraph->render({
|
||||
*_mainCamera,
|
||||
psc(),
|
||||
_doPerformanceMeasurements
|
||||
});
|
||||
_abuffer->postRender();
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
_abuffer->resolve();
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
else {
|
||||
_visualizer->render();
|
||||
}
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
_abuffer->resolve();
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
else {
|
||||
_visualizer->render();
|
||||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
|
||||
@@ -923,4 +926,8 @@ void RenderEngine::setSGCTRenderStatistics(bool visible) {
|
||||
_sgctRenderStatisticsVisible = visible;
|
||||
}
|
||||
|
||||
void RenderEngine::setDisableRenderingOnMaster(bool enabled) {
|
||||
_disableMasterRendering = enabled;
|
||||
}
|
||||
|
||||
}// namespace openspace
|
||||
|
||||
Reference in New Issue
Block a user