[comp.sys.mac.programmer] The Last Screen Saver

liberte@zaphod.ncsa.uiuc.edu (05/06/88)

With all these screensavers in the works and coming out, I would like
to see the screensaver to end all screensavers, at least under multifinder.  

- One screensaver could be customizable to launch a designated
  application which would do the fancy graphics.  
- The screensaver could have an optional fade-to-black or let the application
  do its own blackout.  
- The signal to quit the screensaver might be specified as
  mouse-motion, mouse-button, any key, some particular key, etc.  
- If possible, the designated application could be preloaded at startup.  

Since all the details of how to make the screensaver work with multiple
screens, background processes, etc, are difficult to get right and since
everyone wants their own fancy graphics display while saving the screen
and since it is difficult to write much in an init anyway, someone should do
the init part right and let the rest of us do the graphics.  Is this a
reasonable possibility?  Is there a way to make this work with other
finders and substitutes?

Dan LaLiberte
National Center for Supercomputing Applications
liberte@ncsa.uiuc.edu

alibaba@ucscb.UCSC.EDU (Alexander M. Rosenberg) (05/07/88)

In article <900003@zaphod> liberte@zaphod.ncsa.uiuc.edu writes:
>- One screensaver could be customizable to launch a designated
>  application which would do the fancy graphics.  

I like this. Why not just let it use some sort of well deined definition
code idea? Like with MDEFs, WDEFs, CDEFs, etc. Setup an interface, and
some rules, and build the INIT part with a default of fade-to-black. I
like it.

-------------------------------------------------------------------------------
-  Alexander M. Rosenberg  - INTERNET: alibaba@ucscb.ucsc.edu   - Yoyodyne    -
-  Crown College, UCSC     - UUCP:...!ucbvax!ucscc!ucscb!alibaba- Propulsion  -
-  Santa Cruz, CA 95064    - BITNET:alibaba%ucscb@ucscc.BITNET  - Systems     -
-  (408) 426-8869          - Disclaimer: Nobody is my employer  - :-)         -
-                          - so nobody cares what I say.        -             -

steele@unc.cs.unc.edu (Oliver Steele) (05/07/88)

liberte@zaphod.ncsa.uiuc.edu writes:
>
>With all these screensavers in the works and coming out, I would like
>to see the screensaver to end all screensavers, at least under multifinder.  
>
> [lots of useful features deleted]

I was just thinking about this when your posting came, and what I'd
thought most useful would be a CDEV that presents, in a Sound CDEV style
list, all the named SCSV resources in itself or the System file (the
latter so that Suitcase can be used to specify additional files).  Each
SCSV could contain a procedure
	enum {SCSVCheck, SCSVInit, SCSVDispose, SCSVUpdate};
	pascal long SCSV(int message, long ref, [C]GrafPtr port, Rect *bounds);
which, on a Check command, returned true if it could run on the selected
machine (so that color drawing programs could turn themselves off on
monochrome macs and IIs in 1-bit mode), and on an Update command, redrew
the specified rectangle.  Init, Dispose, the ref parameter, and the
return value could be used for storage, the same as a CDEV has (see
IM5).

I might write this someday if nobody else does, so tell me if you're doing
it instead.

 ---------------------------------------------------------------------------
 Oliver Steele					  ...!decnet!mcnc!unc!steele
 UNC-CH							   steele@cs.unc.edu

 "We made it structured, and now it doesn't work." -- Brice Tebbs

steele@unc.cs.unc.edu (Oliver Steele) (05/08/88)

I (steele@unc.UUCP) wrote:
>Each SCSV could contain a procedure
>	pascal long SCSV(int message, long ref, [C]GrafPtr port, Rect *bounds);
>which, [...] on an Update command, redrew the specified rectangle.

Actually, you'd probably want to call it over and over again and let it
operate on the whole screen (so you can factor event-happened detection
out of the screen savers).  The above interface was for a similar proposed
backdrop CDEV/INIT, to allow NeWSy procedural definitions of the desktop
pattern instead of just the various Backdrop, DeskPict, and ColorDesk
CDEVs and INITs.  Gives "background procedure" new meaning...

 ---------------------------------------------------------------------------
 Oliver Steele					  ...!decnet!mcnc!unc!steele
 UNC-CH							   steele@cs.unc.edu

 "We made it structured, and now it doesn't work." -- Brice Tebbs

