Squeak regions (Was Re: Irregularly shaped main window

Duane Maxwell dmaxwell at entrypoint.com
Tue Feb 1 23:35:58 UTC 2000


Lawson English writes:
>Has anyone looked at implementing the QuickDraw region algorithm in Squeak?
>
>The patent has *certainly* run out since it has been more than 15 years
>since the Mac was introduced. I'm willing to bet that QD regions are STILL
>the most efficient and fastest way to describe an irregular region, and it
>would likely speed up Squeak graphics by a good bit to use the algorithm as
>a primitive, which is no longer covered by any patent, AFAIK.

The Atkinson patent is:

US4622545: Method and apparatus for image compression and manipulation

It was granted November 11, 1986, so it hasn't yet been 15 years.  It
doesn't matter, though, since patents issued prior to 1995 have a lifetime
of 17 years.  Bottom line - still not available, won't be until almost 2004.

The Apple method is a little rough in its rawest implementation due to the
use of scanline buffers - making it really efficient would probably require
the kind of time and brainpower Apple has applied to it over the years.
It's also notable that QD regions did not carry forward to QDGX, likely
because of the inherent resolution-dependence.

There are unencumbered alternatives to QD regions that are still pretty
efficient, including the shape algebra documented in GGII/1.9 by Steinhart.
I have a cleaned-up C implementation that can be readily converted to
Smalltalk - if someone else wants to hack BitBlt to use it.  It would
certainly be nicer to use a region as mask rather than a bitmap for many
things, and it would also be helpful to support region algebra.

-- Duane

===================================================
Duane Maxwell          dmaxwell (at) entrypoint.com
CTO                       http://www.entrypoint.com
EntryPoint, Inc.    (858)348-3040  FAX(858)348-3100

Information contained herein is my personal opinion
     and not necessarily that of EntryPoint.
===================================================







More information about the Squeak-dev mailing list