#### "Linux Gazette...making Linux just a little more fun!"

muse:

1. v; to become absorbed in thought
2. n; [ fr. Any of the nine sister goddesses of learning and the arts in Greek Mythology ]: a source of inspiration

© 1999 by mjh

elcome to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect, the above definitions are pretty much the way I'd describe my own interest in computer graphics: it keeps me deep in thought and it is a daily source of inspiration.

[Graphics Mews][WebWonderings][Musings][Resources]

his column is dedicated to the use, creation, distribution, and discussion of computer graphics tools for Linux systems.

This is a short issue of the 'Muse. I'm in the process of moving from Dallas to Denver so life has been rather hectic. But I didn't want to completely skip this month since last month was lost due to my hard disk crash in November. Details, details, details. I should have a few more articles next month. In the meantime, you can check out an interview I did originally for the December issue:

- An Interview with Michael Sweet, author of the Print Plug-In for the GIMP.

Other Announcements:
R 0.63.2
IRTC CDROM (Year Two)
Mesa to be integrated with XFree86
dc20 1.0
ImageMagick 4.1.8
< More Mews >

Disclaimer: Before I get too far into this I should note that any of the news items I post in this section are just that - news. Either I happened to run across them via some mailing list I was on, via some Usenet newsgroup, or via email from someone. I'm not necessarily endorsing these products (some of which may be commercial), I'm just letting you know I'd heard about them in the past month.

CGM Viewer Applet 1.0
Alexander Larsson

CgmVA is an applet that shows CGM files. CGM is a non-proprietary well known vectorgraphics file format. The user can zoom and scroll around the viewed image. CgmVA is scriptable with JavaScript. You can control up to 16 layers with several images in each layer. The images can be magnified and moved by the script or be controlled by the user with the mouse.

Changes: text path supported, full support for character orientation and alignment, all line types, all marker types.
http://www.online.de/home/bdaum/howto.htm

Graphics Muse Tools 0.1
Michael J. Hammel

The Graphics Muse Tools are a collection of plug-ins, brushes, and patterns for use with the GNU Image Manipulation Program, more commonly known as the GIMP. The 0.1 release provides three plug-ins. ArrowGFX for creating arrows and pointers of varying types, CardGFX for creating business and greeting cards and TransGFX which is an alternative interactive rotation transform tool. Additionally, a collection of new brushes has been included. A set of patterns will be made available at a later date.

Download: http://www.graphics-muse.org/source/gfxmuse-0.1.tar.gz
Homepage: http://www.graphics-muse.org/sw/sw.html

tgif 4.0.9
Bill Cheng

tgif is a vector-based draw tool, with the additional benefit of being sort of a web-browser. That is, you can fetch drawings from a web server with it, and you can make objects in your picture into hotlinks to other parts of the drawing, or to other drawings accessible via http.
Homepage: http://bourbon.cs.umd.edu:8001/tgif/

LibGGI 2.0 BETA1 (the Degas release)

LibGGI 2.0 BETA1 is finally out. LibGGI has been split into a library doing generic input handling called LibGII, and the "traditional" LibGGI, which takes care for handling graphical output to virtually anything used to display graphics on Linux or Unix in general.

ftp://ftp.ggi-project.org/pub/ggi/ggi/2_0_beta_1

For those who don't yet know, what LibGGI is about and why you want it as well: LibGGI is an attempt to unify all those graphical output systems that exist on Unix with possible ports to other systems as well.

Script-Fu Web site

Introducing http://www.script-fu.org A resource for Gimp's Script-Fu programmers. Includes lots of tips on how to use script-fu, including how to run a script directly from within GNU Emacs.

--Zachary Kessin
http://www.script-fu.org

Accelerated-X new support, laptops, graphics chips, Multihead
Jeremy Chatfield <jdc@xig.com>

Xi Graphics has recently provided updates adding support for new laptops, new multihead boards and graphics boards or correcting problems in previous support. Updates may be applied to any Accelerated-X 4.1.2 Server on supported operating systems (BSD/OS, FreeBSD, INTERACTIVE, Linux, Open Server, Solaris/x86).

