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!