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 #include #include +#include #include #include #include @@ -38,7 +39,6 @@ #include #include #include - #include #include @@ -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