diff --git a/src/scene/containernode.cpp b/src/scene/containernode.cpp index 7202193..ca3fbac 100644 --- a/src/scene/containernode.cpp +++ b/src/scene/containernode.cpp @@ -35,7 +35,6 @@ void ContainerNode::removeChild(SceneNode* node) it = m_children.erase(it); node->m_parent = nullptr; node->setSceneTree(nullptr); -// break; } else ++it; diff --git a/src/scene/graphicalcontainernode.cpp b/src/scene/graphicalcontainernode.cpp index a6e500f..ad084eb 100644 --- a/src/scene/graphicalcontainernode.cpp +++ b/src/scene/graphicalcontainernode.cpp @@ -44,14 +44,16 @@ void GraphicalContainerNode::removeChild(GraphicalNode *node) { if(node != nullptr) { - for(auto it = m_children.begin(); it != m_children.end(); ++it) + for(auto it = m_children.begin(); it != m_children.end();) { if(*it == node) { - m_children.erase(it); + it = m_children.erase(it); node->m_parent = nullptr; node->setSceneTree(nullptr); } + else + ++it; } } } diff --git a/src/sparrowshell/sparrowshell.cpp b/src/sparrowshell/sparrowshell.cpp index fb81fbb..89db622 100644 --- a/src/sparrowshell/sparrowshell.cpp +++ b/src/sparrowshell/sparrowshell.cpp @@ -22,6 +22,8 @@ const float SparrowShell::DEFAULT_FONT_SIZE = 16.f; SparrowShell::SparrowShell(sf::Window* window): m_position(glm::ivec2(0)), m_buffer(new ShellBuffer(BUFFER_MAX_LENGTH)), + m_text_color(glm::vec3(0.7,1,0.3)), + m_input_mesh(nullptr), m_input_cursor_pos(0) { sf::Vector2u size = window->getSize(); @@ -33,8 +35,6 @@ SparrowShell::SparrowShell(sf::Window* window): Font* fonte_des_neiges = Loader::loadFont("../data/consolas.fnt","../data/consolas.png"); RESOURCE_ADD(fonte_des_neiges,Font,"shellfont"); - m_text_color = glm::vec3(0.7,1,0.3); - //Create mesh for background Mesh* mesh = new Mesh(); mesh->addRectangle2D(glm::vec2(0),m_dimension); @@ -133,12 +133,13 @@ void SparrowShell::updateTextInput() std::cout << text[i] << (int) text[i] << std::endl; } Font *shellfont = RESOURCE_GET(Font,"shellfont"); - if(m_input_mesh) - this->removeChild(m_input_mesh); - m_input_mesh = shellfont->getTextNode(m_input_string,m_text_color,m_buffer->getFontSize(),false); - this->addChild(m_input_mesh); - -// m_input_string.insert(m_input_cursor_pos,c); -// m_input_string.append(); -// std::cout << m_input_string << std::endl; + if(m_input_string != "") + { + if(m_input_mesh) + this->removeChild(m_input_mesh); + m_input_mesh = shellfont->getTextNode(m_input_string,m_text_color,m_buffer->getFontSize(),false); + m_input_mesh->moveTo2D(glm::vec2(0,m_buffer->getFontSize()*BUFFER_DISPLAYED_LINES)); + this->addChild(m_input_mesh); + m_input_mesh->setVisible(true); + } } diff --git a/src/test/main.cpp b/src/test/main.cpp index 9271982..738efc0 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -129,7 +129,7 @@ int main(){ // this creates the opengl context // the opengl context must exist before any opengl class is used (texture, pipeline, etc..) - engine.createWindow("Sparrow Engine Testing Environment", 1920, 1080, false); + engine.createWindow("Sparrow Engine Testing Environment"); // setting up SparrowEngine engine.initPhysics();