Input::Keyboard
Keyboard Input Handling in Unified Engine
The Unified Engine provides comprehensive tools for keyboard input management through the KeyboardController
class, KeyboardButtonEnums
enumeration, and related functionalities.
Keyboard Button Enumeration
A complete set of key enumerations for capturing keyboard inputs, ranging from letters, numbers, and symbols to function keys and more.
enum KeyboardButtonEnums{
'//Numbers
Key_0 = GLFW_KEY_0,
Key_1 = GLFW_KEY_1,
Key_2 = GLFW_KEY_2,
Key_3 = GLFW_KEY_3,
Key_4 = GLFW_KEY_4,
Key_5 = GLFW_KEY_5,
Key_6 = GLFW_KEY_6,
Key_7 = GLFW_KEY_7,
Key_8 = GLFW_KEY_8,
Key_9 = GLFW_KEY_9,
//Alphabet
Key_A = GLFW_KEY_A,
Key_B = GLFW_KEY_B,
Key_C = GLFW_KEY_C,
Key_D = GLFW_KEY_D,
Key_E = GLFW_KEY_E,
Key_F = GLFW_KEY_F,
Key_G = GLFW_KEY_G,
Key_H = GLFW_KEY_H,
Key_I = GLFW_KEY_I,
Key_J = GLFW_KEY_J,
Key_K = GLFW_KEY_K,
Key_L = GLFW_KEY_L,
Key_M = GLFW_KEY_M,
Key_N = GLFW_KEY_N,
Key_O = GLFW_KEY_O,
Key_P = GLFW_KEY_P,
Key_Q = GLFW_KEY_Q,
Key_R = GLFW_KEY_R,
Key_S = GLFW_KEY_S,
Key_T = GLFW_KEY_T,
Key_U = GLFW_KEY_U,
Key_V = GLFW_KEY_V,
Key_W = GLFW_KEY_W,
Key_X = GLFW_KEY_X,
Key_Y = GLFW_KEY_Y,
Key_Z = GLFW_KEY_Z,
//Numpad
Key_NP_0 = GLFW_KEY_KP_0,
Key_NP_1 = GLFW_KEY_KP_1,
Key_NP_2 = GLFW_KEY_KP_2,
Key_NP_3 = GLFW_KEY_KP_3,
Key_NP_4 = GLFW_KEY_KP_4,
Key_NP_5 = GLFW_KEY_KP_5,
Key_NP_6 = GLFW_KEY_KP_6,
Key_NP_7 = GLFW_KEY_KP_7,
Key_NP_8 = GLFW_KEY_KP_8,
Key_NP_9 = GLFW_KEY_KP_9,
Key_NP_ADD = GLFW_KEY_KP_ADD,
Key_NP_DECIMAL = GLFW_KEY_KP_DECIMAL,
Key_NP_DIVIDE = GLFW_KEY_KP_DIVIDE,
Key_NP_ENTER = GLFW_KEY_KP_ENTER,
Key_NP_EQUAL = GLFW_KEY_KP_EQUAL,
Key_NP_MULTIPLY = GLFW_KEY_KP_MULTIPLY,
Key_NP_SUBTRACT = GLFW_KEY_KP_SUBTRACT,
//Fn keys
Key_F1 = GLFW_KEY_F1,
Key_F2 = GLFW_KEY_F2,
Key_F3 = GLFW_KEY_F3,
Key_F4 = GLFW_KEY_F4,
Key_F5 = GLFW_KEY_F5,
Key_F6 = GLFW_KEY_F6,
Key_F7 = GLFW_KEY_F7,
Key_F8 = GLFW_KEY_F8,
Key_F9 = GLFW_KEY_F9,
Key_F10 = GLFW_KEY_F10,
Key_F11 = GLFW_KEY_F11,
Key_F12 = GLFW_KEY_F12,
//Right Side
Key_RIGHT_ALT = GLFW_KEY_RIGHT_ALT,
Key_RIGHT_BRACKET = GLFW_KEY_RIGHT_BRACKET,
Key_RIGHT_CONTROL = GLFW_KEY_RIGHT_CONTROL,
Key_RIGHT_SHIFT = GLFW_KEY_RIGHT_SHIFT,
Key_RIGHT_SUPER = GLFW_KEY_RIGHT_SUPER,
//Left Side
Key_LEFT_ALT = GLFW_KEY_LEFT_ALT,
Key_LEFT_BRACKET = GLFW_KEY_LEFT_BRACKET,
Key_LEFT_CONTROL = GLFW_KEY_LEFT_CONTROL,
Key_LEFT_SHIFT = GLFW_KEY_LEFT_SHIFT,
Key_LEFT_SUPER = GLFW_KEY_LEFT_SUPER,
//Arrows
Key_UP = GLFW_KEY_UP,
Key_DOWN = GLFW_KEY_DOWN,
Key_LEFT = GLFW_KEY_LEFT,
Key_RIGHT = GLFW_KEY_RIGHT,
//Functions
Key_BACKSPACE = GLFW_KEY_BACKSPACE,
Key_CAPS_LOCK = GLFW_KEY_CAPS_LOCK,
Key_DELETE = GLFW_KEY_DELETE,
Key_END = GLFW_KEY_END,
Key_ENTER = GLFW_KEY_ENTER,
Key_ESCAPE = GLFW_KEY_ESCAPE,
Key_HOME = GLFW_KEY_HOME,
Key_INSERT = GLFW_KEY_INSERT,
Key_LAST = GLFW_KEY_LAST,
Key_MENU = GLFW_KEY_MENU,
Key_PAGE_DOWN = GLFW_KEY_PAGE_DOWN,
Key_PAGE_UP = GLFW_KEY_PAGE_UP,
Key_PAUSE = GLFW_KEY_PAUSE,
Key_TAB = GLFW_KEY_TAB,
Key_SPACE = GLFW_KEY_SPACE,
//Symbols
Key_APOSTROPHE = GLFW_KEY_APOSTROPHE,
Key_BACKSLASH = GLFW_KEY_BACKSLASH,
Key_COMMA = GLFW_KEY_COMMA,
Key_EQUAL = GLFW_KEY_EQUAL,
Key_GRAVE_ACCENT = GLFW_KEY_GRAVE_ACCENT,
Key_MINUS = GLFW_KEY_MINUS,
Key_PERIOD = GLFW_KEY_PERIOD,
Key_SEMICOLON = GLFW_KEY_SEMICOLON,
Key_FORWARDSLASH = GLFW_KEY_SLASH
};
Keyboard Controller Class
The KeyboardController
class serves as the primary tool to interact with keyboard input. It provides functionalities to check for key presses.
class KeyboardController{
private:
GLFWwindow* window;
public:
KeyboardController(GLFWwindow* window);
bool KeyPressed(KeyboardButtonEnums key);
};
Key Callbacks and Global States
The engine provides mechanisms to keep track of the last key pressed and other global keyboard states. Callbacks are used to update these states dynamically.
namespace Keys
{
extern int LastKeyPressed;
extern int LastCharecterPressed;
static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods);
static void character_callback(GLFWwindow* window, unsigned int codepoint);
}
Last updated