in reply to Re^4: Unable to capture mouse events in Win32::Console
in thread Unable to capture mouse events in Win32::Console
I can filter out mouse movement events, but then there would be a huge amount of CPU time spent in doing so.
There wouldn't. To begin with, Input blocks, you don't have to GetEvents at all, nor sleep/usleep. Next, if "event" is generated (or "message" is sent to application) in case of mouse motion, say, 20* times per second until motion ceases, it's "huge" amount of messages for a human, but your computer/CPU would hardly notice it has spent any time doing so and processing these messages per your instructions -- unless you yourself, as programmer, inadvertently put something time consuming/blocking into event loop.
Have a look at e.g. Term::Choose (which works on top of guess-what Perl module when on Windows), where mouse motion is simply discarded ("filtered") every time, if I'm reading the source correctly. Plus, by the way, I was going to suggest it as kind of higher-level/friendlier/cross-platform/feature-rich text-mode UI toolkit instead of you rolling out your own event loop application with Win32::Console.
(*) I'm sorry, I said "20", but can't, off the top of my hat, provide the exact figure (which probably depends on speed/distance) without googling.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^6: Unable to capture mouse events in Win32::Console
by fireblood (Scribe) on Apr 26, 2022 at 20:15 UTC | |
Re^6: Unable to capture mouse events in Win32::Console
by etj (Chaplain) on Apr 27, 2022 at 16:18 UTC | |
by vr (Curate) on Apr 27, 2022 at 18:44 UTC | |
by Anonymous Monk on Apr 28, 2022 at 02:15 UTC |