[comp.windows.x] PEX Available for Anonymous FTP

egbert@cs.uiuc.edu (Parris Egbert) (01/31/91)

There is now available from the University of Illinois an
implementation of PEX called UIPEX.

Those with Internet access can use anonymous ftp to
retrieve UIPEX from a.cs.uiuc.edu (128.174.252.1).  The file is
named uipex.tar.Z, and is found in the pub/uipex directory.

Once you have retrieved the file, uncompress it and then extract the
individual files using tar.  There are README files in the UIPEX directories
that explain how to compile the code once it has been extracted.

UIPEX is an implementation of PEX version 4.0, that was created
on the IBM RT PC under 4.3.

It contains a near complete implementation of PHIGS and PHIGS PLUS
as defined in the approved ANSI PHIGS spec entitled "Computer Graphics -
Programmer's Hierarchical Interactive Graphics System (PHIGS) Functional
Description, Archive File Format, Clear-Text Encoding of Archive File"
(Document number X3H/89-54) and the proposed PHIGS PLUS spec entitled
"Computer Graphics - Programmer's Hierarchical Interactive Graphics
System (PHIGS) Part 4 - Plus Lumiere und Surfaces (PHIGS PLUS)" dated
July 25, 1989.  The PHIGS C binding that is used is the ANSI proposed
binding entitled "Computer Graphics - Programmer's Hierarchical Interactive
Graphics System (PHIGS) C Binding" (Document number X3.144.4-198x, dated
20 June 1988).  When we began the implementation, there was no
PHIGS PLUS C binding, hence, we created our own.  The UIPEX PHIGS PLUS
C binding can be obtained via anonymous ftp from the above location in
pub/uipex/phigs_plus_c_bind.Z, or by contacting the Department of
Computer Science at the University of Illinois.  In addition, we have
written several technical reports as the project progressed, and they
are also available (either via anonymous ftp or from the department).
All of the documents are in compressed PostScript format, and are in
the pub/uipex directory on the above machine.  The available documents are:

 tech
report
number	ftp file name		Description
------	-----------------	--------------------------------------
   2	me_c_bind.PS.Z		The UIPEX Modeling Extention C binding

   4	phigs_plus_c_bind.PS.Z	The UIPEX PHIGS PLUS C binding

   5	dipex.PS.Z		Design doc for the device independent
				portion of the PEX server.

   6	api_doc.PS.Z		Design doc for the Application Programmer
				Interface (i.e., PHIGS) portion of UIPEX.

   8	ddpex_doc.PS.Z		Design doc for the device dependent
				portion of the PEX server.

   9	sung_thesis.PS.Z	A description of UIPEX and how X is extended
				to accomodate PEX.

  10	egbert_thesis.PS.Z	A description of how PHIGS is implemented
				using PEX, and problems that arise in doing so.

The major component of PHIGS that we have not implemented is Metafiles.
Essentially all other PHIGS capabilities are present.  At the time of
our implementation, PHIGS PLUS was not yet an accepted standard, and the
definition of PEX was still volatile.  Thus, we have implemented all of
the characteristics of PHIGS PLUS for which there were corresponding PEX
capabliities.  Because of this, the "SET OF FILL AREA SET 3 WITH DATA"
primitive that is defined in PHIGS PLUS has not been implemented.

Due to the limited resources we have had on this project, the code has
not been tested as extensively as we would have liked.  If you find bugs as
you use the code, we would appreciate knowing about them, but at the present
time have no plans on supporting UIPEX or providing updated versions
of it in the near future.  Please send bugs reports, questions, or comments
about UIPEX to:

	 uipex@cs.uiuc.edu

To request the set of technical reports listed above, please send your
name, address, and a check for $25.00 US (for the entire set) made payable
to the University of Illinois to:

	Rhonda Murphy
	Department of Computer Science
	University of Illinois at Urbana-Champaign
	1304 W. Springfield
	Urbana, IL  61801
	(217) 333-2444
	rmurphy@cs.uiuc.edu

david@ibmpa.awdpa.ibm.com (02/02/91)

In article <1991Jan30.212921.3736@cs.uiuc.edu> egbert@cs.uiuc.edu (Parris Egbert) writes:
>
>There is now available from the University of Illinois an
>implementation of PEX called UIPEX.
>

Congratulations!

---------------------------------------------------------
David Berkowitz   ..!uunet!ibmsupt!david   (415) 855-4485
IBM AWD Palo Alto
Opinions are mine. Who else would want them?

jorice@maths.tcd.ie (Jonathan Rice) (02/05/91)

>In article <1991Jan30.212921.3736@cs.uiuc.edu> egbert@cs.uiuc.edu (Parris Egbert) writes:
>>
>>There is now available from the University of Illinois an
>>implementation of PEX called UIPEX.
>>

What'll it run on?

-- JOR

egbert@cs.uiuc.edu (Parris Egbert) (02/12/91)

There have been several questions regarding the types of machines UIPEX
will run on.  We wrote the code on an IBM RT PC running 4.3.  We have
not ported the code to other machines, but designed it so that porting
would be easy.  For example, we have not made any IBM-server specific
function calls.  To port to another machine, do the following:

1. Compile $(PEXTOP)/pex/server/dipex and $(PEXTOP)/pex/server/ddpex
   this should generate libdipex.a and libddpex.a.
   As far as we know, dipex and ddpex are not making any IBM-server
   specific function calls (Since we only have access to the IBM-server
   code, the above statement is made base on the fact that we are
   only making calls to $(XTOP)/server/dix functions and all the output
   related routines are called through the GC->function pointers.),
   this means porting the dipex and ddpex should be a matter of compiling
   the two libraries.

2. Edit the file $(XTOP)/server/ddx/mi/miinitext.c, add in the line
        PexExtensionInit();
   into the InitExtensions routine.
   Remember to re-make the libmi.a library to reflect the change.

3. Re-link the X-server like what you would do otherwise, but
   this time, you need to specify libdipex.a and libddpex.a
   as link-time libraries.

That should do it.