Browse Source

Check raw keyboard input in checkkeys

Sam Lantinga 10 months ago
parent
commit
391a63f29f
1 changed files with 16 additions and 0 deletions
  1. 16 0
      test/checkkeys.c

+ 16 - 0
test/checkkeys.c

@@ -154,6 +154,19 @@ PrintText(const char *eventtype, const char *text)
     SDL_Log("%s Text (%s): \"%s%s\"\n", eventtype, expanded, *text == '"' ? "\\" : "", text);
 }
 
+static void CountKeysDown(void)
+{
+    int i, count = 0, max_keys = 0;
+    const Uint8 *keystate = SDL_GetKeyboardState(&max_keys);
+
+    for (i = 0; i < max_keys; ++i) {
+        if (keystate[i]) {
+            ++count;
+        }
+    }
+    SDL_Log("Keys down: %d\n", count);
+}
+
 static void loop(void)
 {
     SDL_Event event;
@@ -178,6 +191,7 @@ static void loop(void)
                     break;
                 }
             }
+            CountKeysDown();
             break;
         case SDL_EVENT_TEXT_EDITING:
             PrintText("EDIT", event.edit.text);
@@ -239,6 +253,8 @@ int main(int argc, char *argv[])
 {
     int w, h;
 
+    SDL_SetHint(SDL_HINT_WINDOWS_RAW_KEYBOARD, "1");
+
     /* Initialize test framework */
     state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
     if (!state) {