Program Listing for File input.hpp

Return to documentation for file (inexor/vulkan-renderer/input/input.hpp)

#pragma once

#include "inexor/vulkan-renderer/input/gamepad_data.hpp"
#include "inexor/vulkan-renderer/input/keyboard_mouse_data.hpp"

#include <GLFW/glfw3.h>

namespace inexor::vulkan_renderer::input {
class Input {
private:
    GamepadInputData m_gamepad_data;
    KeyboardMouseInputData m_kbm_data;

public:
    Input() = default;

    void cursor_position_callback(GLFWwindow *window, double x_pos, double y_pos);

    GamepadInputData &gamepad_data() {
        return m_gamepad_data;
    }

    KeyboardMouseInputData &kbm_data() {
        return m_kbm_data;
    }

    void key_callback(GLFWwindow *window, int key, int scancode, int action, int mods);

    void mouse_button_callback(GLFWwindow *window, int button, int action, int mods);

    void mouse_scroll_callback(GLFWwindow *window, double x_offset, double y_offset);

    void update();

    void update_gamepad_data();
};
} // namespace inexor::vulkan_renderer::input