#include "Input/InputManager.h" namespace BarinkEngine { void InputManager::PollEvents() { for (auto it = windows.begin(); it != windows.end(); ++it) { (*it)->Poll(); } } void InputManager::setupGLFWInput(GLFWwindow* window) { // Attach callbacks glfwSetKeyCallback(window, BarinkEngine::Input::BE_GLFW_KEYS); glfwSetCursorPosCallback(window, BarinkEngine::Input::BE_GLFW_CURSOR_POSITION); glfwSetCursorEnterCallback(window, BarinkEngine::Input::BE_GLFW_CURSOR_ENTER); glfwSetMouseButtonCallback(window, BarinkEngine::Input::BE_GLFW_MOUSE_BUTTON); glfwSetScrollCallback(window, BarinkEngine::Input::BE_GLFW_SCROLL); } void InputManager::attach(BarinkWindow* window) { windows.push_back(window); this->Subscribe((EventListener&)(*window)); } void InputManager::detach(BarinkWindow* window) { windows.remove(window); this->Unsubscribe((EventListener&)*window); } InputManager::InputManager() : EventEmitter() { windows = std::list(); } }