This is going to require a major rewrite of every component of this program. Going to revert back to the linear game loop for now
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
[LOGGING]
|
||||
log_level = 0 # INFO, WARN, ERROR
|
||||
log_dest = 0 # STDOUT, FILE
|
||||
[LOGGING]
|
||||
log_level = 0 # INFO, WARN, ERROR
|
||||
log_dest = 0 # STDOUT, FILE
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[GRAPHICS]
|
||||
x_resolution = 800
|
||||
y_resolution = 800
|
||||
[GRAPHICS]
|
||||
x_resolution = 800
|
||||
y_resolution = 800
|
||||
|
||||
132
include/Gui.h
132
include/Gui.h
@@ -1,66 +1,66 @@
|
||||
#pragma once
|
||||
#include <mutex>
|
||||
#include <Logger.h>
|
||||
#include <list>
|
||||
|
||||
class Gui {
|
||||
|
||||
public:
|
||||
|
||||
Gui() {
|
||||
container_lock.lock();
|
||||
renderable_container.push_back(this);
|
||||
container_lock.unlock();
|
||||
};
|
||||
virtual ~Gui() {
|
||||
container_lock.lock();
|
||||
renderable_container.remove(this);
|
||||
container_lock.unlock();
|
||||
};
|
||||
|
||||
virtual void render_gui() = 0;
|
||||
virtual void update_gui() = 0;
|
||||
|
||||
// Instead of rendering nil, we can pass our render call if we would like
|
||||
bool renderable() { return rendering; };
|
||||
|
||||
private:
|
||||
|
||||
// Whatever class that wants to call this must be a friend!!!
|
||||
friend class Application;
|
||||
static void do_render() {
|
||||
for (auto i : renderable_container) {
|
||||
i->update_gui();
|
||||
if (i->renderable())
|
||||
i->render_gui();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
static std::mutex container_lock;
|
||||
static std::list<Gui*> renderable_container;
|
||||
|
||||
protected:
|
||||
bool rendering = true;
|
||||
// Derived class will handle imgui calls
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#pragma once
|
||||
#include <mutex>
|
||||
#include <Logger.h>
|
||||
#include <list>
|
||||
|
||||
class Gui {
|
||||
|
||||
public:
|
||||
|
||||
Gui() {
|
||||
container_lock.lock();
|
||||
renderable_container.push_back(this);
|
||||
container_lock.unlock();
|
||||
};
|
||||
virtual ~Gui() {
|
||||
container_lock.lock();
|
||||
renderable_container.remove(this);
|
||||
container_lock.unlock();
|
||||
};
|
||||
|
||||
virtual void render_gui() = 0;
|
||||
virtual void update_gui() = 0;
|
||||
|
||||
// Instead of rendering nil, we can pass our render call if we would like
|
||||
bool renderable() { return rendering; };
|
||||
|
||||
private:
|
||||
|
||||
// Whatever class that wants to call this must be a friend!!!
|
||||
friend class Application;
|
||||
static void do_render() {
|
||||
for (auto i : renderable_container) {
|
||||
i->update_gui();
|
||||
if (i->renderable())
|
||||
i->render_gui();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
static std::mutex container_lock;
|
||||
static std::list<Gui*> renderable_container;
|
||||
|
||||
protected:
|
||||
bool rendering = true;
|
||||
// Derived class will handle imgui calls
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -55,13 +55,13 @@ public:
|
||||
if (event.get()->type == vr::Event::Closed) {
|
||||
window_ref->close();
|
||||
|
||||
} else if (event.get()->type == vr::Event::KeyPressed) {
|
||||
|
||||
vr::KeyPressed *key_event = static_cast<vr::KeyPressed*>(event.get());
|
||||
|
||||
if (key_event->code == sf::Keyboard::Escape) {
|
||||
window_ref->close();
|
||||
}
|
||||
} else if (event.get()->type == vr::Event::KeyPressed) {
|
||||
|
||||
vr::KeyPressed *key_event = static_cast<vr::KeyPressed*>(event.get());
|
||||
|
||||
if (key_event->code == sf::Keyboard::Escape) {
|
||||
window_ref->close();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "Gui.h"
|
||||
|
||||
std::mutex Gui::container_lock;
|
||||
#include "Gui.h"
|
||||
|
||||
std::mutex Gui::container_lock;
|
||||
std::list<Gui*> Gui::renderable_container;
|
||||
202
src/Input.cpp
202
src/Input.cpp
@@ -282,107 +282,107 @@ void Input::transpose_sf_events(std::list<sf::Event> sf_event_queue) {
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<std::string> Input::key_strings = {
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"F",
|
||||
"G",
|
||||
"H",
|
||||
"I",
|
||||
"J",
|
||||
"K",
|
||||
"L",
|
||||
"M",
|
||||
"N",
|
||||
"O",
|
||||
"P",
|
||||
"Q",
|
||||
"R",
|
||||
"S",
|
||||
"T",
|
||||
"U",
|
||||
"V",
|
||||
"W",
|
||||
"X",
|
||||
"Y",
|
||||
"Z",
|
||||
"Num0",
|
||||
"Num1",
|
||||
"Num2",
|
||||
"Num3",
|
||||
"Num4",
|
||||
"Num5",
|
||||
"Num6",
|
||||
"Num7",
|
||||
"Num8",
|
||||
"Num9",
|
||||
"Escape",
|
||||
"LControl",
|
||||
"LShift",
|
||||
"LAlt",
|
||||
"LSystem",
|
||||
"RControl",
|
||||
"RShift",
|
||||
"RAlt",
|
||||
"RSystem",
|
||||
"Menu",
|
||||
"LBracket",
|
||||
"RBracket",
|
||||
"SemiColon",
|
||||
"Comma",
|
||||
"Period",
|
||||
"Quote",
|
||||
"Slash",
|
||||
"BackSlash",
|
||||
"Tilde",
|
||||
"Equal",
|
||||
"Dash",
|
||||
"Space",
|
||||
"Return",
|
||||
"BackSpace",
|
||||
"Tab",
|
||||
"PageUp",
|
||||
"PageDown",
|
||||
"End",
|
||||
"Home",
|
||||
"Insert",
|
||||
"Delete",
|
||||
"Add",
|
||||
"Subtract",
|
||||
"Multiply",
|
||||
"Divide",
|
||||
"Left",
|
||||
"Right",
|
||||
"Up",
|
||||
"Down",
|
||||
"Numpad0",
|
||||
"Numpad1",
|
||||
"Numpad2",
|
||||
"Numpad3",
|
||||
"Numpad4",
|
||||
"Numpad5",
|
||||
"Numpad6",
|
||||
"Numpad7",
|
||||
"Numpad8",
|
||||
"Numpad9",
|
||||
"F1" ,
|
||||
"F2" ,
|
||||
"F3" ,
|
||||
"F4" ,
|
||||
"F5" ,
|
||||
"F6" ,
|
||||
"F7" ,
|
||||
"F8" ,
|
||||
"F9" ,
|
||||
"F10",
|
||||
"F11",
|
||||
"F12",
|
||||
"F13",
|
||||
"F14",
|
||||
"F15",
|
||||
const std::vector<std::string> Input::key_strings = {
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"F",
|
||||
"G",
|
||||
"H",
|
||||
"I",
|
||||
"J",
|
||||
"K",
|
||||
"L",
|
||||
"M",
|
||||
"N",
|
||||
"O",
|
||||
"P",
|
||||
"Q",
|
||||
"R",
|
||||
"S",
|
||||
"T",
|
||||
"U",
|
||||
"V",
|
||||
"W",
|
||||
"X",
|
||||
"Y",
|
||||
"Z",
|
||||
"Num0",
|
||||
"Num1",
|
||||
"Num2",
|
||||
"Num3",
|
||||
"Num4",
|
||||
"Num5",
|
||||
"Num6",
|
||||
"Num7",
|
||||
"Num8",
|
||||
"Num9",
|
||||
"Escape",
|
||||
"LControl",
|
||||
"LShift",
|
||||
"LAlt",
|
||||
"LSystem",
|
||||
"RControl",
|
||||
"RShift",
|
||||
"RAlt",
|
||||
"RSystem",
|
||||
"Menu",
|
||||
"LBracket",
|
||||
"RBracket",
|
||||
"SemiColon",
|
||||
"Comma",
|
||||
"Period",
|
||||
"Quote",
|
||||
"Slash",
|
||||
"BackSlash",
|
||||
"Tilde",
|
||||
"Equal",
|
||||
"Dash",
|
||||
"Space",
|
||||
"Return",
|
||||
"BackSpace",
|
||||
"Tab",
|
||||
"PageUp",
|
||||
"PageDown",
|
||||
"End",
|
||||
"Home",
|
||||
"Insert",
|
||||
"Delete",
|
||||
"Add",
|
||||
"Subtract",
|
||||
"Multiply",
|
||||
"Divide",
|
||||
"Left",
|
||||
"Right",
|
||||
"Up",
|
||||
"Down",
|
||||
"Numpad0",
|
||||
"Numpad1",
|
||||
"Numpad2",
|
||||
"Numpad3",
|
||||
"Numpad4",
|
||||
"Numpad5",
|
||||
"Numpad6",
|
||||
"Numpad7",
|
||||
"Numpad8",
|
||||
"Numpad9",
|
||||
"F1" ,
|
||||
"F2" ,
|
||||
"F3" ,
|
||||
"F4" ,
|
||||
"F5" ,
|
||||
"F6" ,
|
||||
"F7" ,
|
||||
"F8" ,
|
||||
"F9" ,
|
||||
"F10",
|
||||
"F11",
|
||||
"F12",
|
||||
"F13",
|
||||
"F14",
|
||||
"F15",
|
||||
"Pause"
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user