Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 1998 20:09:50 -0600 (CST)
From:      Joel Ray Holveck <joelh@gnu.org>
To:        tlambert@primenet.com
Cc:        dag-erli@ifi.uio.no, hackers@FreeBSD.ORG
Subject:   Re: Graphical screen saver
Message-ID:  <199801290209.UAA03840@detlev.UUCP>
In-Reply-To: <199801290039.RAA24901@usr08.primenet.com> (message from Terry Lambert on Thu, 29 Jan 1998 00:39:37 %2B0000 (GMT))
References:   <199801290039.RAA24901@usr08.primenet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>>> If we're going to do start doing graphical screensavers, then I
>>> suggest making the mechanism more general, rather than requiring a
>> Yup. I'm all for Mike's (or was it Joel's?) idea of making a general
>> shell for graphical screensavers, so that people can just write the
>> image update code and not have to bother with the "hard bits" (i.e.
>> making things work safely wrt syscons)
> You may want to revisit DejaNews.
> Several years ago, I was sent code from someone who did not want it
> distributed.
> The code ran AfterDark(tm) screensavers on FreeBSD 1.1.5.

Under X or console mode?

> I still have a 1.1.5.1 box that runs the "Spock and Horta" screen
> saver if I boot it and leave it alone long enough...
> It seems to me that the format to use today for a "general shell"
> would be "whatever Windows 95 uses".

I haven't hacked AfterDark in some time, but IIRC, it was designed to
work with GDI calls.  I doubt that it has changed.  This would
probably require more overhead than it's worth, although I wouldn't
know.

Windows screensavers are funny things.  They are actually renamed
executables (what isn't?) that are called when it's time to activate.
They are then responsible for doing things like updating frames,
deactivating on time, ensuring that they don't get called while they
are active (yes, Windows *does* keep sending screen saver events while
the saver's active!), etc, etc.

The Windows SDK has SCRNSAVE.LIB, which is universally recognized to
be a crock.  OWL has its own screensaver interface routines.  So does
AfterDark, and although I haven't looked at it, I suspect that MFC
does as well.  There are plenty of Windows screensaver libraries, and
they really aren't worth squat.  The biggest problem with them all is
that they all are GDI based, which I don't want to be in the FreeBSD
kernel.

I think that either source- or binary-level compatibility with either
Windows or AfterDark screensavers is a major lose.  I would prefer to
keep things simple, and opt for making a good shell the first time.

Remember, I'm mostly writing a template here.  My code handles the
mode switching, syscons interface, etc. and calls hacker-defined
routines for variable initialization and the actual drawing.  (The
actual drawing is currently handled by direct memory writes.)  I'm not
writing a screensaver manager like AfterDark, although I wouldn't mind
writing one if there's a call for it.

Happy hacking,
joelh

-- 
Joel Ray Holveck - joelh@gnu.org - http://www.wp.com/piquan
   Fourth law of programming:
   Anything that can go wrong wi
sendmail: segmentation violation - core dumped



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801290209.UAA03840>