Glfw: GLFW_PRESS im Tasten-Callback, nachdem die Taste einige Zeit gedrückt und losgelassen wurde

Erstellt am 7. März 2017  ·  4Kommentare  ·  Quelle: glfw/glfw

Linux Ubuntu
glfw Compile time info: 3.1.2 X11 GLX clock_gettime /dev/js XI Xf86vm geteilt
Laufzeit glfw-Version: 3.1.2

void App::key_callback(GLFWwindow*, int key, int, int action, int)
{
    if(action == GLFW_PRESS)
        keys.pressEvent(key);
    else if(action == GLFW_RELEASE)
        keys.releaseEvent(key);
}

Nachdem ich eine beliebige Taste drücke, erhalte ich wie erwartet GLFW_PRESS (Aktion). Nach dem Halten und Loslassen gibt es folgende Aktionen in der angegebenen Reihenfolge:
-GLFW_RELEASE
-GLFW_PRESS
-GLFW-FREIGABE

zusätzliche Druck- und Freigabeaktionen führen zu Verzögerungen in meiner Anwendung. Ich habe dieses Problem nicht unter Windows und Mac OS.

glfw Compile time info: 3.3.0 X11 GLX EGL clock_gettime /dev/js shared
Laufzeit glfw-Version: 3.3.0

funktioniert immer noch nicht

X11 bug duplicate verified

Alle 4 Kommentare

Möglicherweise bezogen auf https://github.com/glfw/glfw/issues/747. Können Sie im Testprogramm glfw events sehen, ob das Problem auftritt?

0000007a zu 1 bei 12.784: Taste 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde gedrückt
0000007b zu 1 bei 12.788: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
0000007c auf 1 bei 12.788: Zeichen 0x00000061 (a) Eingang
0000007d zu 1 bei 13,284: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
0000007e auf 1 bei 13,288: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
0000007f auf 1 bei 13,288: Zeichen 0x00000061 (a) Eingabe
00000080 auf 1 um 13.316: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000081 bis 1 bei 13.320: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
00000082 auf 1 bei 13.320: Zeichen 0x00000061 (a) Eingabe
00000083 auf 1 um 13.347: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000084 auf 1 bei 13.352: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
00000085 auf 1 bei 13.352: Zeichen 0x00000061 (a) Eingang
00000086 auf 1 um 13.377: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000087 auf 1 bei 13.382: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
00000088 auf 1 bei 13.382: Zeichen 0x00000061 (a) Eingang
00000089 auf 1 um 13.408: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
0000008a bis 1 bei 13.413: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
0000008b auf 1 bei 13.413: Zeichen 0x00000061 (a) Eingang
0000008c zu 1 bei 13.439: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
0000008d zu 1 bei 13.443: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
0000008e auf 1 bei 13.444: Zeichen 0x00000061 (a) Eingang
0000008f auf 1 bei 13,470: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000090 auf 1 bei 13.475: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
00000091 auf 1 bei 13.475: Zeichen 0x00000061 (a) Eingang
00000092 auf 1 um 13,501: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000093 auf 1 bei 13.506: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
00000094 auf 1 bei 13.506: Zeichen 0x00000061 (a) Eingang
00000095 auf 1 um 13.532: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000096 auf 1 bei 13.537: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
00000097 auf 1 bei 13.537: Zeichen 0x00000061 (a) Eingang
00000098 auf 1 bei 13.565: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
00000099 auf 1 bei 13.571: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
0000009a auf 1 bei 13.571: Zeichen 0x00000061 (a) Eingang
0000009b zu 1 um 13.594: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde wiederholt
0000009c zu ​​1 bei 13.596: Zeichen 0x00000061 (a) mit Modifikatoren (ohne Mods) Eingabe
0000009d auf 1 bei 13.596: Zeichen 0x00000061 (a) Eingang
0000009e auf 1 um 13.611: Schlüssel 0x0041 Scancode 0x0026 (A) (a) (ohne Mods) wurde veröffentlicht

hmm, es scheint im Ereignistest korrekt zu funktionieren.

Dies sollte nun mit 4ff66a7818e3eaa5362c828a18220b12f1cd9bc8 behoben werden.

funktioniert! :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen