Hi,
glfwSetKeyCallback
and glfwSetCharCallback
are indeed intended for different purposes.
glfwSetCharCallback is for text input, and is the direct text input provided by the operating system as native UTF-32
codepoints.
glfwSetKeyCallback is for physical key presses. The keys are identified by a platform specific scancode and mapped to a US layout virtual key code.
You can get hold of the Key names for keys and scancodes using glfwGetKeyName
, which will give an identifiable name (if possible) for a key, such as Z
for GLFW_KEY_W
on an AZERTY keyboard.
Typically programs use specific key callbacks to generate program events, such as CTRL+C
to quit, and char callbacks to input text when in a text input field. If you want to use the C
rather than virtual GLFW_KEY_C
key you can call glfwGetKeyName
to check the key name (it’s possible that some keyboards may not have a C key so it might be useful to have a fallback if you want to support these).
Cheers,
Doug.