mirror of
https://github.com/glfw/glfw.git
synced 2026-09-22 08:50:15 +00:00
Merge branch 'marcus-rawkeys'. Changed handling of raw key codes.
This commit is contained in:
+101
-52
@@ -46,9 +46,60 @@ static const char* get_key_name(int key)
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case GLFW_KEY_UNKNOWN: return "unknown";
|
||||
case GLFW_KEY_SPACE: return "space";
|
||||
case GLFW_KEY_ESC: return "escape";
|
||||
// Printable keys
|
||||
case GLFW_KEY_A: return "A";
|
||||
case GLFW_KEY_B: return "B";
|
||||
case GLFW_KEY_C: return "C";
|
||||
case GLFW_KEY_D: return "D";
|
||||
case GLFW_KEY_E: return "E";
|
||||
case GLFW_KEY_F: return "F";
|
||||
case GLFW_KEY_G: return "G";
|
||||
case GLFW_KEY_H: return "H";
|
||||
case GLFW_KEY_I: return "I";
|
||||
case GLFW_KEY_J: return "J";
|
||||
case GLFW_KEY_K: return "K";
|
||||
case GLFW_KEY_L: return "L";
|
||||
case GLFW_KEY_M: return "M";
|
||||
case GLFW_KEY_N: return "N";
|
||||
case GLFW_KEY_O: return "O";
|
||||
case GLFW_KEY_P: return "P";
|
||||
case GLFW_KEY_Q: return "Q";
|
||||
case GLFW_KEY_R: return "R";
|
||||
case GLFW_KEY_S: return "S";
|
||||
case GLFW_KEY_T: return "T";
|
||||
case GLFW_KEY_U: return "U";
|
||||
case GLFW_KEY_V: return "V";
|
||||
case GLFW_KEY_W: return "W";
|
||||
case GLFW_KEY_X: return "X";
|
||||
case GLFW_KEY_Y: return "Y";
|
||||
case GLFW_KEY_Z: return "Z";
|
||||
case GLFW_KEY_1: return "1";
|
||||
case GLFW_KEY_2: return "2";
|
||||
case GLFW_KEY_3: return "3";
|
||||
case GLFW_KEY_4: return "4";
|
||||
case GLFW_KEY_5: return "5";
|
||||
case GLFW_KEY_6: return "6";
|
||||
case GLFW_KEY_7: return "7";
|
||||
case GLFW_KEY_8: return "8";
|
||||
case GLFW_KEY_9: return "9";
|
||||
case GLFW_KEY_0: return "0";
|
||||
case GLFW_KEY_SPACE: return "SPACE";
|
||||
case GLFW_KEY_MINUS: return "MINUS";
|
||||
case GLFW_KEY_EQUAL: return "EQUAL";
|
||||
case GLFW_KEY_LEFT_BRACKET: return "LEFT BRACKET";
|
||||
case GLFW_KEY_RIGHT_BRACKET: return "RIGHT BRACKET";
|
||||
case GLFW_KEY_BACKSLASH: return "BACKSLASH";
|
||||
case GLFW_KEY_SEMICOLON: return "SEMICOLON";
|
||||
case GLFW_KEY_APOSTROPHE: return "APOSTROPHE";
|
||||
case GLFW_KEY_GRAVE_ACCENT: return "GRAVE ACCENT";
|
||||
case GLFW_KEY_COMMA: return "COMMA";
|
||||
case GLFW_KEY_PERIOD: return "PERIOD";
|
||||
case GLFW_KEY_SLASH: return "SLASH";
|
||||
case GLFW_KEY_WORLD_1: return "WORLD 1";
|
||||
case GLFW_KEY_WORLD_2: return "WORLD 2";
|
||||
|
||||
// Function keys
|
||||
case GLFW_KEY_ESCAPE: return "ESCAPE";
|
||||
case GLFW_KEY_F1: return "F1";
|
||||
case GLFW_KEY_F2: return "F2";
|
||||
case GLFW_KEY_F3: return "F3";
|
||||
@@ -74,52 +125,52 @@ static const char* get_key_name(int key)
|
||||
case GLFW_KEY_F23: return "F23";
|
||||
case GLFW_KEY_F24: return "F24";
|
||||
case GLFW_KEY_F25: return "F25";
|
||||
case GLFW_KEY_UP: return "up";
|
||||
case GLFW_KEY_DOWN: return "down";
|
||||
case GLFW_KEY_LEFT: return "left";
|
||||
case GLFW_KEY_RIGHT: return "right";
|
||||
case GLFW_KEY_LSHIFT: return "left shift";
|
||||
case GLFW_KEY_RSHIFT: return "right shift";
|
||||
case GLFW_KEY_LCTRL: return "left control";
|
||||
case GLFW_KEY_RCTRL: return "right control";
|
||||
case GLFW_KEY_LALT: return "left alt";
|
||||
case GLFW_KEY_RALT: return "right alt";
|
||||
case GLFW_KEY_TAB: return "tab";
|
||||
case GLFW_KEY_ENTER: return "enter";
|
||||
case GLFW_KEY_BACKSPACE: return "backspace";
|
||||
case GLFW_KEY_INSERT: return "insert";
|
||||
case GLFW_KEY_DEL: return "delete";
|
||||
case GLFW_KEY_PAGEUP: return "page up";
|
||||
case GLFW_KEY_PAGEDOWN: return "page down";
|
||||
case GLFW_KEY_HOME: return "home";
|
||||
case GLFW_KEY_END: return "end";
|
||||
case GLFW_KEY_KP_0: return "keypad 0";
|
||||
case GLFW_KEY_KP_1: return "keypad 1";
|
||||
case GLFW_KEY_KP_2: return "keypad 2";
|
||||
case GLFW_KEY_KP_3: return "keypad 3";
|
||||
case GLFW_KEY_KP_4: return "keypad 4";
|
||||
case GLFW_KEY_KP_5: return "keypad 5";
|
||||
case GLFW_KEY_KP_6: return "keypad 6";
|
||||
case GLFW_KEY_KP_7: return "keypad 7";
|
||||
case GLFW_KEY_KP_8: return "keypad 8";
|
||||
case GLFW_KEY_KP_9: return "keypad 9";
|
||||
case GLFW_KEY_KP_DIVIDE: return "keypad divide";
|
||||
case GLFW_KEY_KP_MULTIPLY: return "keypad multiply";
|
||||
case GLFW_KEY_KP_SUBTRACT: return "keypad subtract";
|
||||
case GLFW_KEY_KP_ADD: return "keypad add";
|
||||
case GLFW_KEY_KP_DECIMAL: return "keypad decimal";
|
||||
case GLFW_KEY_KP_EQUAL: return "keypad equal";
|
||||
case GLFW_KEY_KP_ENTER: return "keypad enter";
|
||||
case GLFW_KEY_KP_NUM_LOCK: return "keypad num lock";
|
||||
case GLFW_KEY_CAPS_LOCK: return "caps lock";
|
||||
case GLFW_KEY_SCROLL_LOCK: return "scroll lock";
|
||||
case GLFW_KEY_PAUSE: return "pause";
|
||||
case GLFW_KEY_LSUPER: return "left super";
|
||||
case GLFW_KEY_RSUPER: return "right super";
|
||||
case GLFW_KEY_MENU: return "menu";
|
||||
}
|
||||
case GLFW_KEY_UP: return "UP";
|
||||
case GLFW_KEY_DOWN: return "DOWN";
|
||||
case GLFW_KEY_LEFT: return "LEFT";
|
||||
case GLFW_KEY_RIGHT: return "RIGHT";
|
||||
case GLFW_KEY_LEFT_SHIFT: return "LEFT SHIFT";
|
||||
case GLFW_KEY_RIGHT_SHIFT: return "RIGHT SHIFT";
|
||||
case GLFW_KEY_LEFT_CONTROL: return "LEFT CONTROL";
|
||||
case GLFW_KEY_RIGHT_CONTROL: return "RIGHT CONTROL";
|
||||
case GLFW_KEY_LEFT_ALT: return "LEFT ALT";
|
||||
case GLFW_KEY_RIGHT_ALT: return "RIGHT ALT";
|
||||
case GLFW_KEY_TAB: return "TAB";
|
||||
case GLFW_KEY_ENTER: return "ENTER";
|
||||
case GLFW_KEY_BACKSPACE: return "BACKSPACE";
|
||||
case GLFW_KEY_INSERT: return "INSERT";
|
||||
case GLFW_KEY_DELETE: return "DELETE";
|
||||
case GLFW_KEY_PAGE_UP: return "PAGE UP";
|
||||
case GLFW_KEY_PAGE_DOWN: return "PAGE DOWN";
|
||||
case GLFW_KEY_HOME: return "HOME";
|
||||
case GLFW_KEY_END: return "END";
|
||||
case GLFW_KEY_KP_0: return "KEYPAD 0";
|
||||
case GLFW_KEY_KP_1: return "KEYPAD 1";
|
||||
case GLFW_KEY_KP_2: return "KEYPAD 2";
|
||||
case GLFW_KEY_KP_3: return "KEYPAD 3";
|
||||
case GLFW_KEY_KP_4: return "KEYPAD 4";
|
||||
case GLFW_KEY_KP_5: return "KEYPAD 5";
|
||||
case GLFW_KEY_KP_6: return "KEYPAD 6";
|
||||
case GLFW_KEY_KP_7: return "KEYPAD 7";
|
||||
case GLFW_KEY_KP_8: return "KEYPAD 8";
|
||||
case GLFW_KEY_KP_9: return "KEYPAD 9";
|
||||
case GLFW_KEY_KP_DIVIDE: return "KEYPAD DIVIDE";
|
||||
case GLFW_KEY_KP_MULTIPLY: return "KEYPAD MULTPLY";
|
||||
case GLFW_KEY_KP_SUBTRACT: return "KEYPAD SUBTRACT";
|
||||
case GLFW_KEY_KP_ADD: return "KEYPAD ADD";
|
||||
case GLFW_KEY_KP_DECIMAL: return "KEYPAD DECIMAL";
|
||||
case GLFW_KEY_KP_EQUAL: return "KEYPAD EQUAL";
|
||||
case GLFW_KEY_KP_ENTER: return "KEYPAD ENTER";
|
||||
case GLFW_KEY_NUM_LOCK: return "NUM LOCK";
|
||||
case GLFW_KEY_CAPS_LOCK: return "CAPS LOCK";
|
||||
case GLFW_KEY_SCROLL_LOCK: return "SCROLL LOCK";
|
||||
case GLFW_KEY_PAUSE: return "PAUSE";
|
||||
case GLFW_KEY_LEFT_SUPER: return "LEFT SUPER";
|
||||
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
|
||||
case GLFW_KEY_MENU: return "MENU";
|
||||
|
||||
return NULL;
|
||||
default: return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static const char* get_action_name(int action)
|
||||
@@ -231,8 +282,6 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
|
||||
if (name)
|
||||
printf(" (%s) was %s\n", name, get_action_name(action));
|
||||
else if (isgraph(key))
|
||||
printf(" (%c) was %s\n", key, get_action_name(action));
|
||||
else
|
||||
printf(" was %s\n", get_action_name(action));
|
||||
|
||||
@@ -241,7 +290,7 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
|
||||
switch (key)
|
||||
{
|
||||
case 'R':
|
||||
case GLFW_KEY_R:
|
||||
{
|
||||
keyrepeat = !keyrepeat;
|
||||
if (keyrepeat)
|
||||
@@ -253,7 +302,7 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
break;
|
||||
}
|
||||
|
||||
case 'S':
|
||||
case GLFW_KEY_S:
|
||||
{
|
||||
systemkeys = !systemkeys;
|
||||
if (systemkeys)
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ static void window_key_callback(GLFWwindow window, int key, int action)
|
||||
|
||||
switch (key)
|
||||
{
|
||||
case GLFW_KEY_ESC:
|
||||
case GLFW_KEY_ESCAPE:
|
||||
{
|
||||
printf("%0.3f: User pressed Escape\n", glfwGetTime());
|
||||
running = GL_FALSE;
|
||||
|
||||
+7
-7
@@ -51,35 +51,35 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
|
||||
switch (key)
|
||||
{
|
||||
case GLFW_KEY_ESC:
|
||||
case GLFW_KEY_ESCAPE:
|
||||
glfwCloseWindow(window);
|
||||
break;
|
||||
case 'Q':
|
||||
case GLFW_KEY_Q:
|
||||
ggamma += 0.1f;
|
||||
printf("Gamma: %f\n", ggamma);
|
||||
glfwSetGammaFormula( ggamma, gblacklevel, ggain );
|
||||
break;
|
||||
case 'W':
|
||||
case GLFW_KEY_W:
|
||||
ggamma -= 0.1f;
|
||||
printf("Gamma: %f\n", ggamma);
|
||||
glfwSetGammaFormula( ggamma, gblacklevel, ggain );
|
||||
break;
|
||||
case 'A':
|
||||
case GLFW_KEY_A:
|
||||
ggain += 0.1f;
|
||||
printf("Gain: %f\n", ggain);
|
||||
glfwSetGammaFormula( ggamma, gblacklevel, ggain );
|
||||
break;
|
||||
case 'S':
|
||||
case GLFW_KEY_S:
|
||||
ggain -= 0.1f;
|
||||
printf("Gain: %f\n", ggain);
|
||||
glfwSetGammaFormula( ggamma, gblacklevel, ggain );
|
||||
break;
|
||||
case 'Z':
|
||||
case GLFW_KEY_Z:
|
||||
gblacklevel += 0.1f;
|
||||
printf("Black Level: %f\n", gblacklevel);
|
||||
glfwSetGammaFormula( ggamma, gblacklevel, ggain );
|
||||
break;
|
||||
case 'X':
|
||||
case GLFW_KEY_X:
|
||||
gblacklevel -= 0.1f;
|
||||
printf("Black Level: %f\n", gblacklevel);
|
||||
glfwSetGammaFormula( ggamma, gblacklevel, ggain );
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
case GLFW_KEY_SPACE:
|
||||
glfwIconifyWindow(window);
|
||||
break;
|
||||
case GLFW_KEY_ESC:
|
||||
case GLFW_KEY_ESCAPE:
|
||||
glfwCloseWindow(window);
|
||||
break;
|
||||
}
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
break;
|
||||
}
|
||||
|
||||
case 'R':
|
||||
case GLFW_KEY_R:
|
||||
{
|
||||
if (action == GLFW_PRESS)
|
||||
{
|
||||
|
||||
+2
-2
@@ -73,8 +73,8 @@ static void key_callback(GLFWwindow window, int key, int action)
|
||||
|
||||
switch (key)
|
||||
{
|
||||
case 'Q':
|
||||
case GLFW_KEY_ESC:
|
||||
case GLFW_KEY_Q:
|
||||
case GLFW_KEY_ESCAPE:
|
||||
closed = GL_TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
|
||||
static void key_callback(GLFWwindow window, int key, int action)
|
||||
{
|
||||
if (action == GLFW_PRESS && key == GLFW_KEY_ESC)
|
||||
if (action == GLFW_PRESS && key == GLFW_KEY_ESCAPE)
|
||||
glfwCloseWindow(window);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user