mapped F3 to ToggleConsole
This commit is contained in:
parent
01e901a0c8
commit
04695941de
@ -67,6 +67,7 @@ void Engine::update()
|
||||
m_timeStamp = (unsigned int) m_clock->getElapsedTime().asMilliseconds();
|
||||
// update Events
|
||||
m_input->updateEvents();
|
||||
|
||||
// update Scene
|
||||
m_scene->update();
|
||||
// update Physics
|
||||
@ -108,7 +109,7 @@ void Engine::setScene(SceneTree *scene)
|
||||
m_scene = scene;
|
||||
m_renderer->setScene(m_scene);
|
||||
m_renderer->resizeGL(m_window->getSize().x, m_window->getSize().y);
|
||||
m_sparrowshell->setScene(scene);
|
||||
m_sparrowshell->setSceneTree(scene);
|
||||
scene->addObject(scene->getRootObject(), m_sparrowshell);
|
||||
}
|
||||
|
||||
|
@ -10,3 +10,12 @@ void MeshNode::setSceneTree(SceneTree *tree){
|
||||
SceneNode::setSceneTree(tree);
|
||||
tree->addToIndex(this);
|
||||
}
|
||||
|
||||
void MeshNode::toggleVisibility(){
|
||||
m_visible = !m_visible;
|
||||
if(m_visible){
|
||||
m_scene->addToIndex(this);
|
||||
}else{
|
||||
m_scene->removeFromIndex(this);
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@
|
||||
class MeshNode : public SceneNode
|
||||
{
|
||||
GeometryNode geometry;
|
||||
bool m_visible;
|
||||
public:
|
||||
// temp
|
||||
glm::mat4 m_movement;
|
||||
@ -31,6 +32,8 @@ public:
|
||||
const glm::mat4& getTransform() { return geometry.modelMatrix; }
|
||||
void setDepth(float depth);
|
||||
|
||||
void toggleVisibility();
|
||||
|
||||
GeometryNode* getGeometryNode() { return &geometry; }
|
||||
};
|
||||
|
||||
|
@ -10,10 +10,12 @@ class SceneNode
|
||||
public:
|
||||
SceneNode* m_parent;
|
||||
SceneTree* m_scene;
|
||||
// bool m_enabled;
|
||||
virtual void update() = 0;
|
||||
virtual Light* getLight() {return nullptr;}
|
||||
virtual GeometryNode* getGeometryNode() {return nullptr;}
|
||||
virtual void setSceneTree(SceneTree* tree){m_scene = tree;}
|
||||
// virtual void toggleNode(){m_enabled = !m_enabled;}
|
||||
};
|
||||
|
||||
#endif // SCENENODE_H
|
||||
|
@ -62,49 +62,79 @@ void SparrowShell::scrollDown(){
|
||||
}
|
||||
}
|
||||
|
||||
void SparrowShell::update()
|
||||
{
|
||||
//Font *shellfont = RESOURCE_GET(Font,"shellfont");
|
||||
void SparrowShell::toggleShell(){
|
||||
m_shellEnabled = !m_shellEnabled;
|
||||
// if (m_shellEnabled){
|
||||
// for(unsigned int i = 0;i<m_buffer.size();i++)
|
||||
// m_scene->addToIndex(m_buffer[i]);
|
||||
// }else{
|
||||
// for(unsigned int i = 0;i<m_buffer.size();i++)
|
||||
// m_scene->removeFromIndex(m_buffer[i]);
|
||||
// }
|
||||
for(auto child : m_children){
|
||||
MeshNode* meshchild = dynamic_cast<MeshNode*>(child);
|
||||
if(meshchild)
|
||||
meshchild->toggleVisibility();
|
||||
}
|
||||
m_buffer.toggleBuffer();
|
||||
m_background->toggleVisibility();
|
||||
}
|
||||
|
||||
void SparrowShell::update(){
|
||||
TextNode* tnode;
|
||||
glm::vec2 text_pos(0);
|
||||
|
||||
// if(m_indexMoved){
|
||||
// unsigned int count_stop = m_buffer.size() > BUFFER_DISPLAYED_NUMBER ? m_index + BUFFER_DISPLAYED_NUMBER: m_buffer.size();
|
||||
//move position of shellBuffer
|
||||
// position textnode inside shellBuffer
|
||||
for(unsigned int i = 0; i<m_buffer.size(); 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_currentScene->addToIndex(tnode);
|
||||
// m_currentScene->addObject(this,mnode);
|
||||
for(auto action : m_input->getActions()){
|
||||
if(action == 15){
|
||||
toggleShell();
|
||||
}
|
||||
}
|
||||
//move position of shellBuffer
|
||||
// position textnode inside shellBuffer
|
||||
|
||||
if(m_shellEnabled){
|
||||
for(unsigned int i = 0; i<m_buffer.size(); 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_indexMoved = false;
|
||||
// }
|
||||
m_scrollbar.update();
|
||||
}
|
||||
|
||||
void SparrowShell::ShellBuffer::toggleBuffer(){
|
||||
for(auto child : m_children){
|
||||
MeshNode* meshchild = dynamic_cast<MeshNode*>(child);
|
||||
if(meshchild)
|
||||
meshchild->toggleVisibility();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SparrowShell::ShellBuffer::push(TextNode* s){
|
||||
if (m_children.size() >= m_max_size){
|
||||
m_children[m_zero_offset++] = s;
|
||||
m_zero_offset %= m_max_size;
|
||||
}
|
||||
else
|
||||
}else
|
||||
m_children.push_back(s);
|
||||
}
|
||||
|
||||
SparrowShell::ScrollBar::ScrollBar(SparrowShell* shell):m_shell(shell){
|
||||
m_position = glm::ivec2(m_shell->m_dimension.x - SparrowShell::SCROLLBAR_PIXEL_WIDTH,0);
|
||||
m_dimension = glm::ivec2(SparrowShell::SCROLLBAR_PIXEL_WIDTH,m_shell->m_dimension.y);
|
||||
|
||||
Mesh* mesh = new Mesh();
|
||||
mesh->addRectangle2D(glm::vec2(0),m_dimension);
|
||||
PhongMaterial *mat = new PhongMaterial();
|
||||
mat->diffuse = glm::vec3(0,0,0.5);
|
||||
|
||||
mesh->setDepth(SHELL_DEPTH+1);
|
||||
mesh->setMaterial(mat);
|
||||
mesh->initGL();
|
||||
|
||||
m_mesh = new MeshNode(mesh);
|
||||
utils::setPosition2D(m_mesh,m_position);
|
||||
m_shell->addChild(m_mesh);
|
||||
|
@ -23,7 +23,6 @@ private:
|
||||
glm::ivec2 m_position;
|
||||
glm::ivec2 m_dimension;
|
||||
MeshNode *m_mesh;
|
||||
//TODO : Add rectangle mesh
|
||||
public:
|
||||
ScrollBar(){}
|
||||
ScrollBar(SparrowShell* shell);
|
||||
@ -40,6 +39,7 @@ private:
|
||||
SceneNode* operator[](int i){return m_children[(m_zero_offset+i)%m_max_size];}
|
||||
void push(TextNode*);
|
||||
unsigned int size(){return m_children.size();}
|
||||
void toggleBuffer();
|
||||
|
||||
// if this font_size is scaling down, sizes which are power of 2 render better.
|
||||
void setFontSize(float font_size){m_font_size = font_size;}
|
||||
@ -53,7 +53,6 @@ private:
|
||||
|
||||
sf::Window* m_window;
|
||||
Input* m_input;
|
||||
SceneTree* m_currentScene;
|
||||
|
||||
glm::ivec2 m_position;
|
||||
glm::ivec2 m_dimension;
|
||||
@ -61,7 +60,7 @@ private:
|
||||
unsigned int m_index = 0;
|
||||
bool m_resizeScrollBar = false;
|
||||
bool m_indexMoved = false;
|
||||
|
||||
bool m_shellEnabled = false;
|
||||
//textMesh
|
||||
MeshNode* m_background;
|
||||
ScrollBar m_scrollbar;
|
||||
@ -70,10 +69,12 @@ public:
|
||||
SparrowShell(sf::Window*, Input*);
|
||||
|
||||
void update();
|
||||
void setScene(SceneTree *scene){m_currentScene = scene;}
|
||||
// void setScene(SceneTree *scene){m_currentScene = scene;}
|
||||
|
||||
void scrollUp();
|
||||
void scrollDown();
|
||||
|
||||
void toggleShell();
|
||||
void out(std::string);
|
||||
};
|
||||
|
||||
|
@ -19,10 +19,10 @@ void InputSystem::initInput(sf::Window *window){
|
||||
}
|
||||
|
||||
void InputSystem::update(){
|
||||
int action;
|
||||
Message* message;
|
||||
while ((action = m_input->getAction()) != NO_ACTION){
|
||||
message = new Message(std::to_string(action),SystemType::INPUT_SYSTEM);
|
||||
m_msgBus->postMessage(message);
|
||||
}
|
||||
// int action;
|
||||
// Message* message;
|
||||
// while ((action = m_input->getAction()) != NO_ACTION){
|
||||
// message = new Message(std::to_string(action),SystemType::INPUT_SYSTEM);
|
||||
// m_msgBus->postMessage(message);
|
||||
// }
|
||||
}
|
||||
|
@ -19,6 +19,21 @@
|
||||
|
||||
#include <sparrowshell.h>
|
||||
|
||||
|
||||
class myKeysMap : public IKeysMap{
|
||||
public:
|
||||
enum{TOGGLE_CONSOLE = 15};
|
||||
|
||||
myKeysMap(){
|
||||
Binding b;
|
||||
b.action = TOGGLE_CONSOLE;
|
||||
b.key = sf::Keyboard::F3;
|
||||
b.type = IKeysMap::PRESSED;
|
||||
|
||||
keys.push_back(b);
|
||||
}
|
||||
};
|
||||
|
||||
int main(){
|
||||
Engine engine;
|
||||
|
||||
@ -94,6 +109,16 @@ int main(){
|
||||
engine.outputShell(std::to_string(i));
|
||||
}
|
||||
|
||||
|
||||
Input* input = engine.getInput();
|
||||
std::vector<int> v = {myKeysMap::TOGGLE_CONSOLE};
|
||||
input->addContext(Context("default",v));
|
||||
|
||||
IKeysMap km = myKeysMap();
|
||||
|
||||
input->setKeysMap(km);
|
||||
input->setCurrentContext("default");
|
||||
input->updateKeyBindings();
|
||||
engine.start();
|
||||
|
||||
/* GraphNode n1 = GraphNode();
|
||||
|
Loading…
x
Reference in New Issue
Block a user