UI rendering fix: visit the tree first, setup OpenGL next
This commit is contained in:
parent
05b50d2826
commit
f40d98cb2f
1 changed files with 9 additions and 9 deletions
|
|
@ -173,6 +173,15 @@ namespace psemek::ui
|
||||||
|
|
||||||
void controller::render(gfx::render_target const & rt)
|
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();
|
rt.bind();
|
||||||
|
|
||||||
gl::Enable(gl::DEPTH_TEST);
|
gl::Enable(gl::DEPTH_TEST);
|
||||||
|
|
@ -183,15 +192,6 @@ namespace psemek::ui
|
||||||
|
|
||||||
gl::Disable(gl::CULL_FACE);
|
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());
|
impl().painter.render(geom::window_camera{rt.viewport[0].length(), rt.viewport[1].length()}.transform());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue