diff --git a/RenderingManager.cpp b/RenderingManager.cpp index 135284b..fbdcd90 100644 --- a/RenderingManager.cpp +++ b/RenderingManager.cpp @@ -206,7 +206,7 @@ bool Rendering::init() // set application icon main_.setIcon("images/vimix_256x256.png"); // additional window callbacks for main window -// glfwSetWindowRefreshCallback( main_.window(), WindowRefreshCallback ); + glfwSetWindowRefreshCallback( main_.window(), WindowRefreshCallback ); glfwSetDropCallback( main_.window(), Rendering::FileDropped); // @@ -316,19 +316,13 @@ void Rendering::draw() // operate on main window context main_.makeCurrent(); - // User Interface step 1 - UserInterface::manager().NewFrame(); - - // Custom draw + // draw std::list::iterator iter; for (iter=draw_callbacks_.begin(); iter != draw_callbacks_.end(); ++iter) { (*iter)(); } - // User Interface step 2 - UserInterface::manager().Render(); - // perform screenshot if requested if (request_screenshot_) { // glfwMakeContextCurrent(main_window_); diff --git a/main.cpp b/main.cpp index d58da43..999a25b 100644 --- a/main.cpp +++ b/main.cpp @@ -40,11 +40,22 @@ extern "C"{ #endif +void prepare() +{ + Mixer::manager().update(); + UserInterface::manager().NewFrame(); +} + void drawScene() { Mixer::manager().draw(); } +void renderGUI() +{ + UserInterface::manager().Render(); +} + int main(int argc, char *argv[]) { // one extra argument is given @@ -127,8 +138,10 @@ int main(int argc, char *argv[]) gst_debug_set_active(FALSE); #endif - // draw the scene - Rendering::manager().pushFrontDrawCallback(drawScene); + // callbacks to draw + Rendering::manager().pushBackDrawCallback(prepare); + Rendering::manager().pushBackDrawCallback(drawScene); + Rendering::manager().pushBackDrawCallback(renderGUI); // show all windows Rendering::manager().show(); @@ -137,11 +150,7 @@ int main(int argc, char *argv[]) /// Main LOOP /// while ( Rendering::manager().isActive() ) - { - Mixer::manager().update(); - Rendering::manager().draw(); - } /// /// UI TERMINATE