I have a full screen application that needs to use GAPI to get acceptable
screen update speeds, and access to all of the buttons on the PocketPC.
Unfortunately, I also need to be able to bring up the SIP panel (virtual
keyboard). The GAPI system appears to be violently opposed to allowing
this to happen, and stomps over the keyboard shortly after it is drawn
(sometimes it lasts for up to a few seconds). I have tried
GXSuspend/GXResume, GXCloseDisplay/GXOpenDisplay (which also breaks me out
of GAPI control of the buttons, which is incredibly bad), testing for
GXBeginDraw/GXEndDraw inclusion, manually copying the pixels of the
keyboard over into the GAPI buffer, GXSetViewPort, and everything else I
can think of, all to no avail. Some of these combinations are actually so
bad that they mess up the TCP/IP-over-ActiveSync system... I have also
noticed that the SIP frequently just decides to close itself (which is not
my current problem (at least not in all versions) because I can still click
on SIP keys even when it has been overwritten by GAPI)
I am using a Casio E-125, but I need a solution that is not unit specific
if at all possible. One of the sources of the problem appears to be that
Casio's GAPI system does not provide me with real hardware access. It
provides access to a buffer of memory somewhere else, which it then rotates
and pushes into the actual hardware (I REALLY WISH IT DIDN'T DO THIS. If I
wanted indirect access, I'd just use the GDI, except that I think the GDI
has to go through even more layers than this because it is definitely
slower.). This push from buffer to HW appears to happen either in or after
the call to GXEndDraw(). Since the image of the SIP never got pushed into
this buffer, the GXEndDraw() stomps over it. I have tried bringing the
keyboard up AFTER the GXEndDraw, but that doesn't work either, which
suggests that GXEndDraw simply signals an event and some other process or
thread does the actual copy.
GAPI seems to suffer from amazingly thin documentation (the .h file and the
gxsample project seem to be it. The MSDN Library docs are slim and
inaccurate in so many regards that I don't even bother looking any more).
Oh, and I have downloaded and installed the GAPI 1.2 library.
Any thoughts, comments, or suggestions would be greatly appreciated.
Senior Software Engineer