aboutsummaryrefslogtreecommitdiff
path: root/source/30-game/Input.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/30-game/Input.cpp')
-rw-r--r--source/30-game/Input.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/30-game/Input.cpp b/source/30-game/Input.cpp
new file mode 100644
index 0000000..9f304ff
--- /dev/null
+++ b/source/30-game/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;
+}