XScreenSaver 5.00 alpha 1

I don't usually do alpha/beta releases of xscreensaver, but I've made such sweeping changes this time around that I think it needs it:

If you use X11:

    Please download this release and try it out. Let me know of any problems you find, especially where behavior diverges from the previous version. Everything should work exactly the same as in the previous X11 version, but as I said, there have been a ton of changes to the source, much of which was automated, so I'm sure I've introduced bugs somewhere.

If you are the author of code included in XScreenSaver:

    Have an especially close look at your code, and send me patches if you think I messed it up. The changes I had to make were:

    • Instead of screenhack() being its own main loop, there are now "init" and "draw one frame" functions.
    • The "draw" function must not run for more than a fraction of a second without returning. That means don't loop a zillion times, and don't call usleep().

    • No global variables. No function-local static variables. All persistent information must be passed around in a "state" structure.

If you use MacOS 10.4 and XCode 2.2:

    Feel free to give it a try, but be advised that it's very flaky. It's also very slow, since I've done almost no optimization. For the OSX version, I'm not (yet) interested in bug reports that aren't also accompanied by fixes.

    About 160 of the savers work to some degree. The ones I haven't gotten working yet are mostly the ones that use ClipMasks, XOR, or that load and manipulate images, none of which I've written code for yet. (Patches welcome).

    Beware that a few of the savers are antisocial and will lock up your display until they finish rendering.

    Knowledgeable critiques of the organization of my XCode project, or the Quartz stuff in jwxyz.m, are welcome.

If you're just a humble Mac noncombatant who wants some new screen savers:

    Cool your jets, Sparky.
Tags: , , , ,