mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-02 09:41:13 -06:00
106 lines
3.5 KiB
Diff
106 lines
3.5 KiB
Diff
diff --git a/include/openspace/rendering/renderengine.h b/include/openspace/rendering/renderengine.h
|
|
index c3d8c9e..8f70641 100644
|
|
--- a/include/openspace/rendering/renderengine.h
|
|
+++ b/include/openspace/rendering/renderengine.h
|
|
@@ -36,6 +36,7 @@ class SceneGraph;
|
|
class ABuffer;
|
|
class ABufferVisualizer;
|
|
class ScreenLog;
|
|
+class GUI;
|
|
|
|
class RenderEngine {
|
|
public:
|
|
@@ -78,6 +79,7 @@ private:
|
|
SceneGraph* _sceneGraph;
|
|
ABuffer* _abuffer;
|
|
ScreenLog* _log;
|
|
+ GUI* _gui;
|
|
|
|
bool _showInfo;
|
|
bool _showScreenLog;
|
|
diff --git a/scripts/bind_keys.lua b/scripts/bind_keys.lua
|
|
index a0f9442..08a3254 100644
|
|
--- a/scripts/bind_keys.lua
|
|
+++ b/scripts/bind_keys.lua
|
|
@@ -17,5 +17,6 @@ openspace.bindKey("f5", "loadKeyBindings()")
|
|
|
|
openspace.bindKey("U", "openspace.distance(-interaction_speed * openspace.dt(), 13.0)")
|
|
openspace.bindKey("J", "openspace.distance(interaction_speed * openspace.dt(), 13.0)")
|
|
+openspace.bindKey("K", "openspace.distance(interaction_speed * openspace.dt(), 20.0)")
|
|
|
|
openspace.bindKey("PRINT_SCREEN", "openspace.takeScreenshot()")
|
|
\ No newline at end of file
|
|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
|
index 0dc32c8..4be7f7a 100644
|
|
--- a/src/CMakeLists.txt
|
|
+++ b/src/CMakeLists.txt
|
|
@@ -130,6 +130,11 @@ source_group(Interface FILES ${INTERFACE_SOURCE} ${INTERFACE_HEADER})
|
|
include_directories(${HEADER_ROOT_DIR})
|
|
include_directories(${GHOUL_ROOT_DIR}/ext/boost)
|
|
|
|
+include_directories(${CMAKE_SOURCE_DIR}/ext/imgui)
|
|
+set(OPENSPACE_HEADER ${OPENSPACE_HEADER} ${CMAKE_SOURCE_DIR}/ext/imgui/imgui.h)
|
|
+set(OPENSPACE_SOURCE ${OPENSPACE_SOURCE} ${CMAKE_SOURCE_DIR}/ext/imgui/imgui.cpp)
|
|
+source_group(ext\\imgui FILES ${CMAKE_SOURCE_DIR}/ext/imgui/imgui.h ${CMAKE_SOURCE_DIR}/ext/imgui/imgui.cpp)
|
|
+
|
|
if (APPLE)
|
|
add_definitions(-D__APPLE__)
|
|
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
|
|
diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp
|
|
index 9317b0e..93735eb 100644
|
|
--- a/src/rendering/renderengine.cpp
|
|
+++ b/src/rendering/renderengine.cpp
|
|
@@ -30,6 +30,7 @@
|
|
#include <openspace/abuffer/abufferSingleLinked.h>
|
|
#include <openspace/abuffer/abufferfixed.h>
|
|
#include <openspace/abuffer/abufferdynamic.h>
|
|
+#include <openspace/engine/gui.h>
|
|
#include <openspace/engine/openspaceengine.h>
|
|
#include <openspace/scenegraph/scenegraph.h>
|
|
#include <openspace/util/camera.h>
|
|
@@ -38,7 +39,6 @@
|
|
#include <openspace/util/screenlog.h>
|
|
#include <openspace/util/spicemanager.h>
|
|
#include <openspace/util/syncbuffer.h>
|
|
-
|
|
#include <ghoul/filesystem/filesystem.h>
|
|
#include <ghoul/lua/lua_helper.h>
|
|
|
|
@@ -111,6 +111,7 @@ RenderEngine::RenderEngine()
|
|
, _sceneGraph(nullptr)
|
|
, _abuffer(nullptr)
|
|
, _log(nullptr)
|
|
+ , _gui(nullptr)
|
|
, _showInfo(true)
|
|
, _showScreenLog(true)
|
|
, _takeScreenshot(false)
|
|
@@ -241,6 +242,11 @@ bool RenderEngine::initializeGL()
|
|
|
|
_visualizer = new ABufferVisualizer();
|
|
|
|
+ int x,y;
|
|
+ sgct::Engine::instance()->getActiveViewportSize(x, y);
|
|
+ _gui = new GUI(glm::vec2(glm::ivec2(x,y)));
|
|
+ _gui->initializeGL();
|
|
+
|
|
// successful init
|
|
return true;
|
|
}
|
|
@@ -330,6 +336,16 @@ void RenderEngine::render()
|
|
else {
|
|
_visualizer->render();
|
|
}
|
|
+
|
|
+ double posX, posY;
|
|
+ sgct::Engine::instance()->getMousePos(0, &posX, &posY);
|
|
+
|
|
+ int button0 = sgct::Engine::instance()->getMouseButton(0, 0);
|
|
+ int button1 = sgct::Engine::instance()->getMouseButton(0, 1);
|
|
+ bool buttons[2] = { button0 != 0, button1 != 0 };
|
|
+
|
|
+ double dt = std::max(sgct::Engine::instance()->getDt(), 1.0/60.0);
|
|
+ _gui->render(dt, glm::vec2(posX, posY), buttons);
|
|
|
|
#if 1
|
|
|