GEDemo README

Al Evans -- email al@powertools.com

WARNING!

We Be Geeks! This software uses pre-release library code which has
not been thoroughly tested and debugged under BeOS! In fact, it
contains one known bug: there is a very small, but finite, chance that
it will hang when one of its windows is being destroyed. Also, it
doesn't seem to clean up the audio stream correctly. IT IS HIGHLY
RECOMMENDED that you reboot your BeBox after running this program
and before doing anything important. You have been warned.

What is GEDemo?

Many of you Mac people will recognize GEDemo -- it's substantially the same 
demo program included in Graphic Elements Release 3 for the Macintosh. In
fact, the graphics portions are substantially the same source code. Anyway, 
it's a simple animation demo, showing how many common aspects of computer 
animation are handled in the Graphic Elements system.

Unfortunately, I was not able under BeOS 1.1d6 to get the library code
up to a level where I was comfortable releasing it in linkable form. But
I have included all the BeOS application and graphics source, so that
you can see how it all fits together.

What is Graphic Elements?

Graphic Elements is a cross-platform library and API for the development of
high-performance animated graphics. In the Graphic Elements system, any
graphic can react to all possible causes for a change in its
appearance: the passage of time, interaction with another graphic, and
the user's actions with the mouse. And any graphic can become a Graphic
Element by providing a rendering procedure, plus procedures for reacting
to one or all of these types of events.

Where can I get more info?

At this point, the complete Graphic Elements system and documentation
is available only in the form of Graphic Elements Release 3 for the
Macintosh. You can get it from mac.archive.umich.edu and mirrors
(path /mac/development/libraries/graphicelements3.0.sit.hqx) or
on the Apprentice 4 CD from Celestin Company.

What is cool about GEDemo?

The coolest thing about GEDemo is that it demonstrates the feasibility
of writing common graphic animation and interaction code in a cross-
platform manner. In fact, from the standpoint of its enclosing view
or window, the GEView class used to hold a Graphic Elements world presents
almost exactly the same interface as the LGEPane class used in
Metrowerks PowerPlant applications for the Macintosh. (There's also
a Windows 95 version, but you probably don't want to hear about that:-)

What is not cool?

The system: Because of its heritage, it uses the Macintosh terms for
many things. Because it was designed several years ago and intended to
be compatible with as many compilers as possible, it uses C syntax and
linkage. Although it is an object architecture, it is not -- yet -- an
object system.

The demo: There are some things in BeOS 1.1d6 that don't work right.
ConstrainClippingRegion() is one of them: if the cannonball passes over
the sign, it will leave a stripe of the wrong color. Playing 11kHz,
8-bit, monaural audio is another: in order to get acceptable latency,
I have to change it to 22kHz, 16-bit stereo on the fly. Finally,
BSoundFile tries to use AIFF-file chunks after the SSND chunk as data,
and I had to hand-edit the sound files to eliminate them. Some or
all of these things should be fixed in 1.1d7.

Oh yeah, and I realize the graphics are not very impressive. Hey, I'm
a software developer, not an artist!