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