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