Tim_M_Dierks@cup.portal.com (05/09/88)

liberte@zaphod.ncsa.uiuc.edu writes:
>With all these screensavers in the works and coming out, I would like
>to see the screensaver to end all screensavers, at least under multifinder.
>
>- One screensaver could be customizable to launch a designated
>  application which would do the fancy graphics.
>- The screensaver could have an optional fade-to-black or let the application
>  do its own blackout.
>- The signal to quit the screensaver might be specified as
>  mouse-motion, mouse-button, any key, some particular key, etc.
>- If possible, the designated application could be preloaded at startup.

I'd really like to see this, too.  I know enough to write some really nifty
quickdraw screen-saving type code, but not enough to write a robust screen
backing init.  Here's what I'd like to see:

- Have the programmer interface work like this: The programmer writes a pascal-
  type function that accepts a big structure with all kinds of interesting info
  like most of the interesting quickdraw globals, etc, and a command code,
  which includes such commands as: black out the screen, drawing in the current
  port, continue drawing your screen-saving design, take a look at this event
  and tell me whether I should unblank the screen, etc, etc.  The programmer
  then compiles this function into some kind of code resource, then makes it
  available to the screensaver.
- This code resource should be loaded from a file at startup.  The file should
  have an icon that shows it to be a screensaver file.  The init file should
  also be a cdev that allows users to pick either a particular file to be
  loaded, or allow a random pick from a folder kind of thing.  By bundling the
  code resources into files, it makes it easier to distribute these things on
  the net, bbs's, CI$, etc.  No doubt a good number of them would be written
  and distributed.
- The blanking code and background task code should be _very_ robust.  I'd
  like to see the folks who wrote Pyro! write this one.  I'd just as soon not
  be stuck with glitches like Moire and Flex, both of which tend to erase all
  my disk icons if they switch in during a disk copy, then I switch them out
  [by moving the mouse or whatever] before it ends.  Seems the Finder's copy
  window just throws update events away.

Anyway, I've been thinking about this for a while, and I think it's a great
idea.  If anyone knows a real great programmer who could write this well,
please talk them into it.... [Oster, CE Software, etc, etc, you listening?]

I know I'd pay $50 or so for a really good screensaver I could write my own
code for.

Imagine... Stars in an auto-blanking screensaver!

+---------------------------------------------------+-------------------------+
| Tim Dierks            Tim_M_Dierks@cup.portal.com |  C4TKG3@IRISHMVS.BITNET |
| {backbone}!sun!portal!cup.portal.com!Tim_M_Dierks |  dierks@ndmath.UUCP     |
+---------------------------------------------------+  GEnie: T.DIERKS        |
| Diplomacy is the art of saying "Nice Doggie"      |  136 Stanford Hall      |
|  until you can find a rock.        -- Will Rogers |  Notre Dame, IN  46556  |
+---------------------------------------------------+-------------------------+

guido@cwi.nl (Guido van Rossum) (05/10/88)

My God, here we are discussing the ultimate screen saver, designing a
programmer's interface for it and all in full generality...

Surely there are areas of the Mac that more sorely need an improved
interface than the screen saver.  Screen savers to me seem the ultimate
target for show-offs.  All I want from a screen saver is that my screen
blanks while showing a little bit of activity to distinguish it from a
machine that's off.  In fact I want it to move as little as possible,
because fireworks are only distracting when I'm reading papers or
talking to someone in my office.

