|Re: Free42 for Pocket PC released|
Message #2 Posted by Thomas Okken on 29 Mar 2006, 12:18 p.m.,
in response to message #1 by Mike T.
Well dome !! - How does it work out when using a skin?
The skin code uses a GIF decoder I wrote myself, and then puts the data into a bitmap or a DIB. The GIF decoding part is a bit tricky, but I had that code lying around from another project, so it wasn't too bad. Copying the bitmap/DIB to the screen is a simple matter of calling BitBlt(). Note, however, that the code doesn't do any special handling for 8-bit screens -- I figured that's probably not an issue since everyone has 16-bit screens (or higher) these days. The Unix version does handle colormapped screens, and that *is* a serious pain.
The PocketPC skin display code is pretty much the same as the Win32 version; there's just some extra logic for skin stretching (pixel doubling on VGA screens) and weird display modes (the 5/3 horizontal stretch, and landscape mode).
[...] to port my code to Linux I'm going to have to learn C (hard work) and get to grips with GTK (ugh - very hard work!).
It's not easy learning C for the first time, but for what it's worth, by all means stick with GTK. It is much easier to use than the usual X libraries and toolkits. (The Free42 GTK front-end is only about half the size of the Motif front-end.)
Having used your HP42S emulator for a while I have to say that I'm very impressed with the job that the HP engineers did in designing the user interface.
I couldn't agree more. Also, when you're trying to re-create every last detail, by trying every possible keystroke in every possible mode, you discover just HOW hard they worked on it. I've never seen anything so meticulously well thought-out.