mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-11 18:34:58 +01:00
Cleanup of main update calbacks
Clarify update and draw of rendering manager by using callbacks (instead of hidden calls in draw method).
This commit is contained in:
@@ -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<Rendering::RenderingCallback>::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_);
|
||||
|
||||
21
main.cpp
21
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
|
||||
|
||||
Reference in New Issue
Block a user