Bubbles sprays lots of little random bubbles all over the window which
then grow until they reach their maximum size and go pop. The inspiration
for this was watching little globules of oil on the bottom of a frying pan
and it also looks a little like bubbles in fizzy soft drink. The default
mode uses fancy ray-traced bubbles but there is also a mode which just draws
circles in case the default mode is too taxing on your hardware.
OPTIONS
Depending on how your
bubbles
was compiled, it accepts the following options:
-foreground
Colour of circles if -simple mode is selected.
-background
Colour of window background.
-window
Draw on a newly-created window. This is the default.
-root
Draw on the root window.
-mono
If on a color display, pretend we're on a monochrome display.
-install
Install a private colormap for the window.
-visual visual
Specify which visual to use. Legal values are the name of a visual class,
or the id number (decimal or hex) of a specific visual.
-delay microseconds
How much of a delay should be introduced between steps of the animation.
Default 1, or about 1 microsecond. Actually, this is the delay between each
group of 15 new bubbles since such a delay between each step results in a
very slow animation rate.
-nodelay
Same as -delay 0.
-simple
Don't use the default fancy pixmap bubbles. Just draw circles instead.
This may give more bearable performance if your hardware wasn't made for
this sort of thing.
-broken
Don't hide bubbles when they pop. This was a bug during development
but the results were actually quite attractive. (This option is only
available if you have the XPM library available and the imake generated
Makefile has defined HAVE_XPM).
-3D
Normally, the simulation is done completely in two dimensions. When a
bubble swallows up another bubble, the areas of each are added to get
the area of the resulting bubble. This option changes the algorithm
to instead add volume (imagining each to be a sphere in 3D space). The
whole thing looks more realistic but I find it attracts attention to
the flickering of each bubble as they are move and are redrawn. Your
mileage may vary.
-file filename
Use the pixmap definitions in the given file, instead of the default (if
one is compiled in). This is ignored if -simple is specified. If
the file is compressed (either with compress or gzip), it is decompressed
before use. (This option only works if you have XPM compiled into your
binary and you have compiled with BUBBLES_IO set in bubbles.h. This is
not the default).
-directory directoryname
Similar to -file except the file is taken randomly from the
contents of the specified directory. (Again, this option is only available
if you have XPM and BUBBLES_IO was set when compiling. See above).
-quiet
Don't print messages explaining why one or several command line options
were ignored. This is disabled by default.
NOTES
If you find the pace of things too slow, remember that there is a delay
even though you specify no -delay option. Try using -nodelay
although beware of the effects of irritation of other users if you're on a
shared system as you bleed their CPU time away.
Some tools to assist in creation of new bubbles are included in the source
distribution. These can either be loaded with the -file or
-directory options (if available) or they can be used in place
of the distributed default bubble (bubble_default.c).
You might like to copy these scripts to a permanent location and
use them. Read bubbles.README.
Rendered bubbles are not supported on monochrome displays. I'm not
convinced that small bubbles, even dithered properly are going to look
like anything more than a jumble of random dots.
BUGS
There is a delay before something appears on the screen when using
rendered bubbles. The XPM library seems to take a long time to make
pixmaps out of raw data. This can be irritating on slower systems.
The movement of the bubbles looks jerky if an incomplete set of bubbles
is used.
The hide/display algorithm could do with some work to avoid flickering
when -nodelay is set.
ENVIRONMENT
DISPLAY
to get the default host and display number.
XENVIRONMENT
to get the name of a resource file that overrides the global resources
stored in the RESOURCE_MANAGER property.