xenocara/app/xlockmore/win32/readme.txt

335 lines
13 KiB
Plaintext
Raw Normal View History

2006-11-26 04:07:42 -07:00
Xlock95 Readme.txt file.
Version 0.11
Requirements.
-------------
Windows 95, 98, ME or Windows NT, 2000, XP running 256 colors or greater.
Don't know the minimum spec. machine, but I have run it on a
Pentium 166 (Win95), Pentium Pro 200 (Win NT), Pentium II 233 (Win95),
Pentium III 1000 (Win98) and Pentium 4 3Ghz (XP Pro).
Building.
---------
Cygwin - www.cygwin.com
(Gnu gcc compiler for windows)
I no longer use MS VC++ to compile. It took about a day to
convert over to cygwin (and that was mainly setting up the
Makefiles). To compile under VC++ would take a little work
but it should be fairly painless.
At top level
make -f Makefile.win32
Note: for other compilers things may be different. For VC++ there
were many more steps to set up.
Note2: When you use Debug configuration, you will only get one mode
working. When you want to debug a mode you will have to
change the mode you want. I set this up so when I debugged
any new mode that I have just added, the only mode displayed
was the one I set. To set debug mode, modify the Makefile in
the xlock sub-directory to define _DEBUG (ie -D_DEBUG)
Installation.
-------------
Place the file "xlock95.scr" in either Windows system or Windows
directory ("C:\Windows\System\", "C:\Windows\", "C:\WINNT
which ever works, `cygpath -W` should tell you what this is)
make -f Makefile.win32 install
Set "xlock95" to be your screen saver. When you enter the
Screen Saver tab in the Display Properties it may take a little
while for control to come back to you if xlock95 is set.
If it does not show up the scr file is probably in the wrong directory.
Alternatively you can just double click the .scr from
explorer and it should run fine (but thats not the
same as setting it up as a screen saver).
Windows Screen Saver commandline arguments:
xlock95.scr Runs screensaver's configuration window.
xlock95.scr /s Runs the screensaver on the full screen.
xlock95.scr /p 1234567 Runs the screensaver in windowid 1234567.
The Scrnsave.lib clone provided by Cygwin/MinGW
(libscrnsave.a) doesn't appear to support multiple screens.
The source is available from Cygwin in the w32api package.
According to the MS screensaver docs, linking with the latest
scrnsaver.lib should handle multiple screens automatically.
See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/monitor_2eur.asp
xlock95 is also not yet coded to handle multiple screens.
Notes.
------
If you have used an older version than 0.4, it was called
"xlock.scr". This is not needed anymore and can be deleted from
Windows system directory. Also timings from the older versions are
different than the versions 0.4 and above, so modes will be either
faster or slower.
If you have used a version between 0.4 and 0.6, it was called
"xlockmore.scr". This is not needed anymore and can be deleted from
Windows system directory.
When the screen saver is started, it randomly chooses a mode. At this
time, there are 86 modes. These are:
Ant, Ant3D, Apollonian, Ball, Bat, Blot, Bouboule, Bounce, Braid,
Bug, Clock, Coral, Crystal, Daisy, Deco, Demon, Dilemma, Discrete,
Dragon, Drift, Euler2D, Eyes, Fadeplot, Fiberlamp, Flame, Flow,
Forest, Galaxy, Grav, Helix, Hop, Hyper, Ico, Image, Juggle, Julia,
Kaleid, Kumppa, Laser, Life, Life1D, Life3D, Lightning, Lisa, Lissie,
Loop, Lyapunov, Mandelbrot, Matrix, Maze, Mountain, Munch, Nose,
Pacman, Petal, Petri, Polyominoes, Pyro, Qix, Roll, Rotor, Scooter,
Shape, Sierpinski, Slip, Space, Sphere, Spiral, Spline, Star,
Starfish, Swarm, Tetris, Thornbird, Tik_tak, Toneclock, Triangle,
Tube, Turtle, Vines, Voters, Wator, Wire, World, Worm, Xjack
In the X-Windows version it is possible to set variables that affect
how long certain things are done (eg how many vines or blots to be
drawn before clearing the screen). These variables are cycles, size and
batch counts, and every mode is affected by them. The Win95/NT version
currently isn't able to set these variables and therefore they use the
defaults. Also some modes read in settings from files (eg life3d reads
from file .life3d.rule3d). At the moment this isn't being done either.
Running it from the commandline yields "Hello World!" and "Okie dokie".
These are the config dialogs. Eventually if
proper configuration is added, this is where it should
go. You'll get the same dialogs when you press the
settings button on the screensaver tab when
xlock95 is the active screensaver.
Future of Xlockmore95.
----------------------
At this stage I have done intermediate releases of Xlockmore95. I
know there are more modes I can add, but as to adding all the modes
that exist in Xlockmore, I'm not sure it is possible. There are modes
that use XPM images (X PixMap images), opengl, and there may be
X11 functions that just won't map easily to win32 functions (I've been
adding them on an as needed basis).
This is a list of what I would like to do (but I'm not promising)...
. add more modes
. allowing users to set the cycles and batch count variables, probably
in the settings window.
. allowing users to set specific options to modes that require it,
probably in the settings window.
. allowing modes to read settings from files
. handle colors as X11 does
. add all modes (even opengl modes)
Differences with X11 & Bugs.
----------------------------
ball, crystal, munch, pyro, tik_tak:
XSetFunction() isn't drawing correctly.
ant: truchet drawing messed up
ant3d and toneclock: double buffering ok but now label flashes
bouboule & some others: flickers.
crystal & tic_toc: xor errors in beginning
julia: red square dot
nose: text messed up
petri: only red germs
scooter: red rects
tube: needs closure for stars and triangles (does not handle sharp angles)
xjack: messed up when text gets to bottom
There are small differences in Line Attributes between X11 and WIN32
Color model is totally different, so no color cycling occurs.
Change Log.
-----------
version 0.1
. initial release, Vines, Fadeplot, Sierpinski Triangles, Blot
version 0.2 (not a public release)
. added Coral mode
version 0.3
. wasn't initialising some pointer variables, which could cause an
error if circumstances allowed. This is now fixed.
. added the ability to redefine the color palette in a mode class.
This means it is possible to have modes that don't have a palette
saturation of 1.0 to recalculate the palette to how they require.
For example Blot mode now has a palette saturation of 0.4
. added Deco & Forest modes
version 0.4 (debug build)
. added code for XDrawArc(), XFillArc() & XFillPolygon()
. changed from using my own base source code to using the source code
for xlockmore 4.07. I still have to use some of my own code for
start-up and initialisation of the screen saver (cannot get around
this due to differences between X11 and Win32), and of course all
the X11 functions and structures. But the rest is xlockmore 4.07
code. At some point I will see if David will integrate the Win32
source code into the official distrubution.
. As a result a lot more modes are now added. These are:
Braid, Clock, Daisy, Drift, Flame, Galaxy, Geometry, Grav, Helix,
Hop, Lightning, Lisa, Lissie, Petal, Qix, Roll, Rotor, Sphere,
Spiral, Spline, Triangle, Turtle
version 0.5
. determined that the problem with the Galaxy mode in the release
build was to do with VC++. When VC++ optimizes for speed, Galaxy
does not work. I now optimize for size.
. life3d: added an extra check to life3dfile, to see if it was NULL
before doing the strlen() on it. This has fixed a crash I was
getting with it. This is the only mode I have changed.
. added code for XCreateGC(), XChangeGC(), XDrawLines(), XFillArcs(),
XFillRectangles(), XSetFunction() so the following modes now work:
Ant, Ball, Bouboule, Bug, Crystal, Demon, Laser, Life3d, Loop,
Mountain, Munch, Pyro, Wire
version 0.6
. added code for XDrawSegments(), XClearArea() so the following modes
now work: Hyper, Ico, Kaleid, Worm
. added code to set each modes default options (if there are any).
This affects every mode, but only boolean and string types are being
set at the moment. Ico refused to work until either edges or faces
were defined as true. This also allowed me to remove the code I
added to life3d.
version 0.7
. changed my build environment. Now using cygwin as my compiler. As a
result some small changes were needed to xlock.c. I am building it
with the -mno-cygwin option (mingw mode ???) so the cywin1.dll is
not used. Created Makefiles to build the screensaver.
. no longer use the ScrPlus library, but the scrnsave library that
comes with cygwin. Initially used SetTimer(), but this was too slow, so
I created a thread, and use SendMessage() WM_TIMER from there.
. modified XFillArc() so it now draws the Arc with a thin line before
it fills it. This fixes the minute and hour hands in clock. Other
modes may be affected (ball, bouboule, daisy, galaxy, grav), though
they looked OK.
. added displaying the mode and its description in the top left hand
corner.
. filled in code for XDrawString(), though it doesn't affect anything
(yet)
. added code for XDrawRectangle(), XStoreColors() so the following
modes now works: mandelbrot, tube
. added empty function calls to XPutImage(), XCreateBitmapFromData(),
XSetBackground(), XSetFillStyle(), XSetStipple() so Maze now works
(minus the operating system graphic)
. fixed up XSetFunction so now it should utilise different drawing
functions. It does not seem to be 100% correct, but much better than
before.
version 0.8 (8-Oct-2004)
. added code for XPutImage() so now the operating system graphic is
drawn in Maze.
. added code for XCreateBitmapFromData(), XFreePixmap(), XCreateGC(),
XFreeGC()
version 0.9 (15-May-2005)
. fixed XCreateGC() and XSetStipple() so the bad paths of Maze are
set properly (still a problem setting the stipple (brush) the right
color). Other modes are broken for now (such as Galaxy and Grav) as
they leave trails.
version 0.10 (26-Jul-2005)
. fixed XDrawArc(), XFillArc() & XFillArcs so they draw fully the
complete angles. This was causing a graphical error in some modes,
for example clock.
. fixed setting the stipple brush color on an XSetForeground. Now the
bad paths of Maze are the correct color.
. fixed most of the broken modes. I think this had to do with
recreating the pen for a filled arc in XFillArc(). It wasn't always
creating the new pen. I create it now as null, so the border is not
drawn, and to make up for this I make the arc a little larger in the
function. This fixes Galaxy and Grav. Ball is still broken.
. fixed ball. The problem had to do with XCreateGC(). The way I had
implemented this function meant only about 5 GCs could be created
before problems were occuring. This was fine for all other modes,
apart from ball which needs about 20 GCs. I now have totally
reorganised how GCs are created and are related back to a device
context (DC), which is what Windows uses. I now only have 1 DC, and
reset it when I use a different GC. This means that modes will run
slower. (31-Aug-2005)
version 0.11 (29-Sep-2005)
. updated to use xlockmore-5.19. This is the first step of getting my
source code integrated into the offical source. A number of changes
had to be made to my code, but it was mostly OK. The following modes
are removed in this new version (removed in the official code):
geometry (14-Sep-2005)
. many modes have changed, but some have now a few issues (maze - OS
graphic missing again, ico - not moving and artifacts left,
galaxy - awful flickering as there is no double buffering).
(29-Sep-2005)
. there are many new modes but I have not attempted to implement any
just yet. (29-Sep-2005)
[Now distributed with xlockmore... David changed back xlockmore95 back
to xlock95... David hopes this is OK with all concerned.]
Download.
---------
Please don't email David with questions about Xlockmore95.
[Well actually David does not mind if you cc him :) ]
They can be directed to me: petey_leinonen@yahoo.com.au
You can find the latest information about xlockmore from
David A. Bagley's site at http://www.tux.org/~bagleyd/xlockmore.html
Copyright.
----------
Copyright (c) 1988-91 by Patrick J. Naughton
Copyright (c) 1993-2005 by David A. Bagley
Copyright (c) 1998-2005 by Petey Leinonen (win95/NT version)
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation.
Please note that I do not provide any warranties, and that you use this
executable and/or source code at your own risk. I will not be held
responsible for any damage that is incurred by using the executable
and/or source code.
Petey Leinonen, 14 September 2005