From 4372c11720021596d1734ba66713e1715cc3408b Mon Sep 17 00:00:00 2001 From: Lendemor Date: Fri, 9 Dec 2016 17:38:36 +0100 Subject: [PATCH] sparrowshell disabled when starting engine --- src/scene/graphicalnode.cpp | 7 ++++++- src/scene/graphicalnode.h | 1 + src/scene/meshnode.h | 2 +- src/sparrowshell/shellbuffer.cpp | 23 ++++++++++++++++++++ src/sparrowshell/shellbuffer.h | 1 + src/sparrowshell/shellscrollbar.h | 4 ++-- src/sparrowshell/sparrowshell.cpp | 35 +++++++++---------------------- src/sparrowshell/sparrowshell.h | 4 +++- 8 files changed, 47 insertions(+), 30 deletions(-) diff --git a/src/scene/graphicalnode.cpp b/src/scene/graphicalnode.cpp index 24bc571..6cb91c4 100644 --- a/src/scene/graphicalnode.cpp +++ b/src/scene/graphicalnode.cpp @@ -6,9 +6,14 @@ GraphicalNode::GraphicalNode() : m_visible(true) } +GraphicalNode::GraphicalNode(bool visible) : m_visible(visible) +{ + +} + void GraphicalNode::setSceneTree(SceneTree *tree){ SceneNode::setSceneTree(tree); - if(tree) + if(tree && m_visible) tree->addToIndex(this); } diff --git a/src/scene/graphicalnode.h b/src/scene/graphicalnode.h index f0e1223..b00f475 100644 --- a/src/scene/graphicalnode.h +++ b/src/scene/graphicalnode.h @@ -14,6 +14,7 @@ protected: bool m_visible; public: GraphicalNode(); + GraphicalNode(bool); void toggleVisibility(); virtual void setSceneTree(SceneTree* tree); diff --git a/src/scene/meshnode.h b/src/scene/meshnode.h index 8f3f138..8ec727c 100644 --- a/src/scene/meshnode.h +++ b/src/scene/meshnode.h @@ -22,7 +22,7 @@ public: glm::mat4 m_movement; glm::mat4 m_acceleration; - MeshNode(Mesh* mesh) : m_geometry(mesh, glm::mat4()), bulletMesh(nullptr) {} + MeshNode(Mesh* mesh, bool visible = true) : GraphicalNode(visible), m_geometry(mesh, glm::mat4()), bulletMesh(nullptr) {} virtual void update() { diff --git a/src/sparrowshell/shellbuffer.cpp b/src/sparrowshell/shellbuffer.cpp index 4992a88..2587d74 100644 --- a/src/sparrowshell/shellbuffer.cpp +++ b/src/sparrowshell/shellbuffer.cpp @@ -1,6 +1,8 @@ #include "shellbuffer.h" #include "scene/meshnode.h" #include "scene/textnode.h" +#include "sparrowshell/sparrowshell.h" +#include "tools/utils.h" void ShellBuffer::toggleBuffer(){ for(auto child : m_children){ @@ -12,7 +14,28 @@ void ShellBuffer::toggleBuffer(){ void ShellBuffer::update() { + TextNode* tnode; + glm::vec2 text_pos(0); + SparrowShell* shell = dynamic_cast(m_parent); +// if(shell && shell->isEnabled()) +// { +// for(unsigned int i = 0; i< size();i++) +// { +// tnode = (TextNode*) this+i; +// if (i >= m_index && i < m_index+SparrowShell::BUFFER_DISPLAYED_NUMBER) +// { +// utils::setPosition2D(tnode,text_pos); +// text_pos.y += m_font_size; +// //m_scene +// } +// else{ +// utils::setPosition2D(tnode,glm::vec2(-100,-100)); +// } + +// } + +// } } void ShellBuffer::push(TextNode* s){ diff --git a/src/sparrowshell/shellbuffer.h b/src/sparrowshell/shellbuffer.h index 68fe944..068d48e 100644 --- a/src/sparrowshell/shellbuffer.h +++ b/src/sparrowshell/shellbuffer.h @@ -10,6 +10,7 @@ private: unsigned int m_max_size; int m_zero_offset; float m_font_size; + unsigned int m_index = 0; public: ShellBuffer(int buffer_size):m_max_size(buffer_size), m_zero_offset(0),m_font_size(16.f){} GraphicalNode* operator[](int i){return m_children[(m_zero_offset+i)%m_max_size];} diff --git a/src/sparrowshell/shellscrollbar.h b/src/sparrowshell/shellscrollbar.h index f6835f8..542bdcd 100644 --- a/src/sparrowshell/shellscrollbar.h +++ b/src/sparrowshell/shellscrollbar.h @@ -2,11 +2,11 @@ #define SHELLSCROLLBAR_H #include "glm/vec2.hpp" +#include "scene/meshnode.h" -class MeshNode; class SparrowShell; -class ShellScrollBar +class ShellScrollBar// : public MeshNode { SparrowShell* m_shell; glm::ivec2 m_position; diff --git a/src/sparrowshell/sparrowshell.cpp b/src/sparrowshell/sparrowshell.cpp index ad0ef61..8cbc920 100644 --- a/src/sparrowshell/sparrowshell.cpp +++ b/src/sparrowshell/sparrowshell.cpp @@ -32,7 +32,7 @@ SparrowShell::SparrowShell(sf::Window* window, Input* input): mesh->setMaterial(mat); mesh->setDepth(SHELL_DEPTH); mesh->initGL(); - m_background = new MeshNode(mesh); + m_background = new MeshNode(mesh,false); this->addChild(m_background); this->addChild(m_buffer); m_scrollbar = ShellScrollBar(this); @@ -44,7 +44,8 @@ void SparrowShell::out(std::string s) TextNode* tnode = shellfont->getTextNode(s,glm::vec3(0.7,1,0.3),m_buffer->getFontSize()); tnode->setDepth(SHELL_DEPTH+1); m_buffer->push(tnode); - m_scene->addToIndex(tnode); + if(m_shellEnabled) + m_scene->addToIndex(tnode); if (m_buffer->size() > SparrowShell::BUFFER_DISPLAYED_NUMBER) m_resizeBuffer = true; } @@ -65,37 +66,21 @@ void SparrowShell::scrollDown(){ void SparrowShell::toggleShell(){ m_shellEnabled = !m_shellEnabled; - for(auto child : m_children){ - MeshNode* meshchild = dynamic_cast(child); - // if(meshchild) - // meshchild->toggleVisibility(); - } -// m_buffer->toggleBuffer(); - m_background->toggleVisibility(); +// for(auto child : m_children){ +// MeshNode* meshchild = dynamic_cast(child); +// // if(meshchild) +// // meshchild->toggleVisibility(); +// } +//// m_buffer->toggleBuffer(); +//// m_background->toggleVisibility(); } void SparrowShell::update(){ - TextNode* tnode; - glm::vec2 text_pos(0); - for(auto action : m_input->getActions()){ if(action == 15){ toggleShell(); } } - //move position of shellBuffer - // position textnode inside shellBuffer - m_buffer->update(); -/* if(m_shellEnabled){ - for(unsigned int i = 0; isize(); i++){ - tnode = (TextNode*)(m_buffer+i); - if (i >= m_index && i < m_index + BUFFER_DISPLAYED_NUMBER){ - utils::setPosition2D(tnode,text_pos); - text_pos.y += m_buffer->getFontSize(); - m_scene->addToIndex(tnode); - } - } - }*/ m_scrollbar.update(); } diff --git a/src/sparrowshell/sparrowshell.h b/src/sparrowshell/sparrowshell.h index 1edd6b3..916b2ab 100644 --- a/src/sparrowshell/sparrowshell.h +++ b/src/sparrowshell/sparrowshell.h @@ -51,10 +51,11 @@ public: void toggleShell(); void out(std::string); + void setSceneTree(SceneTree* tree) { GraphicalContainerNode::setSceneTree(tree); - m_buffer->setSceneTree(tree); +// m_buffer->setSceneTree(tree); } glm::ivec2 getPosition(){return m_position;} @@ -63,6 +64,7 @@ public: unsigned int getIndex(){return m_index;} ShellBuffer* getBuffer(){return m_buffer;} + bool isEnabled(){return m_shellEnabled;} bool isBufferResized(){return m_resizeBuffer;} bool indexMoved(){return m_indexMoved;} };