nanogui: Blocking mode operation for Microwindows/Win32 API
Subject:
Re: Blocking mode operation for Microwindows/Win32 API
From:
"Greg Haerr" ####@####.####
Date:
3 Jul 2001 06:38:32 -0000
Message-Id: <01de01c1038a$6b4a82e0$3aba46a6@xmission.com>
: Microwindow/Win32 API keeps polling for keypad and touch pad(mouse) scanning
: and
: for peeking messages. This is not good for battery powered device like PAD.
:
: I'm trying to change this polling mode operation to Blocking mode.
: To do this I modified select() of MwSelect()(in winmain.c) to blocking mode.
: But it prevents for WM_PAINT(and more(?)) message from being processed
: because
: program stops at MwSelect() which is in the middle of PeekMessage() and
: PeekMessage()
: function won't be returned.
I have looked briefly into this. The Win32 API should not be polling
continuously when not processing PeekMessage. Yes, there is some
trick code that post-processes the WM_PAINT messages during
GetMessage(), but this should stop when there are no internal messages
to process, and select() hangs.
However, if you compile with VTSWITCH=Y, then Microwindows sets
up a timer that could be firing in order to process the VT switch requests.
I suggest recompiling Microwindows without this option and seeing whether
this behaviour continues. Let me know and I'll continue to look into this bug.
Regards,
Greg