Fortran graphics programs written in Fortran
audio code demonstrating how to digitally record
microphone input to a Personal Iris (only
works on 4D/20 and 4D/25 machines), and
play back these sounds
cps four separate subdirectories each with a
different type of example implementing the
C to PostScript interface
devices digitizer, dial and button box programs,
as well as a program that uses the
/dev/scsi generic SCSI driver
fontmanager includes sample programs demonstrating
usage of the Fontmanager Library, libfm.a
glpg on-line versions of all source code
examples contain in Chapter 18 of the
Graphics Library Programming Guide,
Version 2.0.
grafix various C graphics programs
nurbs contains four NURBS sample programs: one
written in C, one for the DGL, one in
Fortran, and one in Pascal
network has some sample network programs using
Internet (TCP/UDP) and UNIX domain
sockets, as discussed in Chapter 3 of the
Network Communications Guide. This
directory was called tcp in previous
releases.
trackball contains four components of code for a
Virtual Trackball Implementation:
routines to calculate the virtual
trackball, event-queue handling, drive a
user-interface, and a simple program to
use the other three
unix contains fundamental examples of system
programming
video contains programs demonstrating usage of
various video modes
The kermit directory holds the public domain source and
documentation for kermit, a file transfer protocol that is
useful when you need to send files to and from an IRIS/UNIX
computer and non-UNIX configurations such as VMS or DOS-
based machines.
The iristools directory contains a superset of special image
libraries, image processing utilities, and graphics tools
that used to exist, in the IRIS 3000 Series computers, under
/usr/people/gifts/mextools. This source was used to build
the binaries that now reside in /usr/sbin (e.g., cedit,
showmap, ipaste, mag). In other words, every executable in
/usr/sbin with a source file under iristools was built from
that exact source (including the two libraries libgutil.a
and libimage.a under iristools).
The src directory contains an ANSI C preprocessor in "acpp",
a "dglfax" subdir containing the source code for dglfax(1),
and the directory "sphere" which houses the source for mview
(the molecule demo) which shows how functions in the new
sphere library--libsphere.a--are used.
The tutorials subdirectory contains a set of interactive
graphics tutorial programs that cover such areas of the GL
as color, light, ortho2, projection, basic drawing
primitives, and modeling transformations. All of these
tutorials are implemented with a user interface that enables
one to interactively change the different parameters in
real-time and see the effects these changes generate.
The directory /usr/people/4Dgifts is setup to work as a
sample NeWS user login account replete with many template
.ps files to help you understand the extent to which you can
customize the NeWS environment. Along with a more
substantial user.ps file, there is a startup.ps file, as
well as a subdirectory /usr/people/4Dgifts/.4sight. This
directory contains nine additional startup.ps files that
show you how to create your own user-defined icons, window
colors, menu fonts, et cetera. These files have comments
throughout them to help describe what they do. There are
many ways you can change and alter all of the possible
startup variables.
5.8.2.1 Special_Gifts
./iristools/imgtools/snapshot.c
This program allows you to interactively grab part or
all of an image on the screen and dump it into an image
file. It is the next generation of icut. By default, it
is loaded in /usr/sbin as a gltool. See snapshot(6D).
This image file can then be put back up on the screen
with ipaste(1G), or sent to a supported printer with
lp(1).
./{.workspace/*, README.wspace}
There is an initial setup for a version of workspace
with 4Dgifts that resides in the directory .workspace.
The file README.wspace describes more of what is
currently included.
./examples/grafix/{zrgb.c, zrgbmenu.c, zcmapmenu.c}
./examples/Fortran/{zrgb.f, zrgbmenu.f, zcmapmenu.f}
These programs demonstrate aspects of z-buffering in
various implementations. Of particular note are the
zcmapmenu versions, which include a powerful example in
the main infinite loop of how to write code that does
not eat up extra CPU cycles (provided you do not need
the animation to continue when the input focus is
elsewhere)
./examples/devices/{iisc.c, inquire.c}
Two programs that use the /dev/scsi generic SCSI driver.
Be sure to also consult the README file in this
directory.
./examples/audio/audio.c
This program demonstrates how to digitally record
microphone input on a Personal Iris (4D/20 or 4D/25)
into a file, as well as playing back the sounds already
recorded.
./examples/cps/{TagTestc, envdesign, item, vinews} These
four directories contain examples that use the C to
PostScript (cps) interface.
5.8.3 Installing_the_Gifts To install the 4Dgifts, log in
as root, type inst, and follow the instructions on your
screen. Refer to Chapter 2, ``Installing Software'', for a
detailed discussion of inst. Choose the manual installation
features, and explicitly select subsystem dev.sw.giftssrc.
Once you have specified that you wish to use the manual
installation features, type: select
from the "Manual>" menu and then enter install
dev.sw.giftssrc
Now 4Dgifts will be included when you run the go menu item.
The size of this account (uncompiled) is approximately 7133
blocks or about 3.56MB.
5.8.4 Setting_Up_4Dgifts_as_a_User_Login_Account Upon
successful completion of loading the dev.sw.giftssrc
subsystem from the Development tape (see below), you need to
perform one more modification in order to set up
/usr/people/4Dgifts as its own account:
1. Log in as root.
2. Edit the file /etc/passwd.
Duplicate the ``guest'' passwd line.
Change every occurrence of the word ``guest'' on this
duplicate line to ``4Dgifts''.
3. Write the changes and exit the editor.
4. Now log out of the console screen entirely and log in
as 4Dgifts.
Startup is different from when you log in as guest,
root or any of the other ``default'' login accounts.
The intent here is that you copy ~4Dgifts/{.4sight,
user.ps, startup.ps} into your home directory and try
changing whatever parts you wish to make it place and
define things more in the way you prefer.
5.9 Changes_to_WorkSpace
The 4D1-3.3 release includes these changes to the IRIS
WorkSpace:
o Kernel change
imon no longer blocks on select. Any changes made on
the host machine appear immediately, rather than
waiting one to three seconds.
o fam
When fam is invoked from inetd.conf, it can be passed
an argument which determines the polling period when it
is watching files over NFS. After the new argument is
put in inetd.conf, you can activate it by becoming root
and entering killall -HUP inetd.
The programatic interface to fam was changed so that
any fam request must be accompanied by the uid and gid
of the calling process. fam then examines the file
system with those settings, reverting to root privelege
when it is finished.
fam correctly reports when a directory disappears.
o Sticky directories
WorkSpace now deals with the problem of sticky
directories. (These are directories which, if they are
owned by another user, do not allow you to remove files
owned by other users, and on which you don't have write
permission, even though you have write permission in
that directory).
Note these behaviors:
o If no sticky directories are involved, file
transactions are generally as they used to be,
although they should be much faster for large
directories moved around on the same disk.
o If a sticky directory owned by someone else exists
and contains another user's file, and you do not
have write permission for that file,
1. You cannot remove that file.
2. You cannot drag that file to a new
directory.
3. You cannot remove its parent directory (even
if you have full write permission on it).
4. If you have write permission on the parent,
you can drag it to another directory on the
same disk, but you cannot drag it across
disks.
These behaviors apply even if the files were
dragged to the WorkSpace.
o NFS
If files are exported without root permissions, root
explicitly cannot read them from another machine,
unless there is read permission for others. Even if you
own a directory on another machine, you cannot mount
that directory and list its contents if you are running
as root. fam now runs with the uid and gid of the
calling process, so that you can run WorkSpace, visit
remote mounted directories that you own, and view their
contents.
The 4D1-3.3 release includes this enhancement to IRIS
WorkSpace performance: WorkSpace now updates itself only
when all of the fam messages for a given burst are read off
the select. This speeds up the opening of large windows.
The 4D1-3.3 release includes these improvements to IRIS
WorkSpace usability:
o Name length of dumpster is no longer limited. You can
rename the dumpster via the prefsheet, with a long
name.
o If directory view windows are stowed when WorkSpace is
shut down, they now come up stowed when WorkSpace is
restarted. Note that the blue WorkSpace window should,
however, never come up stowed.
o A stowed directoryView is no longer painted after
update events until it is opened, so that however many
update events occur, it paints only when it is opened.)
o Arrange as group on WorkSpace should be a no-op if
nothing is selected.
o If you drag a file to a directory, and it overwrites
the existing one, the new file now appears where you
drag it to, instead of overwriting the existing one.
o If dirview is requested to open a directory and is
unable to do so, it now puts up a notifier naming the
file and stating that it can't be opened.
o When you try to do a file transaction and fail, the
resultant notifier informs you of the name of the file
it failed on.
The 4D1-3.3 release includes these visual improvements to
WorkSpace:
o WorkSpace no longer leaves little white lines where the
text view was if you move out of a scrolled view.
o The text view no longer repaints itself briefly in the
wrong place if you switch from view as list to view as
icons or vice versa.
o When an icon is dragged, the icon and the text field
now paint themselves at the same time, instead of
letting the text field paint first.
o When you run as root for the first time (without a
.workspace directory), the WorkSpace window is now
layed out in a more attractive fashion.
o When you tried to copy a file that was running,
WorkSpace formerly created a file on the WorkSpace
window, showing the icon as running. Now the new file
is shown in its proper state.
o WorkSpace now allows you to make a linked copy of the
root folder.
o When you are running with template and ask to restore
root, it now gets its connection line immediately,
instead of waiting until you move it.
o getinfo windows now have no close on the menu.
o If you run as root, the name of your dumpster is now
/dumpster, not //dumpster.
o When a window with cached data appeared, some icons
formerly appeared before others. Now they all appear
together.
5.10 Changes_to_4Sight
The 4D1-3.3 release includes this change to 4Sight:
o 4Sight was changed so that whenever a GL window is
exited, the cursor color is reset to red. This was
done so that programs that modify the cursor color
won't interfere with other programs that work better
with the default red cursor.
However, the implication is that if a program does
change the cursor color, it must do slightly more than
what it did in the release 4D1-3.2. Now, to change the
cursor color, a GL program must do the setting of the
cursor color every time it receives an ``enter''
INPUTCHANGE event.
___________________________________________/No man is a failure who has friends
Trevor Paquette ICBM:51'03"N/114'05"W|I accept the challange, body and soul,
{ubc-cs,utai,alberta}!calgary!paquette|to seek the knowledge of the ones of old
paqu...@cpsc.ucalgary.ca | - engraved on the Kersa Blade of Esalon