mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-27 07:18:57 -06:00
Added boolean to OpenSpaceEngine declaring if this node is the master or not.
made sure it's set in the right place in main file. removed all references to sgct::engine::instance()->isMaster() and replaced with calls to openspaceengine isMaster() function.
This commit is contained in:
@@ -59,7 +59,8 @@ public:
|
||||
|
||||
static bool isInitialized();
|
||||
bool initialize();
|
||||
|
||||
bool isMaster();
|
||||
void setMaster(bool master);
|
||||
static bool findConfiguration(std::string& filename);
|
||||
|
||||
// Guaranteed to return a valid pointer
|
||||
@@ -110,6 +111,7 @@ private:
|
||||
LuaConsole* _console;
|
||||
gui::GUI* _gui;
|
||||
double _dt;
|
||||
bool _isMaster;
|
||||
|
||||
SyncBuffer* _syncBuffer;
|
||||
};
|
||||
|
||||
@@ -93,6 +93,7 @@ OpenSpaceEngine::OpenSpaceEngine(std::string programName)
|
||||
, _console(new LuaConsole)
|
||||
, _gui(new gui::GUI)
|
||||
, _syncBuffer(nullptr)
|
||||
, _isMaster(false)
|
||||
{
|
||||
SpiceManager::initialize();
|
||||
Time::initialize();
|
||||
@@ -530,9 +531,17 @@ bool OpenSpaceEngine::initializeGL() {
|
||||
return success;
|
||||
}
|
||||
|
||||
bool OpenSpaceEngine::isMaster(){
|
||||
return _isMaster;
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::setMaster(bool master){
|
||||
_isMaster = master;
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::preSynchronization() {
|
||||
FileSys.triggerFilesystemEvents();
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
//const double dt = sgct::Engine::instance()->getDt();
|
||||
const double dt = sgct::Engine::instance()->getAvgDt();
|
||||
|
||||
@@ -552,7 +561,7 @@ void OpenSpaceEngine::postSynchronizationPreDraw() {
|
||||
_scriptEngine->postSynchronizationPreDraw();
|
||||
_renderEngine->postSynchronizationPreDraw();
|
||||
|
||||
if (sgct::Engine::instance()->isMaster() && _gui->isEnabled()) {
|
||||
if (_isMaster && _gui->isEnabled()) {
|
||||
double posX, posY;
|
||||
sgct::Engine::instance()->getMousePos(0, &posX, &posY);
|
||||
|
||||
@@ -571,10 +580,10 @@ void OpenSpaceEngine::postSynchronizationPreDraw() {
|
||||
void OpenSpaceEngine::render(const glm::mat4 &projectionMatrix, const glm::mat4 &viewMatrix) {
|
||||
_renderEngine->render(projectionMatrix, viewMatrix);
|
||||
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
// If currently writing a command, render it to screen
|
||||
sgct::SGCTWindow* w = sgct::Engine::instance()->getActiveWindowPtr();
|
||||
if (sgct::Engine::instance()->isMaster() && !w->isUsingFisheyeRendering() && _console->isVisible()) {
|
||||
if (_isMaster && !w->isUsingFisheyeRendering() && _console->isVisible()) {
|
||||
_console->render();
|
||||
}
|
||||
|
||||
@@ -584,14 +593,14 @@ void OpenSpaceEngine::render(const glm::mat4 &projectionMatrix, const glm::mat4
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::postDraw() {
|
||||
if (sgct::Engine::instance()->isMaster())
|
||||
if (_isMaster)
|
||||
//_interactionHandler.unlockControls();
|
||||
|
||||
_renderEngine->postDraw();
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::keyboardCallback(int key, int action) {
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
if (_gui->isEnabled()) {
|
||||
bool isConsumed = _gui->keyCallback(key, action);
|
||||
if (isConsumed)
|
||||
@@ -611,7 +620,7 @@ void OpenSpaceEngine::keyboardCallback(int key, int action) {
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::charCallback(unsigned int codepoint) {
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
if (_gui->isEnabled()) {
|
||||
bool isConsumed = _gui->charCallback(codepoint);
|
||||
if (isConsumed)
|
||||
@@ -625,7 +634,7 @@ void OpenSpaceEngine::charCallback(unsigned int codepoint) {
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::mouseButtonCallback(int key, int action) {
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
if (_gui->isEnabled()) {
|
||||
bool isConsumed = _gui->mouseButtonCallback(key, action);
|
||||
if (isConsumed && action != SGCT_RELEASE)
|
||||
@@ -637,13 +646,13 @@ void OpenSpaceEngine::mouseButtonCallback(int key, int action) {
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::mousePositionCallback(int x, int y) {
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
_interactionHandler->mousePositionCallback(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
void OpenSpaceEngine::mouseScrollWheelCallback(int pos) {
|
||||
if (sgct::Engine::instance()->isMaster()) {
|
||||
if (_isMaster) {
|
||||
if (_gui->isEnabled()) {
|
||||
bool isConsumed = _gui->mouseWheelCallback(pos);
|
||||
if (isConsumed)
|
||||
|
||||
20
src/main.cpp
20
src/main.cpp
@@ -1,3 +1,4 @@
|
||||
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
@@ -109,6 +110,9 @@ int main(int argc, char** argv)
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
//is this node the master? (must be set after call to _sgctEngine->init())
|
||||
OsEng.ref().setMaster(_sgctEngine->isMaster());
|
||||
|
||||
// Main loop
|
||||
LDEBUG("Starting rendering loop");
|
||||
_sgctEngine->render();
|
||||
@@ -155,9 +159,9 @@ void mainRenderFunc()
|
||||
glm::mat4 userMatrix = glm::translate(glm::mat4(1.f), _sgctEngine->getDefaultUserPtr()->getPos());
|
||||
glm::mat4 sceneMatrix = _sgctEngine->getModelMatrix();
|
||||
glm::mat4 viewMatrix = _sgctEngine->getActiveViewMatrix() * userMatrix;
|
||||
|
||||
|
||||
//dont shift nav-direction on master, makes it very tricky to navigate @JK
|
||||
if (!_sgctEngine->isMaster()){
|
||||
if (!OsEng.ref().isMaster()){
|
||||
viewMatrix = viewMatrix * sceneMatrix;
|
||||
}
|
||||
|
||||
@@ -172,39 +176,39 @@ void mainPostDrawFunc()
|
||||
|
||||
void mainExternalControlCallback(const char* receivedChars, int size)
|
||||
{
|
||||
if (_sgctEngine->isMaster())
|
||||
if (OsEng.ref().isMaster())
|
||||
OsEng.externalControlCallback(receivedChars, size, 0);
|
||||
}
|
||||
|
||||
void mainKeyboardCallback(int key, int action)
|
||||
{
|
||||
if (_sgctEngine->isMaster())
|
||||
if (OsEng.ref().isMaster())
|
||||
OsEng.keyboardCallback(key, action);
|
||||
}
|
||||
|
||||
void mainMouseButtonCallback(int key, int action)
|
||||
{
|
||||
if (_sgctEngine->isMaster())
|
||||
if (OsEng.ref().isMaster())
|
||||
OsEng.mouseButtonCallback(key, action);
|
||||
}
|
||||
|
||||
void mainMousePosCallback(double x, double y)
|
||||
{
|
||||
// TODO use float instead
|
||||
if (_sgctEngine->isMaster())
|
||||
if (OsEng.ref().isMaster())
|
||||
OsEng.mousePositionCallback(static_cast<int>(x), static_cast<int>(y));
|
||||
}
|
||||
|
||||
void mainMouseScrollCallback(double posX, double posY)
|
||||
{
|
||||
// TODO use float instead
|
||||
if (_sgctEngine->isMaster())
|
||||
if (OsEng.ref().isMaster())
|
||||
OsEng.mouseScrollWheelCallback(static_cast<int>(posY));
|
||||
}
|
||||
|
||||
void mainCharCallback(unsigned int codepoint) {
|
||||
|
||||
if (_sgctEngine->isMaster())
|
||||
if (OsEng.ref().isMaster())
|
||||
OsEng.charCallback(codepoint);
|
||||
}
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ namespace openspace {
|
||||
#if 1
|
||||
|
||||
// Print some useful information on the master viewport
|
||||
if (sgct::Engine::instance()->isMaster() && !w->isUsingFisheyeRendering()) {
|
||||
if (OsEng.ref().isMaster() && !w->isUsingFisheyeRendering()) {
|
||||
|
||||
// TODO: Adjust font_size properly when using retina screen
|
||||
const int font_size_mono = 10;
|
||||
|
||||
Reference in New Issue
Block a user