Accelerated-X (AX) for Intel processors
URL ftp://ftp.xig.com/pub/updates/accelx/desktop/4.1.2/intel
D4102.028 Number 9 Revolution IV FPD + SGI 1600SW FPD
D4102.027 ATI update
D4102.026 Matrox Millennium G200 PCI/SDRAM

Accelerated-X (PX) for Alpha processors (Red Hat 5.2)
URL ftp://ftp.xig.com/pub/updates/accelx/desktop/4.1.2/alpha-processor
P4102.001 Matrox Millennium G200 PCI/SDRAM

Accelerated-X Laptop (LX) for Intel processors
URL ftp://ftp.xig.com/pub/updates/accelx/laptop/4.1.2
L4102.021 Toshiba Satellite Pro 490XCDT (S3 ViRGE MX)
L4102.020 Cyrix MediaGX Laptop Mobo
L4102.019 IBM ThinkPad 770X (Trident Cyber 9397 DVD)

Accelerated-X Multi-head (MX) for Intel processors
URL ftp://ftp.xig.com/pub/updates/accelx/multihead/4.1.2
M4102.008 Colorgraphics Predator 2/4 AGP (S3 Savage3D)
M4102.007 Matrox Quad Productiva G100 board

Each update has a gzipped tarchive and a text file describing the update and the update procedure. The INDEX file in each product directory lists all updates and pre-requisite updates.

Version 1.4 of PMR is released

The Poor Mans Renderer is a free simple 3D rendering/editing tool for LINUX.
The home page is http://borneo.gmd.de/AS/janus/new/pmr/pmr.html
There are several improvements since Version 1.3

- rendering is approx 2 times faster
- mesh smoothing is improved
- there a FFD techniques to manipulate meshes
- several segmentation faults and memory leacks have been fixed

METRO EXTREME 3D - EARLY ACCESS RELEASE FOR 3DLABS GLINT CHIP
Holly Robinson <holly@chickadee.metrolink.com>

Metro Link proudly announces the early access release of Metro Extreme 3D for graphics cards using a single 3DLabs GLINT 500MX chip on a Linux/x86 operating system (glibc or libc5). Metro Extreme 3D is an SGI-compliant port of OpenGL which provides 3D hardware acceleration on specific cards.

This early access release, as well as the upcoming official release of Metro Extreme 3D, will be a free upgrade for all existing customers with a valid Metro OpenGL license. In addition, anyone who purchases Metro OpenGL will automatically get the official version of Metro Extreme 3D when it is released. Contact sales@metrolink.com to get your free upgrade or to purchase a new license.

Metro Link has created two newsgroups for discussion of this product and its subsequent releases. The public newsgroup is for customers and potential customers who want to stay informed of product development. The other newsgroup is private, for interaction with customers actually using the early access release of Metro Extreme 3D.

To join the public newsgroup, point your news reader to news.metrolink.com and look for metrolink.me3d.

To join the private newsgroup, contact sales@metrolink.com to verify your original purchase of Metro OpenGL and to receive a login and password required for participation in this group.

Metro Link's goal is to provide the highest performance and most robust software to the Linux/UNIX community. Metro Link provides mission critical X Window System and related software for many Linux/UNIX platforms. Our software has been proven in the Boeing 777, the Space Shuttle, the 767 AWACS, the Crusader Self-Propelled Howitzer, the Army Land Warrior and many other applications which demand high reliability.

Metro Link Incorporated
www.metrolink.com
sales@metrolink.com

## Did You Know?

> ...you can find a set of gallery images and source files created with AC3D at the User Pages for AC3D - http://www.eilers.net/ac3d/

> ...you can find an interesting bit of news from Ton Roosendaal on the future of Blender on the Blender News and Chat page.

## Q and A

Q: OK, I have a large picture open in GIMP, and have cut out a smaller frame, which is the picture I want to save. But how can I save just the cut-out rectangle as a new picture ?

A: There a dozen ways to do this. Heres an example:

