From 1bdf330eb8e3be69a1d77aa83a848b03fadff667 Mon Sep 17 00:00:00 2001 From: chatlanin Date: Wed, 26 Feb 2025 13:55:58 +0300 Subject: [PATCH] add no_local_render --- src/application/application.cpp | 3 ++- src/layer/layer.hpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/application/application.cpp b/src/application/application.cpp index 519541e..1f503ed 100755 --- a/src/application/application.cpp +++ b/src/application/application.cpp @@ -21,7 +21,8 @@ namespace VE m_glfw->clear(); m_gui->begin_frame(); - for (auto l : m_layers_stack) l->render(); + for (auto l : m_layers_stack) + if (l->m_no_local_render) l->render(); m_gui->end_frame(); m_glfw->update(); diff --git a/src/layer/layer.hpp b/src/layer/layer.hpp index a7585d6..a35af81 100755 --- a/src/layer/layer.hpp +++ b/src/layer/layer.hpp @@ -22,6 +22,11 @@ namespace VE virtual void render() {}; virtual void on_event(event e) {}; + // если нужно отрисовать не вообще, а внутри другого layer, что бывает крайне часто + // т.е. отрисовка слоя при регистрации его в системе может не понадобится, а понадобится только его система сигналов + // по этому этим можно контролить рендер + bool m_no_local_render = true; + void set_event_fn(const event_fn& fn) { execute = fn; }; protected: