diff --git a/src/scene/gui/scrollbarnode.cpp b/src/scene/gui/scrollbarnode.cpp index 5aff377..ea8e7c1 100644 --- a/src/scene/gui/scrollbarnode.cpp +++ b/src/scene/gui/scrollbarnode.cpp @@ -29,27 +29,30 @@ ScrollBarNode::ScrollBarNode(glm::vec2 dimension, glm::vec3 bar_color): addChild(m_bar); } +void ScrollBarNode::computeTransform() +{ + m_bar->resetTransform(); + m_bar->moveTo2D(m_bar_position); + m_bar->resize2D(m_dimension, m_bar_dimension); +} + void ScrollBarNode::update() { GUINode::update(); + bool needTransformUpdate = false; if(m_bar_resized) { if(m_total_size > m_bar_size){ - m_bar->resetTransform(); m_bar_dimension.y = m_dimension.y * ((float)m_bar_size / (float)m_total_size); - m_bar->resize2D(m_dimension,m_bar_dimension); m_bar_resized = false; + needTransformUpdate = true; } } if(m_bar_moved) { m_bar_position = glm::vec2(0,(m_dimension.y /m_total_size) * m_index_position); - std::cout<< "Pos vec: " << m_bar_position.x << " " << m_bar_position.y << std::endl; - m_bar->moveTo2D(m_bar_position); - glm::mat4 m = m_bar->getTransform(); - glm::vec2 v = glm::vec2(m[3].x,m[3].y); - std::cout << "Pos tr : " << v.x << " " << v.y << std::endl; m_bar_moved = false; + needTransformUpdate = true; } if(m_bar_color_updated) { @@ -57,6 +60,8 @@ void ScrollBarNode::update() mat->diffuse = m_bar_color; m_bar_color_updated = false; } + if(needTransformUpdate) + computeTransform(); } glm::vec2 ScrollBarNode::getDimension() diff --git a/src/scene/gui/scrollbarnode.h b/src/scene/gui/scrollbarnode.h index 5aecd92..521f833 100644 --- a/src/scene/gui/scrollbarnode.h +++ b/src/scene/gui/scrollbarnode.h @@ -20,6 +20,9 @@ protected: MeshNode* m_bar; bool m_bar_resized; bool m_bar_moved; + + void computeTransform(); + public: ScrollBarNode(glm::vec2 dimension,glm::vec3 bar_color); void update(); diff --git a/src/sparrowshell/sparrowshell.cpp b/src/sparrowshell/sparrowshell.cpp index 320459f..0b57497 100644 --- a/src/sparrowshell/sparrowshell.cpp +++ b/src/sparrowshell/sparrowshell.cpp @@ -83,7 +83,6 @@ void SparrowShell::out(std::string str,glm::vec3 color) tnode->setDepth(SHELL_DEPTH+1); m_buffer->push(tnode); scrollDown(); - std::cout << "size: " << m_buffer->size() << std::endl; if (m_buffer->size() > SparrowShell::BUFFER_DISPLAYED_LINES) m_resizeBuffer = true; }