christopherd
Topic Author
Posts: 8
Joined: 09 May 2022, 09:05

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

22 Jun 2022, 12:25

Sure, will do - thanks for the insight. I'll get back to you

(Update)
I'm afraid the windowing implementation we have doesn't use this; we use our own pump and messaging system to route the events to our Noesis code, which then updates the view (which returns false). All events are fired, and do reach a breakpoint to where we update the view.
 
User avatar
jsantos
Site Admin
Posts: 3458
Joined: 20 Jan 2012, 17:18
Contact:

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

23 Jun 2022, 11:44

Yes, I know you don't use our Window implementation. What I mean, is just opening our Login example, put the breakpoints in our Window.cpp (as mentioned above) to see the ordering of events that are sent to the view and then compare that with the order of view invocations in your application. Both applications use the same view, and one is working while the other one is not. So there must be a difference.
 
christopherd
Topic Author
Posts: 8
Joined: 09 May 2022, 09:05

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

23 Jun 2022, 11:46

My mistake. Thanks. Will do
 
User avatar
jsantos
Site Admin
Posts: 3458
Joined: 20 Jan 2012, 17:18
Contact:

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

23 Jun 2022, 11:49

Great! Let me know if you need more help. Let's see if we discover what's going on.
 
christopherd
Topic Author
Posts: 8
Joined: 09 May 2022, 09:05

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

15 Jul 2022, 11:33

Hey guys - I worked backwards with our implementation in our engine, and seem to have come to a solution. Most of this has come from the fact we use a low-level API to poll the keyboard every frame (WM_* messages are still processed selectively though). Our unicode events were using a different message queue which is shorter than the input queue, and arriving out-of-sync for start, and the speed we were reading and generating events was providing the effect of multiple keypresses (such as one short press of "a" resulting in "aaaaaaaaaaa", as every few ms we added a new press event).

Applying some selective filtering to these events, and ensuring the unicode events are in the right order, and simulating key repeat/delays led me to a working solution.

In the shortest terms, switching a fast-polling "game" model to an event-based "desktop WM_*" model helped line everything up.

Thanks for your help and suggestions, I appreciate it
 
User avatar
sfernandez
Site Admin
Posts: 2572
Joined: 22 Dec 2011, 19:20

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

15 Jul 2022, 11:52

Thanks for the update, marking this as solved then.

Who is online

Users browsing this forum: Ahrefs [Bot], Google [Bot], Semrush [Bot] and 2 guests