diff options
Diffstat (limited to 'src/brussel.engine/Input.cpp')
-rw-r--r-- | src/brussel.engine/Input.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/brussel.engine/Input.cpp b/src/brussel.engine/Input.cpp new file mode 100644 index 0000000..9f304ff --- /dev/null +++ b/src/brussel.engine/Input.cpp @@ -0,0 +1,23 @@ +#include "Input.hpp" + +#include <cassert> + +GLFWkeyboard* InputState::FindKeyboard(std::string_view name) { + assert(false); + // TODO +} + +GlfwKeyboardAttachment* InputState::ConnectKeyboard(GLFWkeyboard* keyboard) { + auto attachment = new GlfwKeyboardAttachment(); + glfwSetKeyboardUserPointer(keyboard, attachment); + + return attachment; +} + +void InputState::DisconnectKeyboard(GLFWkeyboard* keyboard) { + InputState::instance->DisconnectKeyboard(keyboard); + auto attachment = static_cast<GlfwKeyboardAttachment*>(glfwGetKeyboardUserPointer(keyboard)); + // Defensive: this GLFWkeyboard* will be deleted after this callback ends anyways + glfwSetKeyboardUserPointer(keyboard, nullptr); + delete attachment; +} |