diff --git a/libs/ui/source/controller.cpp b/libs/ui/source/controller.cpp index f0df848e..e0b302a1 100644 --- a/libs/ui/source/controller.cpp +++ b/libs/ui/source/controller.cpp @@ -173,6 +173,15 @@ namespace psemek::ui void controller::render(gfx::render_target const & rt) { + auto visitor = util::recursive([&](auto && self, element * elem) -> void { + if (elem->hidden()) return; + elem->draw(impl().painter); + for (auto c : elem->children()) + if (c) self(c); + }); + + visitor(impl().root.get()); + rt.bind(); gl::Enable(gl::DEPTH_TEST); @@ -183,15 +192,6 @@ namespace psemek::ui gl::Disable(gl::CULL_FACE); - auto visitor = util::recursive([&](auto && self, element * elem) -> void { - if (elem->hidden()) return; - elem->draw(impl().painter); - for (auto c : elem->children()) - if (c) self(c); - }); - - visitor(impl().root.get()); - impl().painter.render(geom::window_camera{rt.viewport[0].length(), rt.viewport[1].length()}.transform()); }