Keyboard keys
Overview
See key input for how these are used.
These key codes are inspired by the USB HID Usage Tables v1.12 (p. 53-60), but re-arranged to map to 7-bit ASCII for printable keys (function keys are put in the 256+ range).
The naming of the key codes follow these rules:
The US keyboard layout is used
Names of printable alpha-numeric characters are used (e.g. “A”, “R”, “3”, etc.)
For non-alphanumeric characters, Unicode:ish names are used (e.g. “COMMA”, “LEFT_SQUARE_BRACKET”, etc.). Note that some names do not correspond to the Unicode standard (usually for brevity)
Keys that lack a clear US mapping are named “WORLD_x”
For non-printable keys, custom names are used (e.g. “F4”, “BACKSPACE”, etc.)
// macros #define GLFW_KEY_0 #define GLFW_KEY_1 #define GLFW_KEY_2 #define GLFW_KEY_3 #define GLFW_KEY_4 #define GLFW_KEY_5 #define GLFW_KEY_6 #define GLFW_KEY_7 #define GLFW_KEY_8 #define GLFW_KEY_9 #define GLFW_KEY_A #define GLFW_KEY_APOSTROPHE #define GLFW_KEY_B #define GLFW_KEY_BACKSLASH #define GLFW_KEY_BACKSPACE #define GLFW_KEY_C #define GLFW_KEY_CAPS_LOCK #define GLFW_KEY_COMMA #define GLFW_KEY_D #define GLFW_KEY_DELETE #define GLFW_KEY_DOWN #define GLFW_KEY_E #define GLFW_KEY_END #define GLFW_KEY_ENTER #define GLFW_KEY_EQUAL #define GLFW_KEY_ESCAPE #define GLFW_KEY_F #define GLFW_KEY_F1 #define GLFW_KEY_F10 #define GLFW_KEY_F11 #define GLFW_KEY_F12 #define GLFW_KEY_F13 #define GLFW_KEY_F14 #define GLFW_KEY_F15 #define GLFW_KEY_F16 #define GLFW_KEY_F17 #define GLFW_KEY_F18 #define GLFW_KEY_F19 #define GLFW_KEY_F2 #define GLFW_KEY_F20 #define GLFW_KEY_F21 #define GLFW_KEY_F22 #define GLFW_KEY_F23 #define GLFW_KEY_F24 #define GLFW_KEY_F25 #define GLFW_KEY_F3 #define GLFW_KEY_F4 #define GLFW_KEY_F5 #define GLFW_KEY_F6 #define GLFW_KEY_F7 #define GLFW_KEY_F8 #define GLFW_KEY_F9 #define GLFW_KEY_G #define GLFW_KEY_GRAVE_ACCENT #define GLFW_KEY_H #define GLFW_KEY_HOME #define GLFW_KEY_I #define GLFW_KEY_INSERT #define GLFW_KEY_J #define GLFW_KEY_K #define GLFW_KEY_KP_0 #define GLFW_KEY_KP_1 #define GLFW_KEY_KP_2 #define GLFW_KEY_KP_3 #define GLFW_KEY_KP_4 #define GLFW_KEY_KP_5 #define GLFW_KEY_KP_6 #define GLFW_KEY_KP_7 #define GLFW_KEY_KP_8 #define GLFW_KEY_KP_9 #define GLFW_KEY_KP_ADD #define GLFW_KEY_KP_DECIMAL #define GLFW_KEY_KP_DIVIDE #define GLFW_KEY_KP_ENTER #define GLFW_KEY_KP_EQUAL #define GLFW_KEY_KP_MULTIPLY #define GLFW_KEY_KP_SUBTRACT #define GLFW_KEY_L #define GLFW_KEY_LAST #define GLFW_KEY_LEFT #define GLFW_KEY_LEFT_ALT #define GLFW_KEY_LEFT_BRACKET #define GLFW_KEY_LEFT_CONTROL #define GLFW_KEY_LEFT_SHIFT #define GLFW_KEY_LEFT_SUPER #define GLFW_KEY_M #define GLFW_KEY_MENU #define GLFW_KEY_MINUS #define GLFW_KEY_N #define GLFW_KEY_NUM_LOCK #define GLFW_KEY_O #define GLFW_KEY_P #define GLFW_KEY_PAGE_DOWN #define GLFW_KEY_PAGE_UP #define GLFW_KEY_PAUSE #define GLFW_KEY_PERIOD #define GLFW_KEY_PRINT_SCREEN #define GLFW_KEY_Q #define GLFW_KEY_R #define GLFW_KEY_RIGHT #define GLFW_KEY_RIGHT_ALT #define GLFW_KEY_RIGHT_BRACKET #define GLFW_KEY_RIGHT_CONTROL #define GLFW_KEY_RIGHT_SHIFT #define GLFW_KEY_RIGHT_SUPER #define GLFW_KEY_S #define GLFW_KEY_SCROLL_LOCK #define GLFW_KEY_SEMICOLON #define GLFW_KEY_SLASH #define GLFW_KEY_SPACE #define GLFW_KEY_T #define GLFW_KEY_TAB #define GLFW_KEY_U #define GLFW_KEY_UNKNOWN #define GLFW_KEY_UP #define GLFW_KEY_V #define GLFW_KEY_W #define GLFW_KEY_WORLD_1 #define GLFW_KEY_WORLD_2 #define GLFW_KEY_X #define GLFW_KEY_Y #define GLFW_KEY_Z