File tree Expand file tree Collapse file tree 3 files changed +21
-0
lines changed Expand file tree Collapse file tree 3 files changed +21
-0
lines changed Original file line number Diff line number Diff line change 44#define GF_CONSOLE_SCENE_H
55
66#include " ConsoleElementContainer.h"
7+ #include " ConsoleStyle.h"
78#include " CoreApi.h"
89#include " SceneTypes.h"
910
@@ -32,6 +33,9 @@ namespace gf {
3233 void show ();
3334 bool hidden () const ;
3435
36+ void set_clear_style (const ConsoleStyle& style);
37+ const ConsoleStyle& clear_style () const ;
38+
3539 void add_element (ConsoleElement* element);
3640
3741 virtual void process_event (const Event& event);
@@ -48,6 +52,7 @@ namespace gf {
4852 SceneStatus m_status = SceneStatus::Resumed;
4953 SceneVisibility m_visibility = SceneVisibility::Shown;
5054
55+ ConsoleStyle m_clear_style;
5156 ConsoleElementContainer m_elements;
5257 };
5358
Original file line number Diff line number Diff line change @@ -47,6 +47,16 @@ namespace gf {
4747 return m_visibility == SceneVisibility::Hidden;
4848 }
4949
50+ void ConsoleScene::set_clear_style (const ConsoleStyle& style)
51+ {
52+ m_clear_style = style;
53+ }
54+
55+ const ConsoleStyle& ConsoleScene::clear_style () const
56+ {
57+ return m_clear_style;
58+ }
59+
5060 void ConsoleScene::add_element (ConsoleElement* element)
5161 {
5262 m_elements.add_element (element);
Original file line number Diff line number Diff line change @@ -77,6 +77,12 @@ namespace gf {
7777
7878 void ConsoleSceneManager::render ()
7979 {
80+ if (m_scenes.empty ()) {
81+ return ;
82+ }
83+
84+ m_console.clear (m_scenes.back ()->clear_style ());
85+
8086 for (ConsoleScene* scene : m_scenes) {
8187 if (!scene->hidden ()) {
8288 scene->render (m_console);
You can’t perform that action at this time.
0 commit comments