1. Cut the region using CTRL-x.
2. Paste it back into the picture. This creates a floating layer.
3. Turn the floating layer into a new layer.
4. Delete the old layer.
5. Make the new layer the active layer (if its not already) and use the Layer Menu's "Alpha to Selection" option to select the whole layer.
6. Choose the Crop tool from the Toolbox.
7. Click on the image window to open the Crop Information dialog.
8. Select "Selection" in this dialog.
9. Select "Crop".

This leaves the originally cut region as the complete image. Now just save the layer (or flatten the image first if you prefer and have other layers to worry about) to a file.

Q: Regis Rampnoux wrote: I have put an offer on my web pages to find a developper for a driver for Epson Photo Stylus Color printer and other with 5 ink cartridges like EX.

A: Michael Sweet replied: EPSON has released the information for 6-color printing so the next version of the print plug-in for GIMP will support it. As for GhostScript/other drivers, my company is in the process of porting our software to Linux and may also do a FreeBSD port.

Q: Any pointers/tutorials/utilities for making fonts?

A: xmbdfed - there is a link to a static binary for this at fonts.themes.org.

Q: That program creates pixmap fonts, but vector fonts? Anybody?

A: spif is a vector editor, which is unfortunately not available. See http://www.gh.cs.su.oz.au/~matty/Spif/ for info. Also, gfonted is available, but it doesn't do a whole lot yet. See http://www.levien.com/gfonted/ for details.

> Zachary Beane xach@mint.net

## Reader Mail

Steve.Lesley@BigFoot.com wrote:
Re: BTTV video capture card setup?

> I hope I have come to the right place, I found an old article of yours with a reference to the bttv video driver. I am fairly new to linux, but I do have a background in computers. If I have the wrong person, please let me know where I might find the answer to my question.

'Muse: I don't have this card so haven't tried this yet, but I'll see what I can do.

> I have been trying to install the bttv driver for a USRobotics BigPicture video capture card which I hear will work, but it is not the hardware support I am asking about. I have the source, a patch, and it says there is an application for putting the captured video on the screen that comes with the bttv source.

> I do a make,
> Then make install.
> Now what? When and how do I patch it, and isn't there supposed to be a kernel recompile involved? There is no choice for installing the module in a make xconfig now.

'Muse: Patches are applied to the source prior to running "make". To apply a patch you use the "patch" command, usually something like this:

> % patch < patchfile

where patchfile is the name of the patch file. You usually have to be in the directory where the source code is or (if there are multiple directories in the source code distribution) in the top level directory.

After applying the patch you run "make". "make install" will (if the distribution supports this) install the binaries in one of the common binary directories, such as /usr/bin or /usr/local/bin. Often you can specify where these files will be installed either by editing the Makefile, a configuration file of some kind (config.h for example) or specifying a command line option if the distribution uses a "configure" script. It doesn't sound like the bttv distribution uses configure since you didn't mention it. Also, it doesn't sound like make install worked since the application didn't get built either.

As to recompiling the kernel, I doubt it. Linux supports loadable modules but not all drivers have to be part of the kernel. A good example of this is the X server, which drives graphics hardware but is not part of the kernel and is not a loadable module. Chances are that the bttv driver has an application that works with the driver to directly drive the video hardware without kernel intervention.

> The application doesn't seem to have been automatically compiled.

'Muse: It may have to be built seperately. Its hard to say without looking at the distribution source directly.

> Please help a newbie try to get drivers up for his hardware.