If we want to improve part of the Mac, how about inventing a transparent
way to get rid of the Font/DA mover?  I'd like to be able to drag fonts
and DA's into and out of the system folder.  No need to reboot
(restarting application's OK).  Much better user interface, conceptually
clear.
--
Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam
guido@piring.cwi.nl or mcvax!piring!guido or guido%piring.cwi.nl@uunet.uu.net

chuq@plaid.Sun.COM (Chuq Von Rospach) (05/11/88)

>Surely there are areas of the Mac that more sorely need an improved
>interface than the screen saver.  Screen savers to me seem the ultimate
>target for show-offs.  All I want from a screen saver is that my screen
>blanks while showing a little bit of activity to distinguish it from a
>machine that's off.

>If we want to improve part of the Mac, how about inventing a transparent
>way to get rid of the Font/DA mover?  I'd like to be able to drag fonts
>and DA's into and out of the system folder.  No need to reboot
>(restarting application's OK).  Much better user interface, conceptually
>clear.

It's called Suitcase. You can dynamically open and close suitcase files to
your hearts content. Apple should ship it with every system they build. 

And even more fun, it comes with Pyro, which is as close to the perfect
screensaver as you'll find, as an added bonus. Solving both discussions at
once.



Chuq Von Rospach			chuq@sun.COM		Delphi: CHUQ

       I come to preach to a religion that doesn't exist. It has no members.
          It has no clergy.  It has no doctrine. It has no collection plate.

alibaba@ucscb.UCSC.EDU (Alexander M. Rosenberg) (05/11/88)

In article <52703@sun.uucp> chuq@sun.UUCP (Chuq Von Rospach) writes:
>>If we want to improve part of the Mac, how about inventing a transparent
>>way to get rid of the Font/DA mover?  I'd like to be able to drag fonts
>>and DA's into and out of the system folder.  No need to reboot
>>(restarting application's OK).  Much better user interface, conceptually
>>clear.
>
>It's called Suitcase. You can dynamically open and close suitcase files to
>your hearts content. Apple should ship it with every system they build. 
>
>And even more fun, it comes with Pyro, which is as close to the perfect
>screensaver as you'll find, as an added bonus. Solving both discussions at
>once.
>
>Chuq Von Rospach			chuq@sun.COM		Delphi: CHUQ
>
>       I come to preach to a religion that doesn't exist. It has no members.
>          It has no clergy.  It has no doctrine. It has no collection plate.

Sorry, Chuq. There is a better answer to this call. For moving Fonts and
DAs painlessly, with the best possible user interface from the available
metaphors, Servant reigns King.

I am not saying that Servant is perfect. Since Apple did get some of
the rights to it (I think they may just have the context switcher part)
I would like for them to consider the merits of adopting Andy's user
flexibility. You just "Open Resource" or Option-double click on any file
and you can change and move appropriate resources. This is especially
usefull for DAs and Fonts. You drag the DA or Font from one file to another,
and Servant handle all problems, including numbering conflicts. This
metaphor for movement of resources is the best yet, and Apple has long
said that The Font/DA mover is not a user-friendly program. When the
"new" operating system is ready, I can only hope that the Font/DA Mover
is replaced as an integral part of the Finder (or whatever it'll be)
by this sort of metaphor. The Human Interface department should consider
the metaphor and massage the concept until they are satisfied with it.
From the paper on my desk, it doesn't seem that they do enough. If they
would only brainstorm these sort of things, then problems like the
Font/DA Mover metaphor can be eliminated.

-------------------------------------------------------------------------------
-  Alexander M. Rosenberg  - INTERNET: alibaba@ucscb.ucsc.edu   - Yoyodyne    -
-  Crown College, UCSC     - UUCP:...!ucbvax!ucscc!ucscb!alibaba- Propulsion  -
-  Santa Cruz, CA 95064    - BITNET:alibaba%ucscb@ucscc.BITNET  - Systems     -
-  (408) 426-8869          - Disclaimer: Nobody is my employer  - :-)         -
-                          - so nobody cares what I say.        -             -

guido@cwi.nl (Guido van Rossum) (05/11/88)

In article <52703@sun.uucp> chuq@sun.UUCP (Chuq Von Rospach) writes:
>It's called Suitcase. You can dynamically open and close suitcase files to
>your hearts content. Apple should ship it with every system they build.

Aha.  I had hoped it existed.  Who's selling it in Holland?

>And even more fun, it comes with Pyro, which is as close to the perfect
>screensaver as you'll find, as an added bonus. Solving both discussions at
>once.

I have seen Pyro.  It's far too busy when it's in the same room as me
and I am not using my Mac.  My ideal screensaver would do something like
the good old Dali clock: slowly move a picture around on the screen.  Of
course the Dali clock (besides being an applicataion) needn't apply for
the job: it also changes every second :-(.
--
Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam
guido@piring.cwi.nl or mcvax!piring!guido or guido%piring.cwi.nl@uunet.uu.net

anson@spray.CalComp.COM (Ed Anson) (05/12/88)

In article <52703@sun.uucp> chuq@sun.UUCP (Chuq Von Rospach) writes:
>
>And even more fun, it comes with Pyro, which is as close to the perfect
						 ^^^^^^^^^^^^^^^^^^^^^^^
>screensaver as you'll find, as an added bonus.
 ^^^^^^^^^^^^^^^^^^^^^^^^^^

Oh, I hope not! Pyro is the best screen saver I can currently find, but it
drives me up the wall! Its biggest problem is that it prevents things from
happening in the background. So if I walk away during a long print job (or
while reading news via Telnet), it blacks out and suppresses network
activity until things time out. I then come back to find my session
terminated.

So I'm afraid the perfect screensaver hasn't appeared yet. If it doesn't
appear soon, I'll have to write it myself.  I'd rather be doing other things.
-- 
=====================================================================
   Ed Anson,    Calcomp Display Products Division,    Hudson NH 03051
   (603) 885-8712,      anson@elrond.CalComp.COM

ephraim@think.COM (ephraim vishniac) (05/12/88)

In article <313@piring.cwi.nl> guido@cwi.nl (Guido van Rossum) writes:
>>And even more fun, it comes with Pyro, which is as close to the perfect
>>screensaver as you'll find, as an added bonus. Solving both discussions at
>>once.

>I have seen Pyro.  It's far too busy when it's in the same room as me
>and I am not using my Mac.  My ideal screensaver would do something like
>the good old Dali clock: slowly move a picture around on the screen.  Of
>course the Dali clock (besides being an applicataion) needn't apply for
>the job: it also changes every second :-(.

I'll happily send the complete source code for Dali Clock to anyone
who wants to build it into a screensaver.  (Or to anyone who just
wants to play with it, for that matter.)  You can trivially modify it
to change by minutes instead of seconds, if that's what you want.  

In case anyone hasn't noticed, Dali Clock avoids screen burn-in by
moving the image down one scan line every sixteen seconds until it's
shifted down slightly more than the original height of the figures.
Then, of course, it changes direction.

If anyone just wants to update Dali Clock, here are its current
problems:

	1. It's not multi-finder compatible.  It draws directly onto
	   the screen and also uses the desktop port.  So, the desktop
	   stays black when you exit.

	2. It doesn't work in color because of drawing directly to the
	   screen and ignoring the screen depth.  This should be
	   trivially fixable by use of an off-screen bitmap and
	   copybits.

Apart from those little details, it seems to work fine on all sorts of
Macs.  It is fastidious about *not* using hard-coded values for screen
size or location.

>Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam
>guido@piring.cwi.nl or mcvax!piring!guido or guido%piring.cwi.nl@uunet.uu.net

Ephraim Vishniac					  ephraim@think.com
Thinking Machines Corporation / 245 First Street / Cambridge, MA 02142-1214

     On two occasions I have been asked, "Pray, Mr. Babbage, if you put
     into the machine wrong figures, will the right answers come out?"

jmunkki@santra.UUCP (Juri Munkki) (05/16/88)

In article <3240@saturn.ucsc.edu> alibaba@ucscb.UCSC.EDU (Alexander M. Rosenberg) writes:
>said that The Font/DA mover is not a user-friendly program. When the
>"new" operating system is ready, I can only hope that the Font/DA Mover
>is replaced as an integral part of the Finder (or whatever it'll be)

I think that the Finder should be smaller than it is now. The way I can see
this done is to make it modular. The current Finder could have separate modules
for "Get Info", "Set Startup" and "Folder Priviledges". The smallest possible
Finder would then be slightly less than what the Finder is now and the largest
possible might resemble ResEdit. The interface to these modules should be quite
complex so that almost any type of customization would be possible. Putting
the module files into a "Finder Folder" should install them.

If this doesn't sound feasible, maybe Apple should consider making two separate
Finders. There are still a lot of applications where a hard disk based Mac is
not practical. (The most important being a "shared mac", where more than ten
persons use the same machine daily).

Juri Munkki
jmunkki@santra.hut.fi
jmunkki@fingate.bitnet

P.S.	I really like the idea of external program modules.
		SoundWave
		HyperCard
		Fourth Dimension
		VersaCAD
		Apple File Exchange
		ResEdit
		The Macintosh System
	Are there any others?

adail@pnet06.cts.com (Alan Dail) (05/25/88)

The best screensaver I have seen is aclled dimmer.  it's only problem
is that it only works on a Mac II with monitors that have modifiable
color lookup tables.  On my system the apple monitor dims but the
supermac b/w monitor doesn't.  It simply modifies the color lookup
table to make the image very dim, but allows everything to continue processinf
like normal.

Alan

UUCP: {crash uunet}!pnet06!adail
ARPA: crash!pnet06!adail@nosc.mil
INET: adail@pnet06.cts.com

fry@huma1.HARVARD.EDU (David Fry) (05/26/88)

In article <188@hodge.UUCP> adail@pnet06.cts.com (Alan Dail) writes:
>The best screensaver I have seen is aclled dimmer.  it's only problem
>is that it only works on a Mac II with monitors that have modifiable
>color lookup tables.  On my system the apple monitor dims but the
>supermac b/w monitor doesn't.  It simply modifies the color lookup
>table to make the image very dim, but allows everything to continue processinf
>like normal.
>
>Alan

Dimmer certainly is wonderful, just like you say. I understood
that a commercial copy was going to be available Real Soon
Now.  Has anyone ever seen it?  Also, my copy of Dimmer
crashes the latest System (version 6.0) just now being
distributed by Apple.  If using Dimmer, pulling down a menu
causes the machine to freeze up. 

David Fry				fry@huma1.harvard.EDU
Department of Mathematics		fry@huma1.bitnet
Harvard University			...!harvard!huma1!fry
Cambridge, MA  02138		

STORKEL@RICE.BITNET (Scott Storkel) (04/16/89)

All right guys, I need some help. A while back there was a discussion on the
net about something called the Last Screen Saver. This proposed project would
furnish the dirty assembly language code needed to implement a Pyro-like
(Pyrotechnic?) screen saver and allow people to easily write the animation
routine in C or Pascal.

Well, after writing a jGNEfiler screen saver used here at Rice University I
decided it wouldn't be too hard to modify it so it would bring in an arbitrary
CODE resource and call it to do the drawing.

I've got a prototype working, but I'm drowning under school work, real work,
trying to find a summer job (Hello, Apple? Hello?), and the threat of final
exams. So, I need some people to help me finish this thing off and kick it out
the door. Below is a list of goals for the project, a list of what I have, and
what I need. If you'd like to help out (or hire me to work in the San Francisco
Bay Area this summer) send me some e-mail.

                                          Scott Storkel
                                          Macintosh Software Development
                                          Rice University
                                          (storkel@rice.edu
                                           storkel@rice.bitnet)

Goals
-----
The main goal of this project is to give anyone who knows a little bit about
Quickdraw the capability to produce a sophisticated screen saver. The
inspiration came from discussions on the net and from the lockscreen program
found on Sun workstations. When/If this thing ever gets done I'm going to pack
up all the binaries AND all the source code and give it away FREE to as many
people as I can. Ideally I would like to have the following things present when
it is released:

          1. An assembly-language driver and source code
          2. Four sample animation routines in each of four languages (MPW C,
             MPW Pascal, Lightspeed C, and Lightspeed Pascal) (Yes, 16 pieces
             of code).
          3. Code for a generic CDEV in each of the four languages.
          4. Code for a customized CDEV integrating the four sample animation
             routines.
          5. Documentation that explains the interface to the dirver, and the
             Ps and Qs of writing and animation routine.

What I've got so far:
---------------------
          1. MPW 2.0.2 assembly code for a driver that implements a jGNEfilter,
             calls an arbitrary CODE resource to do drawing, and provides for
             an arbitrary number of global variables.
          2. MPW C source for an animation routine called Dyson's Folly (sorta
             like Moire, but better).
          3. MPW Pascal code for the Dyson's Folly routine.
          4. LSC code for an animation routine that bounces a ball around the
             screen.
          5. Subminimal documentation.

What I need most:
-----------------
          1. 2-3 more animation routines
          2. Somebody with access to LSC and LS Pascal to help get the stuff I
             do have working with those compilers.
          3. Both of the CDEVs (I'll probably do these myself, but if anyone
             has any good CDEV code lying around I wouldn't mind using it).
          4. Good documentation complete with a snazzy cover illustration.
          5. A new Icon and Cicn.
          6. A new name (the best thing I've come up with is Omega - The Last
             Screen Saver).
          7. A bunch of people to send me mail and tell me to get the thing
             done.
          8. An ulta-cool job hacking on Macs, Suns, or NeXTs for the summer...