Testing pointer nonsense for glut

v1
Brett 2023-01-17 11:09:25 -05:00
parent 93d27519ca
commit 4269e52e31
2 changed files with 25 additions and 4 deletions

View File

@ -19,27 +19,38 @@
namespace blt { namespace blt {
class window;
#define WINDOW_MAP BLT_MAP_FUNC<window*, window*>
extern WINDOW_MAP activeWindows;
class window { class window {
protected: protected:
bool m_windowOpen = true; bool m_windowOpen = true;
int m_width, m_height; int m_width, m_height;
std::vector<std::function<void()>> renderFunctions{}; std::vector<std::function<void(window*)>> renderFunctions{};
std::vector<std::function<void(window*, int, bool)>> keyListeners{}; std::vector<std::function<void(window*, int, bool)>> keyListeners{};
std::vector<std::function<void(window*, int, bool)>> mouseListeners{}; std::vector<std::function<void(window*, int, bool)>> mouseListeners{};
KEY_MAP keysDown{}; KEY_MAP keysDown{};
KEY_MAP mouseDown{}; KEY_MAP mouseDown{};
public: public:
window() = default; window() {
activeWindows.insert({this, this});
}
window(int width, int height) { window(int width, int height) {
activeWindows.insert({this, this});
m_width = width; m_width = width;
m_height = height; m_height = height;
} }
virtual void createWindow() = 0; virtual void createWindow() = 0;
virtual void startMainLoop() = 0; virtual void startMainLoop() = 0;
virtual void destroyWindow() = 0; virtual void destroyWindow() = 0;
virtual ~window() = 0; virtual ~window() {
activeWindows.insert({this, nullptr});
};
virtual inline bool setResizeable(bool resizeEnabled) = 0; virtual inline bool setResizeable(bool resizeEnabled) = 0;
virtual inline bool setWindowSize(int width, int height) = 0; virtual inline bool setWindowSize(int width, int height) = 0;
@ -50,7 +61,7 @@ class window {
virtual inline void closeWindow(){ virtual inline void closeWindow(){
m_windowOpen = false; m_windowOpen = false;
} }
virtual inline void registerLoopFunction(std::function<void()> func) { virtual inline void registerLoopFunction(std::function<void(window*)> func) {
renderFunctions.push_back(func); renderFunctions.push_back(func);
} }

10
src/blt/window/window.cpp Normal file
View File

@ -0,0 +1,10 @@
/*
* Created by Brett on 17/01/23.
* Licensed under GNU General Public License V3.0
* See LICENSE file for license detail
*/
#include <blt/window/window.h>
namespace blt {
WINDOW_MAP activeWindows;
}