PICT versus PNG

One of the things that has changed in OS X this year is the deprecation of nearly everything PICT in the OS. PICTs have been the basic system representation for images on the Mac since the beginning. Quickdraw (used to make PICTS) was the default drawing environment. When OS X came along, the basic internal drawing is now done with Quartz, rather than Quickdraw. This change moves the drawing environment from a bitmap oriented system, to a "paint" style system.

So, what does this mean to TI Connect? TI Connect captures calculator screen images (which are very simple "bit" images, bit on, pixel on, bit off, pixel off. Internally, these have always been converted to a PICT using offscreen drawing techniques in Quickdraw. With the advent of PICT and most Quickdraw stuff being "deprecated" in OS X 10.4 (Tiger), TI Connect is going to need a new way of doing this work in the next update.

After a little discussion, and a lot of research, I'm moving the internal stuff to use Quartz when 10.4 is detected (PICTs and Quickdraw will still be used on 10.2 and 10.3). Basically, to make a Quartz image of the calculator screen, I paint a rectangle of an appropriate size all white (or green, if colored screens are wanted), and then paint a bunch of black "pixels" (a 1 x 1 rectangle) on the canvas. The resulting image is then converted to a PNG and passed around in that format. This appears to work pretty well so far. But of course, Friday rolled around, and I came up with another issue. We've historically had the ability to send images back to the calculator as well, in calculator-native formats. This was done with, you guessed it, PICTs, as an intermediary format, and extracting the bits out by copying the image data into a one pixel-depth (black and white) image. So, with PICTs basically gone for all intents and purposes, I'll need to design a new way of doing this next week. I've already got some ideas. I'll just have to see if they work out! Happy

I've also got to spend some time next week to get our automated build system back up and running, now that I've had the source for all my projects moved from my "personal" CVS server over to the departmental build machines and their CVS servers. Hopefully, it'll be a fairly straight-forward move. Then, I can start thinking about the new process we'll have to use for the upcoming TI Connect release (which should be a "universal" binary image). If you want to know about what this means, go over to Apple's website and read up on it!