'Muse: Did the distribution come with a README or some other text file explaning how to build it or at least how to contact the author(s)? You might try contacting the author(s) if they gave their email or Web address. If that doesn't work you might try a local Linux User Group (you can usually find one via SSC's web pages @ www.ssc.com or www.linuxresources.com).

I plan on looking at this and other video and TV cards for my Muse column but it won't be for a while. Hope this helped a little.

No Web Wonderings this month. I'm busy moving back to Denver and didn't have time to research anything interesting. But I should have something for next month.

## An Interview with Michael Sweet, author of the Gimp Print Plug-In

Back in November, before my hard disk disaster, I did an email interview with Michael Sweet. Mike wrote the Print Plug-In for the Gimp and runs a software company, Easy Software Products, that specializes in printing software for Unix systems. Although I lost all the original emails with my hardware failures Mike was able to forward me copies of all our discussions. I think this means I may do all future interviews via email, just to be safe.

'Muse: Tell us a little about yourself. How did you get involved with printers?

M.S.: Back before I went to college I started fooling around with printing stuff on dot-matrix printers (EPSON, Radio Shack, etc.) This eventually led to color printing on an old HP DeskJet 500C and my second shareware program, "Image Master" (not the PC version, this was for a Color Computer).

Later I did a freeware program for IRIX called "topcl"; it was about this time that I started a software company (Easy Software Products) with a friend of mine to sell printing and 3D modeling software.

I guess my motivation all along has been to get what I have on the screen of my computer (pictures, computer graphics, etc.) printed out.

'Muse: What can you tell us about the current printing solutions available for Linux? How do the commercial solutions differ from using the stock "lpr" system?

M.S.: The current printing solutions are pretty primitive compared to the typical MacOS/Windows environment. PostScript printers are pretty well supported, however accessing specific printer features is usually difficult, if not impossible.

The standard print drivers shipped with the commercial Linux distributions (Red Hat, etc.) support printing of text and PostScript files. Support for non-PostScript printers is limited to the available drivers for GhostScript.

Currently there is only 1 commercial printing solution that I know of - PostShop from Vividata (http://www.vividata.com). Besides supporting PostScript and text files, they also support a number of image file formats (JPEG, GIF, etc.) and PDF (Acrobat) files directly. PostShop for Linux uses the Alladin GhostScript 5.10 drivers for non-PostScript printers.

Another commercial driver package that will be available soon from my company is ESP Print. Like Vividata, we support a lot of different printers and file formats. The main difference is that we are also providing a new printing system that replaces the existing system (typically LPD or LPRng) with the Common UNIX Printing System (CUPS). CUPS uses the Internet Printing Protocol (IPP) and supports printer browsing, making it network-friendly. Also, CUPS supports job-specific options (something that LPD-based solutions do not) so that you can select different media sizes, type, trays, etc.

'Muse: What is IPP and how does it relate to Linux?

M.S.: IPP is the Internet Printing Protocol, which is slated to become the next network printing standard. Vendors including Xerox, Hewlett Packard, and Microsoft are adding IPP support in their next generation of products, so having IPP support in Linux is important.

'Muse: Are you familiar with the recent InfoWorld article announcing the Universal Printer Driver Format (UPDF)? If so, what can you tell us about this and how might it relate to Linux? (http://www.infoworld.com/cgi-bin/displayStory.pl?981024.ehprint.htm)

M.S.: UPDF looks similar to Adobe's PostScript Printer Description (PPD) specification, just extended to support any printer language.

It would be interesting if they actually pull this off, however I know from experience that it will be difficult for anything but "standard" printers (e.g. PostScript and PCL). Most of the entry-level printers shipped these days use proprietary command sets and many reduce the manufacturing costs by implementing printer functions in software rather than hardware.

As for Linux support, it's too early to say...

'Muse: Wow. Lots of new acronyms for us printing-novices. So how does IPP relate to the use of UPDF or even PPD? It sounds like we'll be using IPP to send printer description files to printers. Does this mean IPP is how we'll talk to printers and UPDF is what we'll be saying?

M.S.: PPD and UPDF control what a print driver or application will send to the printer while IPP provides a standard protocol (via HTTP) for sending those jobs to a networked printer or server. It is likely that an IPP printer or server will provide the PPD or UPDF file to a printer driver or application via HTTP, something like:

> http://myprinter.domain.com:631/printer.ppd

or:

> http://myprinter.domain.com:631/printers/QueueName.ppd [CUPS does this]

Keep in mind that PPD, UPDF, and IPP are all separate entities and can operate independently. IPP, for example, is currently only a network printing protocol and would not apply to printers connected to a local port (e.g. parallel port).

Also, a big question is how a printer will be "discovered" on the network so drivers and applications know to use the IPP protocol. Currently there are dozens of "standard" protocols, known as Directory Services, for this kind of thing. IPP doesn't mandate any particular directory service, and right now work is underway to update SNMP (Simple Network Management Protocol), LDAP (Lightwight Directory Access Protocol), and SLP (Service Location Protocol) to handle the needs of IPP, specifically the URL/URIs to use for the printer. CUPS will be using its own protocol until things settle down and we see which protocol(s) are most commonly implemented.

'Muse: You wrote the Print Plug-In for the Gimp. What was your motivation for doing this?

M.S.: When I started using GIMP to retouch some of my photos, I noticed there wasn't a way to print yet. I ended up adding support for most of the entry-level inkjets, mostly because Linux user's didn't have any other option.

'Muse: Did it take you long to write the first version of the plug-in?

M.S.: It took about 4 days to get the first version up and running. The output was OK, but the user interface left a lot to be desired. The current release amounts to maybe 100 hours worth of work.

'Muse: What sort of problems did you encounter while writing the plug-in?

M.S.: The biggest one (one that is still causing problems, in fact) is dealing with different printing systems. Each UNIX vendor uses a different spooler, so I had to put a lot of extra code in the plug-in to deal with it.

'Muse: How do you see this plug-in evolving with the Gimp? Will there need to be any major changes for the 1.2 release?

M.S.: GIMP 1.2 (and the 1.1 development version) adds support for different color spaces and resolutions. This will require quite a bit of "retooling" in the plug-in to handle this. The new versions of GIMP will also support physical resolution information, so if you're editing a 300 DPI image the print plug-in will need to handle that for scaling...

'Muse: I recently wrote a number of plug-ins, one of which could definitely use a direct interface to the Print plug-in. Do you have any tips for plug-in authors who would like to call the Print plug-in directly? Or do you recommend this not be done?

M.S.: It can be done through the PDB interface, however I would definitely use the interactive mode of operation. The non-interactive mode prevents users from selecting the printer and/or options they want.

'Muse: I noticed the margins in the Print dialog could only be set to 0 if you use the PPI setting. Is that intentional or was it possibly user error? I was trying to print a large document, 8.5"x11" at 360 DPI and didn't want the print plug-in to add any margins on its own.

M.S.: That's intentional, as it knows what the printable area is on the printer. If you have a so-called "full bleed" printer, the print plug-in will allow you to scale to the full size of the page.

'Muse: Does the Print plug-in now, or will it in the future, work with the commercial printing solutions?

M.S.: Yes, it already works with any software that uses the lp/lpr spooler interface. A future release of the plug-in will take advantage of printer information supplied by CUPS as well.

'Muse: What tips would you have for a novice user who is trying to decide on a new printer? What should they look for?

M.S.: Before they start looking they need to answer a few questions:

1. Do I want to print color?
2. Do I want to print pages larger than 8.5x11" (Letter) or 8.27x11.69" (A4)
3. How many pages will I print in a month?

If you need (or want) to print color, you'll normally only be looking at the InkJet printers from EPSON, Canon, or HP. [FWIW, I've had problems with Canon inkjet printers, primarily due to clogged heads]

The easiest printers to connect to a UNIX system are PostScript printers. These usually cost more than non-PostScript printers, but don't forget to figure in the cost of driver software with your choice.

'Muse: Aren't most ink jets non-Postscript printers? I though Postscript printers were all laser printers.

M.S.: There are a number of PostScript inkjet printers; HP's DeskJet 1600CM and DesignJet plotters have PostScript options, as well as inkjets from Tektronix, EPSON, Calcomp, Xerox, etc.

There are also a number of PostScript printers using alternative technologies, like Tektronix's "solid ink" based printers, dye-sub printers, and so forth.

It's possible for *any* printer to have built-in PostScript, however this generally raises the price of a printer. You also have to be careful about how the PostScript capability is implemented. For example, EPSON offers PostScript printing options for their Stylus Color 800 through 3000 printers, however these are all software RIPs and not built into the hardware of the printer. Only the Stylus Pro 5000 has a hardware RIP (made by Fiery, a very big PostScript RIP vendor).

'Muse: Do you see integration coming between printing on Linux and the two leading desktop choices, KDE and GNOME? If so, when do you think this might be available? Do you expect drag-and-drop printing options?

M.S.: Until there is a non-commercial version of Qt I don't see KDE and GNOME coming together. Qt is the source of many flame wars on newsgroups and mailing lists, and the desire amongst Linux users for free software is strong. There is work in progress to make a LGPL'd version of Qt available, so it is likely that some common method for drag-n-drop will be adopted for both desktops.

This will also require a standard printing system, and I'm hoping that CUPS will fill that need...

'Muse: What about professional (re: business) users - what should they look for when print quality is more important and usage is likely to be much greater?

M.S.: I'd still stick with those three questions. If you are sharing the printer over your LAN I'd definitely look at getting a network card with the printer.

Question #3 is very important for business users; trust me, if you exceed the monthly use rating for a printer it *will* fail more rapidly.

If price is a concern, look for printers that can be expanded/upgraded down the road. Hewlett Packard has several good laser printers (color and B&W) that meet this criteria.

'Muse: Any other thoughts on printing?

M.S: Printing under UNIX currently lags behind Windows/MacOS in a number of important ways:

1. There is little integration between the application and printing system. Applications therefore lack information such as supported media sizes, color profiles, and so forth.
2. Every UNIX varient has its own printing interface. Usually they follow the System V or BSD interfaces, however there are some oddballs out there that make printing in a UNIX application difficult.
3. Printer vendors typically do not write drivers for UNIX. This means that UNIX users have to buy extra software for their printer just to get it to work. It also means that the output under UNIX may not be the same (or as good) as the corresponding Windows/MacOS printer driver. Many vendors support these 3rd party developers, however the most important stuff (dithering algorithms, color profiles, and proprietary protocols) is *not* shared, which usually results in a loss of print quality or preventing a 3rd party from supporting a printer.

'Muse: Thanks for taking the time to answer these questions for my readers, Your responses have been very helpful!

The following links are just starting points for finding more information about computer graphics and multimedia in general for Linux systems. If you have some application specific information for me, I'll add them to my other pages or you can contact the maintainer of some other web site. I'll consider adding other general references here, but application or site specific information needs to go into one of the following general references and not listed here.

Online Magazines and News sources
C|Net Tech News
Linux Weekly News
Slashdot.org

General Web Sites
Linux Graphics
Linux Sound/Midi Page

Some of the Mailing Lists and Newsgroups I keep an eye on and where I get much of the information in this column
The Gimp User and Gimp Developer Mailing Lists.
The IRTC-L discussion list
comp.graphics.rendering.raytracing
comp.graphics.rendering.renderman
comp.graphics.api.opengl
comp.os.linux.announce

## Future Directions

Next month: I'm not sure yet. I'm still in transition but have a few ideas. If I can get hold of some cards I may do a bit on the bttv drivers for PC-TV adapters that can do some screen captures.

Let me know what you'd like to hear about!

© 1999 Michael J. Hammel

#### Previous ``Graphics Muse'' Columns

Graphics Muse #1, November 1996
Graphics Muse #2, December 1996
Graphics Muse #3, January 1997
Graphics Muse #4, February 1997
Graphics Muse #5, March 1997
Graphics Muse #6, April 1997
Graphics Muse #7, May 1997
Graphics Muse #8, June 1997
Graphics Muse #9, July 1997
Graphics Muse #10, August 1997
Graphics Muse #11, October 1997
Graphics Muse #12, December 1997
Graphics Muse #13, February 1998
Graphics Muse #14, March 1998
Graphics Muse #15, April 1998
Graphics Muse #16, August 1998
Graphics Muse #17, September 1998
Graphics Muse #18, October 1998
Graphics Muse #19, November 1998

##### Copyright © 1999, Michael J. Hammel
Published in Issue 37 of Linux Gazette, February 1999